   5.57.1  Solving differential equations : desolve deSolve dsolve

desolve (or deSolve) can solve :

• linear differential equations with constant coefficients,
• first order linear differential equations,
• first order differential equations without y,
• first order differential equations without x,
• first order differential equations with separable variables,
• first order homogeneous differential equations (y′=F(y/x)),
• first order differential equations with integrating factor,
• first order Bernoulli differential equations (a(x)y′+b(x)y=c(x)yn),
• first order Clairaut differential equations (y=x*y′+f(y′)).

desolve takes as arguments :

• if the independent variable is the current variable (here supposed to be x),
• the differential equation (or the list of the differential equation and of the initial conditions)
• the unknown (usually y).
In the differential equation, the function y is denoted by y, its first derivative y ′ is denoted by y, and its second derivative y′′ is written y.
For example desolve(y’’+2*y’+y,y) or
desolve([y’’+2*y’+y,y(0)=1,y’(0)=0],y).
• if the independent variable is not the current variable, for example t instead of x,
• the differential equation (or the list of the differential equation and of the initial conditions),
• the variable, e.g. t
• the unknown as a variable y or as a function y(t).
In the differential equation, the function y is denoted by y(t), its derivative y ′ is denoted by diff(y(t),t), and its second derivative y′′ is denoted by diff(y(t),t\$2).
For example :
desolve(diff(y(t),t\$2)+2*diff(y(t),t)+y(t),y(t)); or
desolve(diff(y(t),t\$2)+2*diff(y(t),t)+y(t),t,y); and
```desolve([diff(y(t),t\$2)+2*diff(y(t),t)+y(t),
y(0)=1,y'(0)=0],y(t)); or
desolve([diff(y(t),t\$2)+2*diff(y(t),t)+y(t),
y(0)=1,y'(0)=0],t,y);
```

If there is no initial conditions (or one initial condition for a second order equation), desolve returns the general solution in terms of constants of integration c_0, c_1, where y(0)=c_0 and y’(0)=c_1, or a list of solutions.
Examples

