### 6.55.1 Équations différentielles : `desolve deSolve dsolve`

`desolve` (ou `deSolve`) permet de résoudre :

- les équations différentielles linéaires à coefficients constants du premier ou du deuxième ordre,
- les équations différentielles linéaires du premier ordre,
- les équations différentielles du premier ordre incomplète en y,
- les équations différentielles du premier ordre incomplète en x,
- les équations différentielles du premier ordre à variables séparées,
- les équations différentielles du premier ordre homogènes (y′=F(y/x)),
- les équations différentielles du premier ordre ayant un facteur intégrant,
- les équations différentielles de Bernoulli (a(x)y′+b(x)y=c(x)yn),
- les équations différentielles de Clairaut (y=x*y′+f(y′)).

Les paramètres de `desolve`:

- quand la variable est la variable courante (ici x),
  les paramètres sont : l’équation différentielle (ou la liste formée par l’équation différentielle et les conditions initiales) et l’inconnue `y`.
  Dans l’équation différentielle y s’écrit y et y′ s’écrit `y′` et y" s’écrit `y"` car on dérive par rapport à la variable x. Par exemple : `desolve(y’’+2*y’+y,y)` et `desolve([y’’+2*y’+y,y(0)=1,y’(0)=0],y)`.
- quand la variable n’est pas la variable courante (ici t),
  les paramètres sont : l’équation différentielle (ou la liste formée par l’équation différentielle et les conditions initiales), la variable `t` et et l’inconnue `y` ou l’inconnue `y(t)` (la variable est alors `t` et l’inconnue est `y`).
  Dans l’équation différentielle y s’écrit y(t) et y ′ s’écrit `diff(y(t),t)`, y′′ s’écrit `diff(y(t),t$2)`.
  Par exemple :
  `desolve(diff(y(t),t$2)+2*diff(y(t),t)+y(t),y(t))`; ou
  `desolve(diff(y(t),t$2)+2*diff(y(t),t)+y(t),t,y)`;
  et

      desolve([diff(y(t),t$2)+2*diff(y(t),t)+y(t),
               y(0)=1,y'(0)=0],y(t)); ou
      desolve([diff(y(t),t$2)+2*diff(y(t),t)+y(t),
               y(0)=1,y'(0)=0],t,y);

Lorsqu’il n’y a pas de conditions initiales (ou une seule condition initiale pour une équation du second ordre), `desolve` renvoie la solution écrite avec des constantes d’intégration : `c_0, c_1` où `y(0)=c_0` et `y’(0)=c_1` ou renvoie une liste des solutions.
Exemples

- Exemples de résolution d’une équation différentielle linéaire à coefficients constants du deuxième ordre.
  1. Résoudre :

     y″+y=cos(x)

     On tape (en tapant deux fois prime pour `y’’`):
     `desolve(y’’+y=cos(x),y)`
     ou encore :
     `desolve((diff(diff(y))+y)=(cos(x)),y)`
     On trouve :
     `c_0*cos(x)+(x+2*c_1)*sin(x)/2`
     `c_0, c_1` sont les constantes d’intégration : `y(0)=c_0` et `y’(0)=c_1`.
     ou bien si la variable n’est pas `x` mais `t`, on tape :
     `desolve(derive(derive(y(t),t),t)+y(t)=cos(t),t,y)`
     ou encore
     `desolve(derive(derive(y(t),t),t)+y(t)=cos(t),[t,y])`
     On trouve alors :
     `c_0*cos(t)+(t+2*c_1)/2*sin(t)`
     `c_0, c_1` sont les constantes d’intégration : `y(0)=c_0` et `y’(0)=c_1`.
  2. Résoudre :

     y″+y=cos(x) y(0)=1

     On écrit, si veut les solutions vérifiant y(0)=1 :
     `desolve([y’’+y=cos(x),y(0)=1],y)`
     On obtient
     `[cos(x)+(x+2*c_1)/2*sin(x)]`
     les composantes de ce vecteur sont solutions (ici on a une seule composante car on obtient une seule solution dépendant de la constante `c_1`).
  3. Résoudre :

     y″+y=cos(x) (y(0))2=1

     On veut les solutions vérifiant (y(0))2=1, on tape alors :
     `desolve([y’’+y=cos(x),y(0)```^```2=1],y)`
     On obtient
     `[-cos(x)+(x+2*c_1)/2*sin(x), cos(x)+(x+2*c_1)/2*sin(x)]`
     chaque composantes de cette liste est une solution, on a donc deux solutions dépendant de la constante `c_1` qui correspondent à y(0)=1 et à y(0)=−1.
  4. Résoudre :

     y″+y=cos(x) (y(0))2=1 y′(0)=1

     On veut les solutions vérifiant (y(0))2=1 et y′(0)=1, on tape alors :
     `desolve([y’’+y=cos(x),y(0)```^```2=1,y’(0)=1],y)`
     On obtient :
     `[-cos(x)+(x+2)/2*sin(x),cos(x)+(x+2)/2*sin(x)]`
     chaque composante de cette liste est une solution.On a donc deux solutions.
  5. Résoudre :

     y″+2y′+y=0

     On tape alors :
     `desolve(y’’+2*y’+y=0,y)`
     On obtient les solutions dépendant de 2 constantes d’intégration `c_0` et `c_1`:
     `(x*c_0+x*c_1+c_0)*exp(-x)`
  6. Résoudre :

     y″−6y′+9y=xe3x

     On tape alors :
     `desolve(y’’-6*y’+9*y=x*exp(3*x),y)`
     On obtient :
     `(x```^```3+(-(18*x))*c_0+6*x*c_1+6*c_0)*1/6*exp(3*x)`
     la solution dépend de 2 constantes d’intégration `c_0` et `c_1`.
- Exemples de résolution d’une équation différentielle linéaire du premier ordre.
  1. Résoudre :

     xy′+y−3x2=0

     On tape alors :
     `desolve(x*y’+y-3*x```^```2,y)`
     On obtient :
     `(3*1/3*x```^```3+c_0)/x`
  2. Résoudre :

     y′+x*y=0, y(0)=1

     On tape alors :
     `desolve([y’+x*y=0, y(0)=1],y)`
     Ou on tape :
     `desolve((y’+x*y=0) && (y(0)=1),[x,y])`
     Ou on tape :
     `desolve((y’+x*y=0) && (y(0)=1),x,y)`
     Ou on tape :
     `desolve((y’+x*y=0) && (y(0)=1),y)`
     On obtient :
     `[1/(exp(1/2*x```^```2))]`
  3. Résoudre :

     x(x2−1)y′+2y=0

     On tape alors :
     `desolve(x*(x```^```2-1)*y’+2*y=0,y)`
     On obtient :
     `(c_0)/((x```^```2-1)/(x```^```2))`
  4. Résoudre :

     x(x2−1)y′+2y=x2

     On tape alors :
     `desolve(x*(x```^```2-1)*y’+2*y=x```^```2,y)`
     On obtient :
     `(ln(x)+c_0)/((x```^```2-1)/(x```^```2))`
     Si la variable est t et non x, par exemple :

     t(t2−1)y′(t)+2y(t)=t2

     On tape :
     `desolve(t*(t```^```2-1)*diff(y(t),t)+2*y(t)=(t```^```2),y(t))`
     On obtient :
     `(ln(t)+c_0)/((t```^```2-1)/(t```^```2))`
  5. Résoudre :

     x(x2−1)y′+2y=x2,y(2)=0

     On tape alors :
     `desolve([x*(x```^```2-1)*y’+2*y=x```^```2,y(0)=1],y)`
     On obtient :
     `[(ln(x)-ln(2))*1/(x```^```2-1)*x```^```2]`
  6. Résoudre :

     √ |
     1+x2
     | y′−x−y= | √ |
     1+x2

     On tape alors :
     `desolve(y’*sqrt(1+x```^```2)-x-y-sqrt(1+x```^```2),y)`
     On obtient :
     `(-c_0+ln(sqrt(x```^```2+1)-x))/(x-sqrt(x```^```2+1))`
- Exemples de résolution d’une équation différentielle à variables séparées.
  1. Résoudre :

     y′=2 | √ |
     y

     On tape alors :
     `desolve(y’=2*sqrt(y),y)`
     On obtient :
     `[x```^```2+-2*x*c_0+c_0```^```2]`
  2. Résoudre :

     xy′ln(x)−y(3ln(x)+1)=0

     On tape alors :
     `desolve(x*y’*ln(x)-(3*ln(x)+1)*y,y)`
     On obtient :
     `c_0*x```^```3*ln(x)`
- Exemples de résolution d’une équation différentielle de Bernoulli du premier ordre, de type a(x)y′+b(x)y=c(x)yn avec n=constante réelle.
  Ces équations se résolvent en divisant par yn, car on se ramène à une équation linéaire en u=1/yn−1.
  1. Résoudre :

     xy′+2y+xy2=0

     On tape alors :
     `desolve(x*y’+2*y+x*y```^```2,y)`
     On obtient :
     `[1/(exp(2*ln(x))*(-1/x+c_0))]`
  2. Résoudre :

     xy′−2y=xy3

     On tape alors :
     `desolve(x*y’-2*y-x*y```^```3,y)`
     On obtient :
     `[((-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. Résoudre :

     x2y′−2y=xe(4/x)y3

     On tape alors :
     `desolve(x*y’-2*y-x*exp(4/x)*y```^```3,y)`
     On obtient :
     `[((-2*ln(x)+c_0)*exp(-(4*(-(1/x)))))```^```(1/-2),`
     `-(((-2*ln(x)+c_0)*exp(-(4*(-(1/x)))))```^```(1/-2))]`
- Exemples de résolution d’une équation différentielle homogéne du premier ordre qui se résout en posant y=t*x.
  1. Résoudre :

     3x3y′=y(3x2−y2)

     On tape alors :
     `desolve(3*x```^```3*diff(y)=((3*x```^```2-y```^```2)*y),y)`
     On obtient :
     `[0,pnt[c_0*exp((3*1/2)/(‘ t‘```^```2)),‘ t‘*c_0*exp((3*1/2)/(‘ t‘```^```2))]]`
     donc les solutions sont y=0 et la famille de courbes d’équation paramétrique x=c0exp(3/(2t2)), y=t*c0exp(3/(2t2)) (le paramètre est noté ‵ t‵ dans la réponse).
  2. Résoudre :

     xy′=y+ | √ |
     x2+y2

     On tape alors :
     `desolve(x*y’=y+sqrt(x```^```2+y```^```2),y)`
     On obtient :
     `[(-i)*x,(i)*x,pnt[c_0/(sqrt(‘ t‘```^```2+1)-‘ t‘),(‘ t‘*c_0)/(sqrt(‘ t‘```^```2+1)-‘ t‘)]]`
     donc les solutions sont :

     y=ix,y=−ix

     et la famille de courbes d’équation paramétrique

     x=c0/( | √ |
     t2+1
     | −t), y=t*c0/( | √ |
     t2+1
     | −t)

     (le paramètre est noté ‵ t‵ dans la réponse.
- Exemples de résolution d’une équation différentielle du premier ordre ayant un facteur intégrant.
  1. Résoudre :

     yy′+x

     On tape alors :
     `desolve(y*y’+x,y)`
     On obtient :
     `[sqrt(-2*c_0-x```^```2),-(sqrt(-2*c_0-x```^```2))]`
     dans cet exemple, xdx+ydy est une différentielle totale, et le facteur intégrant est 1.
  2. Résoudre :

     2xyy′+x2−y2+a2=0

     On tape alors :
     `desolve(2*x*y*y’+x```^```2-y```^```2+a```^```2,y)`
     On obtient :
     `[sqrt(a```^```2-x```^```2-c_1*x),-(sqrt(a```^```2-x```^```2-c_1*x))]`
     dans cet exemple le facteur intégrant est 1/x2.
- Exemple de résolution d’une équation différentielle du premier ordre incomplète en x.
  Résoudre :

  (y+y′)4+y′+3y=0

  Ce genre d’équations n’est pas résoluble directement par `Xcas`, nous allons expliquer ce qu’il faut faire pour l’aider à résoudre de telles équations. On doit trouver pour résoudre F(y,y′)=0, une représentation paramétrique de F(u,v)=0, par exemple, u=f(t),v=g(t) puis, poser y=f(t) et dy/dx=y′=g(t).
  On a donc dy/dt=f′(t)=y′*dx/dt=g(t)*dx/dt.
  On trouve alors, comme solution la courbe d’équation paramétrique x(t), y(t)=f(t), où x(t) est obtenu en résolvant l’équation différentielle g(t)dx=f′(t)dt.
  Ici on peut poser y+y′=t ce qui donne :
  y=−t−8*t4 et y′=dy/dx=3*t+8*t4 et donc dy/dt=−1−32*t3 donc
  (3*t+8*t4)*dx=(−1−32*t3)dt.
  On tape alors :
  `desolve((3*t+8*t```^```4)*diff(x(t),t)=(-1-32*t```^```3),x(t))`
  On obtient :
  `-11*1/9*ln(8*t```^```3+3)+1/-9*ln(t```^```3)+c_0`
  on a donc comme solution la courbe d’équation :

  x(t)=−11*1/9*ln(8*t3+3)+1/−9*ln(t3)+c0, y(t)=−t−8*t4

- Exemples de résolution d’une équation différentielle de Clairaut du premier ordre, de type y=x*y′+f(y′).
  Les solultions sont les droites Dm d’équation y=mx+f(m) où m est une constante réelle.
  1. Résoudre :

     xy′+y′3−y)=0

     On tape alors :
     `desolve(x*y’+y’```^```3-y,y)`
     On obtient :
     `c_0*x+c_0```^```3`
  2. Résoudre :

     y−xy′= | √ |
     a2+b2*y′2
     | =0

     On tape alors :
     `desolve((y-x*y’-sqrt(a```^```2+b```^```2*y’```^```2),y)`
     On obtient :
     `c_0*x+sqrt(a```^```2+b```^```2*c_0```^```2)`