Résolution numérique d'équations différentielles

Éléments de correction du cours Lien vers le pdf


Exercice 1:


On considère l'équation différentielle $y'+y^2=0$, avec $y(0)=1$.
  1. On a
    \[y'+y^2=0\iff y'=-y^2\iff\dfrac{y'}{y^2}=-1\]

    puis, en intégrant,
    \[-\dfrac1{y}=-x+k\]

    $k$ est une constante quelconque.
    En prenant l'inverse, on trouve enfin que
    \[y=-\dfrac1{-x+k}\]

    puis, avec la condition initiale
    \[y(0)=-\dfrac1{k}=1\iff k=-1\]

    on obtient la solution recherchée:
    \[y:x\mapsto-\dfrac1{-x-1}=\dfrac1{x+1}\]


    On calcule alors facilement la valeur exacte
    \[y(1)=\dfrac1{1+1}=\dfrac12\]

  2. La méthode d'Euler s'écrit

    \[y_{i+1}=y_i+h\varphi\lp x_i,y_i\rp\]

    avec la fonction $\varphi$ telle que $y'(x)=-y^2(x)=\varphi(x,y)$.

    On connaît la valeur initiale $y(0)$ et on souhaite calculer numériquement $y(1)$: on cherche donc à résoudre numériquement l'équation sur l'intervalle $[0;1]$.
    On discrétise cet intervalle:
    \[\newcommand{\addu}[1]{#1 1 add}
\begin{pspicture}(-2,-1.7)(11,1)
\psline[arrowsize=8pt,linewidth=1.4pt]{->}(-.5,0)(10,0)
\multido{\i=0+1}{3}{\psline(\i,-.2)(\i,.2)}
\multido{\i=0+1}{2}{\psline[arrowsize=6pt]{<->}(\i,-1)(!\addu{\i}\space-1)}
\rput(.5,-1.3){$h$}\rput(1.5,-1.3){$h$}
\rput(2.8,-1){$\dots$}
\rput(0,.4){$a\!=\!0$}
\rput[r](0.2,-.4){$x_0$}
\rput(1,-.4){$x_1$}
\rput(2,-.4){$x_2$}
\rput(4,-.4){$\dots$}
\psline(4.8,-.2)(4.8,.2)\rput(4.8,-.4){$x_i$}
\rput(5.5,-.4){$\dots$}
\psline(8,-.2)(8,.2)\rput(8,-.4){$x_{n-1}$}
\rput(8.8,.4){$b\!=\!1$}\psline(8.8,-.2)(8.8,.2)\rput[l](8.8,-.4){$x_n$}
\psline[arrowsize=6pt]{<->}(8,-1)(8.8,-1)\rput(8.5,-1.3){$h$}
\end{pspicture}\]

    Ainsi, avec un pas $h=0,2$, on a $x_0=0$, $x_1=0,2$, $x_2=0,4$, … , $x_5=1$, et le schéma d'Euler s'écrit

    \[\bgar{ll}y_0=y(0)=1\\[.5em]
y_1=y_0+h\varphi(x_0,y_0)=y_0-0,2y_0^2=0,8\\[.5em]
y_2=y_1+h\varphi(x_1,y_1)=y_1-0,2y_1^2=0,672\\[.5em]
y_3=y_2+h\varphi(x_2,y_2)=y_2-0,2y_2^2\simeq0,582\\[.5em]
y_4=y_3+h\varphi(x_3,y_3)=y_3-0,2y_3^2\simeq0,5140\\[.5em]
y_5=y_4+h\varphi(x_4,y_5)=y_4-0,2y_4^2\simeq0,4612
\enar\]

    et on a finit car $y_5\simeq y(x_5)=y(1)$.

    On trouve donc la valeur approchée
    \[y(1)\simeq0,4612\]

    avec une erreur relative
    \[\varepsilon_r=\left|\dfrac{0,5-y_5}{0,5}\right|\simeq0,0777\simeq8\%\]


    Bien sûr, et c'est l'objectif des TP, cette méthode est destinée à être programmée de manière à pouvoir effectuer ces calculs avec un pas bien plus petit, et donc avec une erreur bien plus faible.



Exercice 2:


On considère l'équation différentielle $y''-4y=0$ sur $[0;3]$, avec les conditions initiales $y(0)=0$ et $y'(0)=2$.
  1. Comme vu dans le cours sur l'approximation numérique de dérivées, on a pour une fonction $f$ quelconque deux fois dérivable,

    \[f''(a)\simeq\dfrac{f(a+h)-2f(a)+f(a-h)}{h^2}\]

    Avec une discrétisation avec un pas $h$, comme dans l'exercice précédent, on a donc

    \[y''\lp x_i\rp\simeq\dfrac{y(x_i+h)-2f(x_i)+f(x_i-h)}{h^2}\]

    or $x_i+h=x_{i+1}$ et $x_i-h=x_{i-1}$, d'où

    \[\bgar{ll}
  y''\lp x_i\rp&\simeq\dfrac{y\lp x_{i+1}\rp-2y\lp x_i\rp+f\lp x_{i-1}\rp}{h^2}\\[.8em]
  &=\dfrac{y_{i+1}-2y_i+y_{i-1}}{h^2}\enar\]


  2. On en déduire le schéma numérique d'approximation suivant

    \[\bgar{ll}y''-4y=0&\Longrightarrow y''\lp x_i\rp-4y\lp x_i\rp=0\\[.6em]
  &\iff\dfrac{y_{i+1}-2y_i+y_{i-1}}{h^2}-4y_i=0\\[1em]
  &\iff\bgar[t]{ll}y_{i+1}&=2y_i-y_{i-1}+4h^2y_i\\[1em]
  &=\lp2+4h^2\rp y_i-y_{i-1}\enar
  \enar\]

    Ainsi, à partir de cette relation, connaissant $y_0$ et $y_1$ on calcule $y_2$, puis $y_3$, puis …

  3. On a simplement $y_0=y\lp x_0\rp=y(0)=0$.

    La deuxième condition initiale concerne la dérivée, pour laquelle on utilise une approximation numérique (voir cours sur l'approximation numérique de dérivées):

    \[y'(0)\simeq\dfrac{y(0+h)-y(0)}h\]

    soit
    \[y'(0)\simeq\dfrac{y_1-y_0}h\]

    or $y'(0)=2$ et on vient de voir que $y_0=0$.
    On en déduit donc que
    \[2=\dfrac{y_1}h\iff y_1=2h\]


    Maintenant, avec ces deux valeurs initiales et le schéma numérique de la question précédente, on peut calculer, armé de patience ou d'un ordinateur correctement programmé, toutes les valeurs successives $y_i=y\lp x_i\rp$.

Illustration graphique


y"-4y=0





Voir aussi:
LongPage: h2: 1 - h3: 2