Exercices : Equations différentielles

Exercice 1

Résoudre avec Mathematica les équations différentielles du premier ordre suivantes :

1) y'+y=2sh x

DSolve[y'[x]+y[x]==2Sinh[x],y[x],x]//Expand

2) y'+2x y=2x

DSolve[y'[x]+2x y[x]==2x,y[x],x]

3) x y'-3 (x^3) y=3(x^3) (e^(2(x^3) ))

DSolve[x y'[x]-3(x^3) y[x]==3(x^3)(E^(2(x^3))),y[x],x]

4)  y'=((2y)/x)+x

DSolve[y'[x]==2((y[x])/x)+x,y[x],x]//Factor

5)  ((x^2)+1)y'+y = λ

DSolve[((x^2)+1)y'[x]+y[x]==λ,y[x],x]

6)  (x^2)y'- x y = (x^3)+x

DSolve[(x^2)y'[x]-x y [x]==(x^3)+x,y[x],x]//Expand

Exercice 2

Résoudre avec Mathematica les équations différentielles du deuxième ordre suivantes :

1) y''+y'+y=(e^(-x/2))

DSolve[y''[x]+ y' [x]+y[x]==(E^(-x/2)),y[x],x]//Simplify

2) y''-6y'+9y=6(2x-1)(e^(3x))

DSolve[y''[x]-6 y' [x]+9y[x]==6(2x-1)(E^(3x)),y[x],x]

3) y''-4y = 12(e^x)-8

DSolve[y''[x]-4 y [x]==12(E^x)-8,y[x],x]

4) y''+2y'-3y = 80(e^(6x))-12

DSolve[y''[x]+2 y' [x]-3y[x]==80(E^(6x))-12,y[x],x]

Exercice 3

1) Résoudre l’équation différentielle N'(t)=-λ N(t) avec la condition initiale N(0)=(Subscript[N, 0]). Tracer la solution pour (Subscript[N, 0])=10 et λ=1.

La solution générale de l’équation différentielle est :

