Comment résoudre une équation différentielle avec Maple?
Exemple n°1
STUDENT > eqn1:=(exp(x)-1)*D(y)(x)+exp(x)*y(x)=cos(x);
:=
eqn1 ( e
x− 1 ) D y ( ) ( ) x + e
xy x ( ) = cos x ( )
La fonction a(x)=exp(x)-1 s'annule en 0. On résoud donc sur ]-infinity,0[ et sur ]0,+infinity[.
STUDENT > sol:=dsolve(eqn1,y(x));
:=
sol y x ( ) = sin x ( ) + _C1 − e
x1
Le _C1 renvoyé par Maple correspond à notre constante qu'on note en général lambda. Remarquer que pour _C1=0, on récupère une solution particulière sin(x)/(exp(x)-1).
STUDENT > f:=unapply(rhs(sol),(x,_C1));
:=
f ( x _C1 , ) → sin x ( ) + _C1 − e
x1
rhs signifie <<right hide side>> et renvoie le second membre d'une 'égalité. Enfin unapply permet de construire notre fonction f qui a deux variables.
STUDENT > plot([seq(f(x,k), k=-6..6)],x=-5..5,-5..5);
x
4 2
-2 -4
4
2
0
-2
-4
Il semblerait qu'une seule courbe intégrale corresponde à une solution sur R tout entier. Un développement asymtotique au voisinage de 0 donne
STUDENT > series(f(x,i),x);
+ + − + +
i x
-1
− 1 1
2 i
− + 1 2
1
12 i x 1 12 x
2
1 − 12
1
720 i x
3O x (
4)
On voit ainsi que si i non nul, la solution tend vers l'infini en 0, et donc ne peut être prolongée en une solution sur R.
STUDENT > series(f(x,0),x);
Page 1 Maple V Release 4 - Student Edition
− − + − + 1 2 x
12 x 12 x
144 x O x ( )
Exemple n°2
STUDENT > n:=2; eqn2:=x*D(y)(x)-n*y(x)=0;
:=
n 2 :=
eqn2 x D y ( ) ( ) x − 2 ( ) y x = 0
Traitons les cas n=1 et 2 On voit que a(x)=x s'annule en 0, on résoud donc ]-infinity,0[ et sur ]0,infinity[..
STUDENT > sol:=dsolve(eqn2,y(x));
:=
sol y x ( ) = x
2_C1 STUDENT > f:=unapply(rhs(sol),(x,_C1)):
STUDENT > plot([seq(f(x,k), k=-4..4)],x=-1..1,-2..2);
x
1 0.5
-0.5 -1
2
1
0
-1
-2
Exemple n°3: (x-1)y'+xy=x^2-1
STUDENT > eqn:=(x-1)*D(y)(x)+x*y(x)=x^2-1;
:=
eqn ( x − 1 ) D y ( ) ( ) x + x ( ) y x = x
2− 1
On voit que a(x)=x-1 s'annule en 1, on résoud donc ]-infinity,1[ et sur ]1,infinity[..
− x 1
STUDENT > plot([seq(f(x,k), k=-6..6)],x=-5..5,-5..10);
x
4 2
-2 -4
10
8
6
4
2
0
-2
-4
Exemples des exercices
STUDENT > eqn:=x^2*D(y)(x)+x*y(x)=1;
:=
eqn x
2D y ( ) ( ) x + x ( ) y x = 1 STUDENT > sol:=dsolve(eqn,y(x));
:=
sol y x ( ) = ln x ( ) + _C1 x STUDENT > f:=unapply(rhs(sol),(x,_C1)): #
STUDENT > plot([seq(f(x,k), k=-6..6)],x=-5..5,-5..10);
Page 3 Maple V Release 4 - Student Edition
x
4 2
-2 -4
8
6
4
2
0
-2
-4
STUDENT > eqn:=x^2*D(y)(x)-y(x)=0;
:=
eqn x
2D y ( ) ( ) x − y x ( ) = 0
STUDENT > sol:=dsolve(eqn,y(x));
:=
sol y x ( ) = e
−1
x