• Examples of second linear differential equations with constant coefficients.
1. Solve :  y″+y=cos(x)
Input (typing twice prime for y’’):
desolve(y’’+y=cos(x),y)
or input :
desolve((diff(diff(y))+y)=(cos(x)),y)
Output :
c_0*cos(x)+(x+2*c_1)*sin(x)/2
c_0, c_1 are the constants of integration : y(0)=c_0 and y’(0)=c_1.
If the variable is not x but t, input :
desolve(derive(derive(y(t),t),t)+y(t)=cos(t),t,y)
Output :
c_0*cos(t)+(t+2*c_1)/2*sin(t)
c_0, c_1 are the constants of integration : y(0)=c_0 and y’(0)=c_1.
2. Solve :  y″+y=cos(x),     y(0)=1
Input :
desolve([y’’+y=cos(x),y(0)=1],y)
Output :
[cos(x)+(x+2*c_1)/2*sin(x)]
the components of this vector are solutions (here there is just one component, so we have just one solution depending of the constant c_1).
3. Solve :  y″+y=cos(x)     (y(0))2=1
Input :
desolve([y’’+y=cos(x),y(0)`^`2=1],y)
Output :
[-cos(x)+(x+2*c_1)/2*sin(x),cos(x)+(x+2*c_1)/2*sin(x)]
each component of this list is a solution, we have two solutions depending on the constant c_1 (y′(0)=c1) and corresponding to y(0)=1 and to y(0)=−1.
4. Solve :  y″+y=cos(x),     (y(0))2=1     y′(0)=1
Input :
desolve([y’’+y=cos(x),y(0)`^`2=1,y’(0)=1],y)
Output :
[-cos(x)+(x+2)/2*sin(x),cos(x)+(x+2)/2*sin(x)]
each component of this list is a solution (we have two solutions).
5. Solve :  y″+2y′+y=0
Input :
desolve(y’’+2*y’+y=0,y)
Output :
(x*c_0+x*c_1+c_0)*exp(-x)
the solution depends of 2 constants of integration : c_0, c_1 (y(0)=c_0 and y’(0)=c_1).
6. Solve :  y″−6y′+9y=xe3x
Input:
desolve(y’’-6*y’+9*y=(x*exp(3*x),y)
Output :
(x`^`3+(-(18*x))*c_0+6*x*c_1+6*c_0)*1/6*exp(3*x)
the solution depends on 2 constants of integration : c_0, c_1 (y(0)=c_0 and y’(0)=c_1).
• Examples of first order linear differential equations.
1. Solve :  xy′+y−3x2=0
Input :
desolve(x*y’+y-3*x`^`2,y)
Output :
(3*1/3*x`^`3+c_0)/x
2. Solve :  y′+x*y=0, y(0)=1
Input :
desolve([y’+x*y=0, y(0)=1]),y)
or :
desolve((y’+x*y=0) && (y(0)=1),y)
Output :
[1/(exp(1/2*x`^`2))]
3. Solve :  x(x2−1)y′+2y=0
Input :
desolve(x*(x`^`2-1)*y’+2*y=0,y)
Output :
(c_0)/((x`^`2-1)/(x`^`2))
4. Solve :  x(x2−1)y′+2y=x2
Input :
desolve(x*(x`^`2-1)*y’+2*y=x`^`2,y)
Output :
(ln(x)+c_0)/((x`^`2-1)/(x`^`2))
5. If the variable is t instead of x, for example :  t(t2−1)y′(t)+2y(t)=t2
Input :
desolve(t*(t`^`2-1)*diff(y(t),t)+2*y(t)=(t`^`2),y(t))
Output :
(ln(t)+c_0)/((t`^`2-1)/(t`^`2))
6. Solve :  x(x2−1)y′+2y=x2,y(2)=0
Input :
desolve([x*(x`^`2-1)*y’+2*y=x`^`2,y(0)=1],y)
Output :
[(ln(x)-ln(2))*1/(x`^`2-1)*x`^`2]
7. Solve :
 1+x2