DSolve[n'[t]==-λ n[t],n[t],t]

Mathematica donne un ensemble de solution avec un constante C[1] non déterminée. On fixer la constante en ajoutant la condion initiale :

resultat=DSolve[{n'[t]==-λ n[t],n[0]==n0},n[t],t]

Si on veut définir maintenant définir cette fonction dans Mathematica pour l’utiliser, on peut faire  :

n[t_]=n[t]/.resultat[[1]]

Il est possible maintenant de la tracer, donnant des valuers à n0 et λ :

Plot[n[t]/.{n0->10,λ->1},{t,0,5}]

2) Résoudre l’équation différentielle R C u'(t)+u(t)=E avec la condition initiale u(0)=(Subscript[u, 0]). Calculer la limite de u(t) pour t->++∞ . Tracer u(t) pour des valeurs choisies des paramètres.

Comme précédement :

resultat=DSolve[{R C u'[t]+u[t]==EE,u[0]==u0},u[t],t]

u[t_]=u[t]/.resultat[[1]]//Expand

Le calcul de la limite nécessite de spécifier que R et C sont des constantes positives :

Limit[u[t],t->∞,Assumptions->{R>0,C>0}]

On trace la fonction pour des valeurs choisies des paramètres :

Plot[u[t]/.{R->1,C->1,EE->2,u0->1},{t,0,5}]

3) Résoudre l’équation différentielle y''(t)+(ω^2) y(t)=0 .

DSolve[y''[t]+(ω^2)y[t]==0,y[t],t]

Mathematica donne un ensemble de solutions avec deux constantes C[1] et C[2].

4) Résoudre l’équation différentielle x''(t)+2δ x'(t) +(ω^2) x(t)=0 . Tracer la solution dans les cas ω>δ, ω=δ, et  ω<δ.

Résolvons l’équation différentielle :

resultat=DSolve[x''[t]+2δ x'[t]+(ω^2)x[t]==0,x[t],t]

x[t_]=x[t]/.resultat[[1]]

Mathematica  donne une seule solution, sans différentier les cas ω>δ et δ>ω , en supposant toutes les variables complexes. Cette solution est identique à celle que l’on peut trouver à la main pour δ>ω. Pour le cas ω>δ, on peut transformer la solution sous la forme de cos et sin. Après quelques essais, la commande donne :

Simplify[ComplexExpand[x[t]],Assumptions->{ω∈Reals,δ ∈Reals,ω>0,δ>0,ω>δ}]

Pour ω=δ, on a deux fois la même exponentielle :

x[t]/.ω->δ

Cette solution n’est pas correcte ! Pour trouver la bonne solution, reprennons la résolution de l’équation différentielle avec ω=δ :

Clear[x]

DSolve[x''[t]+2δ x'[t]+(δ^2)x[t]==0,x[t],t]

On a maintenant la bonne solution : ((Subscript[c, 1])+t (Subscript[c, 2]))(e^(-δ t)).

On peut regrouper tous les cas avec une commande “If” :

x[t_]=If[ω==δ,(E^(-t δ)) C[1]+(E^(-t δ)) t C[2],(E^(t (-δ-(Sqrt[(δ^2)-(ω^2)])))) C[1]+(E^(t (-δ+(Sqrt[(δ^2)-(ω^2)])))) C[2]]

Traçons la solution pour ω>δ :

Plot[x[t]/.{C[1]->1, C[2]->1,ω->2,δ->0.3},{t,0,10}]

pour ω=δ :

Plot[x[t]/.{C[1]->1, C[2]->1,ω->0.5,δ->0.5},{t,0,10}]

et pour ω<δ :

Plot[x[t]/.{C[1]->1, C[2]->1,ω->0.5,δ->1},{t,0,10}]

5) Résoudre l’équation différentielle q''(t)+R q'(t) /L+ q(t)/(L C)=0 .

Comme précédement :

resultat=DSolve[q''[t]+((R q'[t])/L)+((q[t])/(L C))==0,q[t],t]

q[t_]=q[t]/.resultat[[1]]

On peut transformer la solution pour (R^2)/(L^2)<4/L C :

Simplify[ComplexExpand[q[t]],Assumptions->{R∈Reals,L ∈Reals,C∈Reals,R>0,L>0,C>0,((R^2)/(L^2))<(4/(L C))}]

Pour (R^2)/(L^2)=4/L C, il faut utiliser cette relation dans l’équation différentielle et résoudre de nouveau l’équation différentielle :

Clear[q]

resultat=DSolve[q''[t]+Sqrt[4 /(L C)]q'[t]+((q[t])/(L C))==0,q[t],t]

6) Résoudre l’équation différentielle θ''(t)+(g/L)θ(t)=0 .

DSolve[θ''[t]+(g/L)θ[t]==0,θ[t],t]

Exercice 4

1) Résoudre l’équation différentielle c'(t)=-α c(((t))^p) avec la condition initiale c(0)=(Subscript[c, 0 ])pour p=1 et p≠1.

Pour p=1 :

DSolve[{c'[t]==-α c[t],c[0]==c0},c[t],t]

Pour p≠1 :

DSolve[{c'[t]==-α c[t]^p,c[0]==c0},c[t],t]//Simplify

2) Résoudre l’équation différentielle c'(t)=k (a- c(t))(b-c(t)) avec la condition initiale c(0)=0 pour a≠b et a=b.

Pour a≠b :

DSolve[{c'[t]==k (a-c[t])(b-c[t]),c[0]==0},c[t],t]//FullSimplify

Pour a=b :

DSolve[{c'[t]==k (a-c[t])(a-c[t]),c[0]==0},c[t],t]//FullSimplify

Exercice supplémentaire

1) Résoudre l’équation f'(x)+f(-x)=(e^x).

Un essai de résolution direct ne marche pas :

DSolve[f'[x]+f[-x]==(E^x),f[x],x]

Transformons l’équation en remplaçant x par -x et en prenant la dérivée :

f'[x]+f[-x]==(E^x)/.x->-x

D[f'[x]+f[-x]==(E^x),x]

On peut éliminer f'(-x) et on doit alors résoudre l’équation différentielle du deuxième ordre :

resultat=DSolve[f[x]+f''[x]==(E^(-x))+(E^x),f[x],x]//Simplify

f[x_]=f[x]/.resultat[[1]]

Si on vérifie à présent l’équation différentielle du premier ordre initiale, on élimine une constante :

Solve[f'[x]+f[-x]==(E^x),C[2]]

Les solutions sont donc finalement de la forme :

f[x]/.C[2]->-C[1]

2) Résoudre l’équation f''(x)+f(-x)=x.

Comme précédement :

Clear[f]

DSolve[f''[x]+f[-x]==x,f[x],x]

f''[x]+f[-x]==x/.x->-x

D[f''[x]+f[-x]==x,{x,2}]

On peut éliminer f''(-x) et on doit alors résoudre l’équation différentielle du quatrième ordre :

resultat=DSolve[f[x]-Derivative[4][f][x]==-x,f[x],x]

f[x_]=f[x]/.resultat[[1]]

On élimine deux constantes en vérifiant l’équation initiale :

f''[x]+f[-x]==x

Reduce[x+(E^(-x)) C[1]+(E^x) C[1]+(E^(-x)) C[3]+(E^x) C[3]-2 C[4] Sin[x]==x]

L’équation doit être vérifiée pour tout x donc seule la première condition est toujours possible : C[4]=0 et C[1]=-C[3]. Les solutions sont donc finalement de la forme :

f[x]/.{C[4]->0,C[1]->-C[3]}