# Revision history [back]

### Substitution of several variables

Let $f=f(x_1(t),x_2(t))$ be defined as follows:

sage: var('t mu')
sage: x=list()
sage: x.append( function('x1')(t) )
sage: x.append( function('x2')(t) )
sage: f = x[0] - mu*x[0]^2*x[1]
sage: f


$f = x_1(t) - \mu x_1(t)^2 x_2(t)$.

Now, I need to to substitute the term containing $x_1^2(t) x_2(t)$ in $f$ by some new auxiliary variable $x_3(t)$, that is, to obtain $f = x_1(t) - \mu x_3(t)$. However, this code doesn't work:

sage: x.append( function('x3')(t) )
sage: f.subs({x[0]^2*x[1] : x[2]})


However, this code doesn't work. Some ideas? Thanks.

This code is motivated by symbolic manipulation with ODEs (think of $f$ as being the right-hand side term in the autonomous ODE system $\dot{x}(t) = f(x(t))$ ).

### Substitution of several variables

Let $f=f(x_1(t),x_2(t))$ be defined as follows:

sage: var('t mu')
sage: x=list()
sage: x.append( function('x1')(t) )
sage: x.append( function('x2')(t) )
sage: f = x[0] - mu*x[0]^2*x[1]
sage: f


$f = x_1(t) - \mu x_1(t)^2 x_2(t)$.

Now, I need to to substitute the term containing $x_1^2(t) x_2(t)$ in $f$ by some new auxiliary variable $x_3(t)$, that is, to obtain $f = x_1(t) - \mu x_3(t)$. However, this code doesn't work:

sage: x.append( function('x3')(t) )
sage: f.subs({x[0]^2*x[1] : x[2]})


However, this code doesn't work. Some ideas? Thanks.

This code is motivated by symbolic manipulation with ODEs (think of $f$ as being the right-hand side term in the autonomous ODE system $\dot{x}(t) = f(x(t))$ ).