y′−xy= 1+x2
Input :
desolve(y’*sqrt(1+x`^`2)-x-y-sqrt(1+x`^`2),y)
Output :
(-c_0+ln(sqrt(x`^`2+1)-x))/(x-sqrt(x`^`2+1))
• Examples of first differential equations with separable variables.
1. Solve :
y′=2 y
Input :
desolve(y’=2*sqrt(y),y)
Output :
[x`^`2+-2*x*c_0+c_0`^`2]
2. Solve :  xy′ln(x)−y(3ln(x)+1)=0
Input :
desolve(x*y’*ln(x)-(3*ln(x)+1)*y,y)
Output :
c_0*x`^`3*ln(x)
• Examples of Bernoulli differential equations a(x)y′+b(x)y=c(x)yn where n is a real constant.
The method used is to divide the equation by yn, so that it becomes a first order linear differential equation in u=1/yn−1.
1. Solve :  xy′+2y+xy2=0
Input :
desolve(x*y’+2*y+x*y`^`2,y)
Output :
[1/(exp(2*ln(x))*(-1/x+c_0))]
2. Solve :  xy′−2y=xy3
Input :
desolve(x*y’-2*y-x*y`^`3,y)
Output :
[((-2*1/5*x`^`5+c_0)*exp(-(4*log(x))))`^`(1/-2),
-((-2*1/5*x`^`5+c_0)*exp(-(4*log(x))))`^`(1/-2)]
3. Solve :  x2y′−2y=xe(4/x)y3
Input :
desolve(x*y’-2*y-x*exp(4/x)*y`^`3,y)
Output :
[((-2*ln(x)+c_0)*exp(-(4*(-(1/x)))))`^`(1/-2),
-(((-2*ln(x)+c_0)*exp(-(4*(-(1/x)))))`^`(1/-2))]
• Examples of first order homogeneous differential equations (y′=F(y/x), the method of integration is to search t=y/x instead of y).
1. Solve :  3x3y′=y(3x2−y2)
Input :
desolve(3*x`^`3*diff(y)=((3*x`^`2-y`^`2)*y),y)
Output :
[0,pnt[c_0*exp((3*1/2)/(‘ t‘`^`2)),‘ t‘*c_0*exp((3*1/2)/(‘ t‘`^`2))]]
hence the solutions are y=0 and the familiy of curves of parametric equation x=c0exp(3/(2t2)), y=t*c0exp(3/(2t2)) (the parameter is denoted by ‘ t‘ in the answer).
2. Solve :
xy′=y+ x2+y2
Input :
desolve(x*y’=y+sqrt(x`^`2+y`^`2),y)
Output :
[(-i)*x,(i)*x,pnt[c_0/(sqrt(‘ t‘`^`2+1)-‘ t‘),(‘ t‘*c_0)/(sqrt(‘ t‘`^`2+1)-‘ t‘)]]
hence the solutions are :  y=ix,y=−ix
and the family of curves of parametric equations
x=c0/( t2+1
t), y=t*c0/( t2+1
t)
(the parameter is denoted by ‘ t‘ in the answer).
• Examples of first order differential equations with an integrating factor. By multiplying the equation by a function of x,y, it becomes a closed differential form.
1. Solve :  yy′+x
Input :
desolve(y*y’+x,y)
Output :
[sqrt(-2*c_0-x`^`2),-(sqrt(-2*c_0-x`^`2))]
In this example, xdx+ydy is closed, the integrating factor was 1.
2. Solve :  2xyy′+x2−y2+a2=0
Input :
desolve(2*x*y*y’+x`^`2-y`^`2+a`^`2,y)
Output :
[sqrt(a`^`2-x`^`2-c_1*x),-(sqrt(a`^`2-x`^`2-c_1*x))]
In this example, the integrating factor was 1/x2.
• Example of first order differential equations without x.
Solve :  (y+y′)4+y′+3y=0
This kind of equation cannot be solved directly by Xcas, we explain how to solve them with its help. The idea is to find a parametric representation of F(u,v)=0 where the equation is F(y,y′)=0, Let u=f(t),v=g(t) be such a parametrization of F=0, then y=f(t) and dy/dx=y′=g(t). Hence  dy/dt=f′(t)=y′*dx/dt=g(t)*dx/dt
The solution is the curve of parametric equations x(t), y(t)=f(t), where x(t) is solution of the differential equation g(t)dx=f′(t)dt.
Back to the example, we put y+y′=t, hence:  y=−t−8*t4,    y′=dy/dx=3*t+8*t4    dy/dt=−1−32*t3
therefore  (3*t+8*t4)*dx=(−1−32*t3)dt
Input :
desolve((3*t+8*t`^`4)*diff(x(t),t)=(-1-32*t`^`3),x(t))
Output :
-11*1/9*ln(8*t`^`3+3)+1/-9*ln(t`^`3)+c_0
eventually the solution is the curve of parametric equation :  x(t)=−11*1/9*ln(8*t3+3)+1/−9*ln(t3)+c0,    y(t)=−t−8*t4
• Examples of first order Clairaut differential equations (y=x*y′+f(y′)).
The solutions are the lines Dm of equation y=mx+f(m) where m is a real constant.
1. Solve :  xy′+y′3−y=0
Input :
desolve(x*y’+y’`^`3-y),y)
Output :
c_0*x+c_0`^`3
2. Solve :
yxy′ −  a2+b2*y′2
=0
Input :
desolve((y-x*y’-sqrt(a`^`2+b`^`2*y’`^`2),y)
Output :
c_0*x+sqrt(a`^`2+b`^`2*c_0`^`2)   