20.01.2015 Views

Corrigé feuille 2

Corrigé feuille 2

Corrigé feuille 2

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Exercice 1 :<br />

Soit le système d’équations différentielles<br />

Université de Provence, Année 2011/2012<br />

Licence Mathématiques-Informatique,<br />

parcours Mécanique-3ème année<br />

T.D. de Calcul Scientifique<br />

<strong>Corrigé</strong> des exercices de la <strong>feuille</strong> n˚ 2<br />

du 1<br />

dt<br />

du 2<br />

dt<br />

= 2u 1<br />

= 3u 1 − u 2 .<br />

(1)<br />

avec des conditions initiales données en t = 0. Résoudre ce système d’équations différentielles<br />

de deux manières.<br />

1a) Déterminer u 1 par la première équation est injecter le résultat dans la deuxième équation.<br />

<strong>Corrigé</strong> : La solution de la première équation est bien sûr<br />

u 1 = e 2t a<br />

avec a la condition initiale u 1 (0) = a. Injectant cette solution dans la deuxième équation on doit<br />

résoudre<br />

du 2<br />

= 3e 2t a − u 2 . (2)<br />

dt<br />

Comme il a été rappelé dans le chapitre 1.1 de la partie 4 du cours, la solution u 2 = v+w est<br />

la somme d’une solution générale v de l’équation homogène et d’une solution particulière w.<br />

Donc, v est solution de<br />

dv<br />

dt = −v<br />

et donc v = e −t b (avec b par exemple la condition initiale u 2 (0) = b). La solution particulière<br />

s’écrit, par la méthode de la variation de la constante, w = c(t)e −t et si on injecte cette fonction<br />

dans l’équation (2), on trouve<br />

−t dc<br />

e<br />

dt = 3e2t a,<br />

donc<br />

dc<br />

dt = 3ae3t<br />

et une solution qui s’annule en t = 0 (dans ce cas la constante b de la solution générale correspond<br />

bien à la condition initiale u 2 (0)) est<br />

Z t<br />

c(t) = 3a e 3s ds = a(e 3t − 1) et w = a(e 2t − e −t ).<br />

0<br />

1


Par conséquent,<br />

u 2 (t) = e −t b+a(e 2t − e −t ).<br />

1b) Ecrire le système sous la forme<br />

et trouver la solution à l’aide de e tA .<br />

d<br />

dt u = Au<br />

<strong>Corrigé</strong> : La matrice A s’écrit<br />

A =<br />

(<br />

2 0<br />

3 −1<br />

et les valeurs propres de cette matrice sont λ 1 = 2 et λ 2 = −1 (en effet, A est triangulaire et les<br />

éléments sur la diagonale d’une matrice triangulaire sont aussi les valeurs propres de la matrice).<br />

On rappelle que si x est vecteur propre associé à la valeur propre λ d’une matrice, alors x est<br />

solution (non nulle) de l’équation (A − λI)x = 0. Ici, pour λ 1 = 2 on trouve<br />

3x 1 − 3x 2 = 0<br />

et donc x (1) = (1,1) T est vecteur propre associé à λ 1 . Pour λ 2 = −1 on trouve 2x 1 = 0 et donc<br />

x (2) = (0,1) T est vecteur propre associé à λ 2 . Soit donc<br />

( )<br />

1 0<br />

P =<br />

1 1<br />

la matrice dont les colonnes sont les vecteurs propres, alors<br />

avec<br />

D =<br />

(<br />

2 0<br />

0 −1<br />

A = PDP −1<br />

)<br />

) (<br />

, P −1 1 0<br />

=<br />

−1 1<br />

Comme il a été démontré dans la partie cours, on peut écrire e tA = Pe tD P −1 ; l’exponentielle<br />

d’une matrice D diagonale se calcule aisément et ici<br />

( )<br />

e tD e<br />

2t<br />

0<br />

=<br />

0 e −t<br />

d’où en définitive<br />

(<br />

e tA =<br />

e 2t )<br />

0<br />

e 2t − e −t e −t<br />

Soit donc u(0) = (u 1 (0),u 2 (0)) T = (a,b) T , alors u(t)=e tA u(0) et on retrouve bien u 1 (t)=e 2t a,<br />

u 2 (t) = (e 2t − e −t )a+e −t b.<br />

)<br />

.<br />

2


Exercice 2 :<br />

Soit maintenant le système d’équations différentielles<br />

du 1<br />

dt<br />

du 2<br />

dt<br />

= 2u 1<br />

= 3u 1 + 2u 2 .<br />

(3)<br />

avec des conditions initiales données en t = 0. Résoudre ce système d’équations différentielles<br />

de deux manières.<br />

2a) Déterminer u 1 par la première équation est injecter le résultat dans la deuxième équation.<br />

Corrige : On trouve u 1 = e 2t a et on injecte cette solution dans la deuxième équation, donc<br />

du 2<br />

dt<br />

= 3e 2t a+2u 2 .<br />

A nouveau u 2 = v+w avec v = e 2t b solution générale de l’équation homogène et w = c(t)e 2t :<br />

injectant cette expression dans l’équation, on trouve<br />

dc<br />

dt = e−2t 3e 2t a = 3a<br />

dont la solution qui s’annule en t = 0 est c(t) = 3at et donc<br />

u 2 (t) = e 2t b+3ate 2t .<br />

2b) Ecrire le système sous la forme<br />

Décomposer A<br />

A =<br />

( 2 0<br />

0 2<br />

d<br />

dt u = Au.<br />

et en déduire e tA ainsi que la solution du système.<br />

<strong>Corrigé</strong> : Bien sûr<br />

A =<br />

) ( 0 0<br />

+<br />

3 0<br />

(<br />

2 0<br />

3 2<br />

Cette matrice a λ 1 = 2 comme valeur propre double et on peut montrer que la matrice n’est pas<br />

diagonalisable. La décomposition ci-dessus est de la forme<br />

A = 2I + N<br />

)<br />

.<br />

)<br />

3


avec I matrice unité 2 × 2 et<br />

N =<br />

( 0 0<br />

3 0<br />

et on peut facilement se convaincre que N 2 = 0 est la matrice identiquement égale à zéro. Les<br />

matrices I et N commutent et (voir cours, partie 4, chapitre 1.2)<br />

Evidemment,<br />

e t2I =<br />

)<br />

e tA = e t2I e tN .<br />

( ) e<br />

2t<br />

0<br />

0 e 2t<br />

et e tN se calcule aisément car la série est une somme finie, étant donné que N 2 = 0 (et donc<br />

N k = 0,k ≥ 2)<br />

( )<br />

e tN 1 0<br />

= I +tN = .<br />

3t 1<br />

Opérant le produit de ces deux matrices, on trouve bien<br />

( )<br />

e tA e<br />

2t<br />

0<br />

=<br />

3te 2t e 2t<br />

et on retrouve u(t) = e tA u 0 avec u 0 = (a,b) T la condition initiale.<br />

Exercice 3 : Deux ressorts couplés.<br />

Deux masses égales m 1 = m 2 = m sont reliées entre elles et à un support fixe par des ressorts<br />

de même constante k. Les élongations u 1 (t) et u 2 (t) des masses à partir de leurs positions<br />

d’équilibre sont, en l’absence de forces extérieures régies par le système différentiel<br />

0000000000000000000<br />

1111111111111111111<br />

0000000000000000000<br />

1111111111111111111<br />

01<br />

0000 11110<br />

1<br />

m<br />

10000<br />

11110<br />

1<br />

01<br />

01<br />

u 1<br />

01<br />

0000 11110<br />

1<br />

m 0000 11110<br />

1 u<br />

2 2<br />

01<br />

01<br />

m d2 u 1<br />

dt 2 = k(u 2 − u 1 ) − ku 1<br />

m d2 u 2<br />

dt 2 = −k(u 2 − u 1 )<br />

Trouver la solution du système, qui vérifie la condition initiale<br />

u 1 (0) = 1, u 2 (0) = 0, du 1<br />

dt (0) = 0, du 2<br />

(0) = 0.<br />

dt<br />

4


Indication : On cherchera la solution sous la forme (u 1 ,u 2 ) = e λt (a,b).<br />

<strong>Corrigé</strong> : Il s’agit ici de deux équation différentielles linéaires à coefficients constants d’ordre<br />

deux et ce système pourrait être écrit sous la forme de 4 équations d’ordre 1. Il a été vu dans<br />

la partie cours que les composantes de la solution d’un système d’équations différentielles<br />

linéaires à coefficients constants s’écrivent comme une combinaison linéaire de e tλ avec λ les<br />

valeurs propres de la matrice qui définit le système d’équations différentielles. Pour trouver ces<br />

valeurs propres λ, il est donc légitime de poser (u 1 ,u 2 ) = e λt (a,b) et d’injecter cette expression<br />

dans l’équation. On trouve<br />

mλ 2 ae λt<br />

mλ 2 be λt<br />

= k(b − a)e λt − kae λt<br />

= −k(b − a)e λt<br />

ce qui donne lieu au système<br />

(mλ 2 + 2k)a − kb = 0<br />

−ka+(mλ 2 + k)b = 0.<br />

On cherche évidemment à écrire les conditions pour que ce système ait une solution (a,b) ≠<br />

(0,0), ce qui est le cas si le déterminant du système est nul et donc<br />

et en posant µ= λ 2 , on doit résoudre<br />

(mλ 2 + 2k)(mλ 2 + k) − k 2 = 0<br />

m 2 µ 2 + 3kmµ+ k 2 = 0.<br />

Par conséquent<br />

µ 1 = k m<br />

(<br />

−3+ √ ) (<br />

5<br />

, µ 2 = k −3 − √ )<br />

5<br />

.<br />

2<br />

m 2<br />

Ces deux solutions sont négatives et étant donné que λ 2 = µ, on trouve<br />

avec les fréquences<br />

λ 1 = iω 1 ,λ 2 = −iω 1 ,λ 3 = iω 2 ,λ 4 = −iω 2 ,<br />

ω 1 =<br />

√<br />

k<br />

m<br />

√<br />

3 − √ √<br />

√<br />

5 k 3+ √ 5<br />

,ω 2 = .<br />

2<br />

m 2<br />

Les valeurs de λ sont imaginaires pures et conjuguées complexes : au lieu d’écrire la solution<br />

(réelle) comme une combinaison linéaire des fonctions e ±iω jt , il est plus commode de l’écrire<br />

comme une somme de sinus et cosinus et<br />

u 1 (t) = A 1 cos(ω 1 t)+B 1 sin(ω 1 t)+C 1 cos(ω 2 t)+D 1 sin(ω 2 t)<br />

u 2 (t) = A 2 cos(ω 1 t)+B 2 sin(ω 1 t)+C 2 cos(ω 2 t)+D 2 sin(ω 2 t).<br />

5


Or, dans ces expressions apparaissent 8 constantes à déterminer, mais la condition initiale ne<br />

fournit que 4 conditions. Il convient donc d’injecter la forme générale de la solution ci-dessus<br />

dans une des deux équations différentielles du système, par exemple la deuxième, ce qui donne<br />

les relations<br />

(−ω 2 1m+k)A 2 = kA 1 (4)<br />

(−ω 2 1 m+k)B 2 = kB 1 (5)<br />

(−ω 2 2 m+k)C 2 = kC 1 (6)<br />

(−ω 2 2 m+k)D 2 = kD 1 . (7)<br />

Ecrivons les relations provenant des conditions initiales. La condition du 1<br />

dt<br />

(0) = 0 donne<br />

tandis que du 2<br />

dt (0) = 0 permet d’écrire ω 1 B 2 + ω 2 D 2 = 0.<br />

ω 1 B 1 + ω 2 D 1 = 0 (8)<br />

Or, les équations (5) et (7) permettent d’exprimer B 2 en fonction de B 1 et D 2 en fonction de D 1<br />

et donc<br />

kω 1<br />

k − ω 2 1 mB 1 + kω 2<br />

k − ω 2 2 mD 1 = 0. (9)<br />

Utilisant (8) pour exprimer D 1 en fonction de B 1 on trouve<br />

( kω1<br />

B 1<br />

k − ω 2 1 m − kω )<br />

1<br />

k − ω 2 2 m = 0<br />

ce qui équivaut à, en mettant l’expression entre parenthèses sur le dénominateur commun,<br />

B 1<br />

(<br />

ω<br />

2<br />

1 − ω 2 2)<br />

= 0<br />

et donc B 1 = 0 et ensuite D 1 = B 2 = D 2 = 0 car ω 2 1 ≠ ω2 2 . La condition u 1(0) = 1 donne lieu à<br />

l’équation<br />

A 1 +C 1 = 1 (10)<br />

et enfin u 2 (0) = 0 à<br />

A 2 +C 2 = 0.<br />

Utilisant (4) et (6) dans cette dernière équation, on trouve<br />

k<br />

k<br />

k − ω 2 1 mA 1 +<br />

k − ω 2 2 mC 1 = 0<br />

et exprimant C 1 en fonction de A 1 donne en injectant le résultat obtenu dans (10)<br />

(<br />

A 1 1 − k − ω2 2 m )<br />

(ω 2 2<br />

k − ω 2 1 m = A − ω2 1 )m<br />

1<br />

k − ω 2 1 m = 1<br />

6


d’où<br />

A 1 =<br />

D’où la solution<br />

k − ω2 1 m<br />

(ω 2 2 − ω2 1 )m, C 1 = ω2 2 m − k<br />

(ω 2 2 − ω2 1 )m, A 2 =<br />

u 1 (t) =<br />

u 2 (t) =<br />

k<br />

(ω 2 2 − ω2 1 )m, C k<br />

2 = −<br />

(ω 2 2 − ω2 1 )m.<br />

k − ω 2 1 m<br />

(ω 2 2 − ω2 1 )m cos(ω 1t)+ ω2 2 m − k<br />

(ω 2 2 − ω2 1 )m cos(ω 2t),<br />

k<br />

(ω 2 2 − ω2 1 )m (cos(ω 1t) − cos(ω 2 t)).<br />

Exercice 4 : Erreur dans un schéma d’Euler explicite.<br />

4a) Soit le problème à valeur initiale<br />

u ′ = t −t 3 , u(0) = 0.<br />

Supposons que nous utilisons la méthode d’Euler explicite avec un pas de temps h afin de<br />

déterminer une solution approchée U j de u(t j ) avec t j = jh. Trouver une expression explicite<br />

pour U j et pour l’erreur E(t j ,h) = U j −u(t j ). Soit maintenant t fixé, et h n =<br />

n t de façon à ce que<br />

t n = t. Evaluer l’erreur E(t,h n ) et montrer que l’erreur tend vers zéro quand n → ∞.<br />

<strong>Corrigé</strong> : Soit t j = jh ; le schéma d’Euler explicite pour la résolution d’une équation différentielle<br />

avec condition initiale u ′ (t) = f(t,u(t)), u(0) = u 0 s’écrit simplement<br />

Ici f(t,u(t)) = t −t 3 et donc<br />

et en itérant<br />

etc. Finalement on trouve<br />

U j+1 = U j + h f(t j ,U j ), j = 0,1,···, U 0 = u 0 .<br />

U j+1 = U j + h(t j −t 3 j )<br />

U j+1 = U j−1 + h(t j−1 −t 3 j−1 +t j −t 3 j )<br />

U j = U 0 + h<br />

j−1<br />

∑<br />

k=0<br />

(t k −t 3 k<br />

j−1<br />

) = h2 ∑ k − h 4 j−1<br />

∑ k 3<br />

k=0 k=0<br />

car t k = kh et ici la condition initiale U 0 = 0. Or, il est bien connu que ∑ j−1 j( j−1)<br />

k=0<br />

k =<br />

2<br />

et<br />

∑ j−1<br />

k=0 k3 = j2 ( j−1) 2<br />

4<br />

et par conséquent<br />

2 j( j − 1)<br />

U j = h<br />

2<br />

− h 4 j2 ( j − 1) 2<br />

.<br />

4<br />

Pour cet exemple l’équation différentielle s’intègre aisément, la solution étant u(t) = t2 2 − t4 4 et<br />

donc<br />

u(t j ) = h 2 j2<br />

2<br />

7<br />

− h4<br />

j4<br />

4


de façon à ce que<br />

E(t j ,h) = U j − u(t j ) = h 2 ( j( j − 1)<br />

2<br />

) (<br />

− j2 j<br />

− h 4 2 ( j − 1) 2 )<br />

− j4<br />

= −h 2 j 2<br />

4 4 2 + 2 h4 j3 − j 2<br />

.<br />

4<br />

Soit t et h n =<br />

n t , alors t n = nh n = t. D’après l’expression ci-dessus (prenant j = n et h = h n )<br />

E(t,h n ) = −h 2 n<br />

n<br />

2 + 2n 3 − n 2<br />

h4 n = −t 2 1 ( 1<br />

4 2n +t4 2n − 1 )<br />

4n 2 .<br />

On remarque que l’on peut aussi écrire cette erreur au temps t (entre la solution obtenue par le<br />

schéma d’Euler explicite et la solution exacte) en termes de h n et<br />

E(t,h n ) = h n<br />

t 3 −t<br />

2<br />

− h 2 nt 2 4 .<br />

On remarque que le terme dominant de l’erreur est bien en O(h n ) comme démontré dans la<br />

partie cours et bien sûr E(t,h n ) → 0 quand h n → 0 (et h n → 0 si et seulement si n → ∞).<br />

4b) Maintenant on considère l’équation différentielle<br />

du<br />

dt<br />

= u, u(0) = 1.<br />

Soit t un temps donné et n un entier positif ; on note h n = t/n de façon à ce que t n = nh n = t.<br />

On note U n l’approximation de u(t), obtenue au temps t n = t par la méthode d’Euler explicite.<br />

Montrer que U n = exp(tϕ(h n )) pour une fonction ϕ(h n ) que l’on précisera. Montrer que ϕ(h n )<br />

est développable en une série de la variable h n qui converge pour n assez grand tel que |h n | < 1.<br />

En déduire que l’on peut alors écrire U n sous la forme<br />

U n =<br />

∞<br />

∑<br />

i=0<br />

τ i (t)h i n ,<br />

convergente (t étant fixé), si |h n | < 1. Expliciter τ i (t) pour i = 0,1,2. Interpréter le résultat.<br />

<strong>Corrigé</strong> : Appliquant le schéma d’Euler explicite à cette équation (ici f(t,u(t)) = u(t)) on<br />

obtient<br />

U n+1 = U n + h n U n = (1+h n )U n<br />

et en itérant<br />

etc. pour obtenir<br />

U n+1 = (1+h n ) 2 U n−1<br />

U n = (1+h n ) n U 0 = (1+h n ) n<br />

car la condition initiale U 0 = 1. Tenant compte de h n =<br />

n t on peut écrire<br />

( )<br />

U n = (1+h n ) t/h n t ln(1+hn )<br />

= exp<br />

= exp(tϕ(h n )).<br />

h n<br />

8


Par le développement en série<br />

ln(1+h n ) =<br />

∞<br />

∑(−1) i+1 hi n<br />

i=1<br />

i<br />

convergente pour |h n | < 1 on a<br />

ϕ(h n ) = ln(1+h n)<br />

h n<br />

=<br />

∞<br />

∑<br />

i=1<br />

i+1 hi−1 n<br />

(−1)<br />

i<br />

=<br />

∞<br />

∑<br />

i=0<br />

h i n<br />

(−1) i<br />

i+1<br />

Cette série converge pour |h n | < 1 et la fonction exponentielle e u étant développable en série<br />

entière convergente pour tout u, on déduit que pour t fixé la fonction exp(tϕ(h n )) est développable<br />

en série entière et on peut écrire<br />

U n =<br />

∞<br />

∑<br />

i=0<br />

τ i (t)h i n,<br />

convergente si |h n | < 1. Pour calculer les premiers coefficients τ i (t), il suffit d’observer que<br />

( )<br />

exp(tϕ(h n )) = exp<br />

t<br />

∞<br />

∑<br />

i=0<br />

h i n<br />

(−1) i<br />

i+1<br />

= exp(t)exp(−th n /2)exp(th 2 n /3)···<br />

et par le développement bien connu de la fonction exponentielle<br />

(<br />

t<br />

exp(tϕ(h n )) = exp(t) 1 − h n<br />

2 + t 2 ) ( h2 n<br />

8 + O(h3 n) 1+h 2 t<br />

)<br />

n<br />

3 + O(h3 n) ···<br />

Regroupant les termes on trouve<br />

U n = exp(t) − exp(t) t 2 h n + exp(t)<br />

( t<br />

3 + t2 8<br />

)<br />

h 2 n + ···<br />

On observe ici que le terme exp(t) est en fait la solution exacte u(t) de l’équation différentielle<br />

et donc<br />

E(t,h n ) = U n − u(t) = −exp(t) t ( ) t<br />

2 h n + exp(t)<br />

3 + t2 h 2 n + ···<br />

8<br />

L’erreur entre la solution numérique et la solution exacte est donc bien en O(h n ) et donc (pour t<br />

donné) E(t,h n ) → 0 quand h n → 0. Cependant, lorsqu’on écrit −exp(t)<br />

2 t h n = O(h n ), il faut<br />

être conscient que h n apparaît en produit avec la fonction −exp(t)<br />

2 t de t. Pour la solution<br />

u(t) = exp(t) l’erreur relative entre la solution du schéma d’Euler et la solution exacte est plus<br />

significative que l’erreur absolue et<br />

E(t,h n )<br />

exp(t) = − t ) t<br />

2 h n +(<br />

3 + t2 h 2 n<br />

8<br />

+ ···<br />

9


Exercice 5 : Ordre d’un schéma de Runge-Kutta et stabilité absolue.<br />

On cherche à résoudre l’équation différentielle<br />

u ′ (t) = f(t,u(t)), u(t 0 ) = u 0 , (11)<br />

par une méthode à un pas du type Runge-Kutta. Ici f : R 2 → R est supposée 3 fois continûment<br />

dérivable dans R 2 . On note t i = t 0 +ih et U i l’approximation de u(t i ), avec U i solution du schéma<br />

avec<br />

b 1 ,b 2 ,c 2 étant des nombres réels.<br />

U 0 = u 0<br />

U i+1 = U i + hF(t i ,U i ,h) (12)<br />

t i+1 = t i + h, i = 0,1,....<br />

F(t i ,U i ,h) = b 1 k 1 + b 2 k 2 avec<br />

k 1 = f(t i ,U i ), k 2 = f(t i + hc 2 ,U i + c 2 hk 1 ), (13)<br />

5a) On note<br />

u(t + h) − u(t)<br />

τ(t,h) = − F(t,u(t),h),<br />

h<br />

u(t) étant la solution exacte de (11). Déterminer les conditions sur b 1 ,b 2 ,c 2 pour que le schéma<br />

(18) soit d’ordre 2, i.e. τ(t,h) = O(h 2 ).<br />

<strong>Corrigé</strong> : Ecrivons les premiers termes du développement de Taylor en h (pour t fixé)<br />

u(t + h) − u(t)<br />

h<br />

= u ′ (t)+ h 2 u′′ (t)+ h2<br />

6 u′′′ (t)+··· (14)<br />

et u(t) étant solution exacte de l’équation différentielle (11), on peut écrire, pour les 2 premiers<br />

termes du développement<br />

u ′ (t) = f(t,u(t))<br />

et<br />

u ′′ (t) = ∂ f<br />

∂t (t,u(t))+ ∂ f<br />

∂u (t,u(t))u′ (t) = ∂ f<br />

∂t (t,u(t))+ ∂ f (t,u(t)) f(t,u(t)).<br />

∂u<br />

Par conséquent<br />

u(t + h) − u(t)<br />

= f(t,u(t))+ h ( ∂ f<br />

h<br />

2 ∂t (t,u(t))+ ∂ f<br />

)<br />

∂u (t,u(t)) f(t,u(t)) + O(h 2 ) (15)<br />

Par ailleurs le développement de ϕ(h) = F(t,u(t),h) en h pour t fixé s’écrit<br />

ϕ(h) = F(t,u(t),0)+h ∂F<br />

h2 ∂ 2 F<br />

(t,u(t),0)+<br />

∂h 2 ∂h 2 (t,u(t),0)+O(h3 ) (16)<br />

10


La fonction F(t,u(t),h) s’écrit ici<br />

et donc<br />

F(t,u(t),h) = b 1 f(t,u(t))+b 2 f (t + hc 2 ,u(t)+c 2 h f(t,u(t)))<br />

F(t,u(t),0) = (b 1 + b 2 ) f(t,u(t))<br />

et<br />

∂F<br />

∂h (t,u(t),0) = b ∂ f<br />

2c 2<br />

∂t (t,u(t))+b ∂ f<br />

2<br />

∂u (t,u(t))c 2 f(t,u(t)).<br />

Injectant ces expression dans (16) et soustrayant (16) de (15) on obtient<br />

τ(t,h) = (1 − b 1 − b 2 ) f(t,u(t))<br />

( )( 1 ∂ f<br />

+ h<br />

2 − b 2c 2<br />

∂t (t,u(t))+ ∂ f<br />

)<br />

∂u (t,u(t)) f(t,u(t)) + O(h 2 )<br />

On déduit aisément que le schéma est d’ordre 2, si<br />

b 1 + b 2 = 1, et b 2 c 2 = 1 2<br />

5b) Montrer qu’il n’est pas possible de trouver des coefficients b 1 ,b 2 ,c 2 pour que l’ordre général<br />

du schéma soit égal à 3.<br />

Indication : Evaluer par exemple τ(t,h) pour la fonction f(t,u) = u.<br />

<strong>Corrigé</strong> : Pour montrer que l’ordre général du schéma n’est pas égal à 3 il suffit de trouver<br />

un contre-exemple et en suivant l’indication, on évalue le terme en h 2 dans (14) pour la fonction<br />

f(t,u(t)) = u(t). On a donc u ′ (t) = u(t) et ensuite u ′′ (t) = u ′ (t) = u(t) et u ′′′ (t) = u(t). Donc,<br />

ici<br />

u(t + h) − u(t)<br />

= u(t)+ h h2<br />

u(t)+<br />

h<br />

2 6 u(t)+O(h3 ).<br />

Si f(t,u(t)) = u(t), alors<br />

F(t,u(t),h) = b 1 u(t)+b 2 (u(t)+c 2 hu(t)) = (b 1 + b 2 )u(t)+b 2 c 2 hu(t).<br />

Il a été vu que si b 1 + b 2 = 1 et b 2 c 2 =<br />

2 1 alors le schéma est d’ordre 2. Pour ces valeurs des<br />

coefficients<br />

u(t + h) − u(t)<br />

− F(t,u(t),h) = h2<br />

h<br />

6 u(t)+O(h3 )<br />

et le schéma est bien d’ordre 2, mais le terme dominant de τ(t,h) est ici h2<br />

6<br />

u(t) qui n’est pas en<br />

O(h 3 ). En conclusion, l’ordre général du schéma ne peut pas être égal à 3.<br />

5c) Soient des coefficients b 1 ,b 2 ,c 2 tels que le schéma (18) est d’ordre 2. On considère l’équation<br />

différentielle<br />

u ′ = λu, u(0) = 1, avec λ < 0. (17)<br />

11


Ecrire la solution exacte u(t) et observer que u(t) → 0 quand t → ∞. On note U i l’approximation,<br />

donnée par le schéma (18), de la solution exacte u(t i ), t i = ih. Montrer que U i → 0 quand<br />

i → ∞, si et seulement si −2 < λh < 0.<br />

Remarque : la contrainte sur le pas de temps −2 < λh < 0 est une condition dite de stabilité<br />

absolue du schéma.<br />

<strong>Corrigé</strong> : La solution exacte de l’équation différentielle est évidemment u(t) = e λt et bien<br />

entendu, si λ < 0, alors u(t) → 0 quand t → 0. Pour f(t,u(t)) = λu(t) et pour b 1 + b 2 = 1 et<br />

b 2 c 2 =<br />

2 1 on peut écrire<br />

F(t i ,U i ,h) = b 1 λU i + b 2 λ(U i + c 2 hλU i ) = λU i + h 2 λ2 U i .<br />

Par conséquent,<br />

U i+1 = U i + h<br />

(λU i + h )<br />

2 λ2 U i =<br />

) (1+r+ r2<br />

U i ,<br />

2<br />

r = λh.<br />

En itérant cette relation, tenant compte de la condition initiale U 0 = 1, on trouve<br />

U i =<br />

(<br />

1+r+ r2 2<br />

) i<br />

, r = λh.<br />

Par conséquent, pour que U i → 0 quand i → ∞ avec t i = ih, c’est-à-dire pour que la solution<br />

numérique reproduise la comportement de la vraie solution pour t → ∞, il faut et il suffit que<br />

r2<br />

∣1+r+ 2 ∣ < 1, r = λh.<br />

Donc, il faut et il suffit que<br />

Alors par l’inégalité de droite,<br />

−1 < 1+r+ r2<br />

2 < 1<br />

r+ r2 (<br />

2 = r 1+ r )<br />

< 0<br />

2<br />

ce qui est vérifié, si et seulement si −2 < r < 0. Le minimum de r+ r2 2<br />

et alors la fonction prend la valeur −1/2 et donc on aura toujours<br />

est atteint pour r = −1<br />

−2 < r+ r2 2<br />

et l’inégalité à gauche est toujours vérifiée. Donc U i → 0 quand i → ∞, si et seulement si<br />

−2 < r = λh < 0,<br />

12


ou encore, tenant compte que λ < 0,<br />

0 < h < − 2 λ .<br />

On constate ici que plus −λ = |λ| sera grand, plus la condition de stabilité absolue mettra une<br />

borne sur des valeurs possibles de h.<br />

Exercice 6 : schéma de Runge-Kutta d’ordre 3.<br />

On considère le schéma de Runge-Kutta donné par le tableau ci-après.<br />

0 0 0 0 0<br />

1/2 1/2 0 0 0<br />

1 0 1 0 0<br />

1 0 0 1 0<br />

1/6 2/3 0 1/6<br />

6a) Expliciter ce schéma, c.-à-d. donner la fonction F(t,u(t),h) telle que l’approximation au<br />

temps t i = t 0 +ih, notée U i , de la solution de l’équation du/dt = f(t,u(t)), u(t 0 ) = u 0 est donnée<br />

par le schéma<br />

U 0 = u 0<br />

U i+1 = U i + hF(t i ,U i ,h) (18)<br />

t i+1 = t i + h, i = 0,1,....<br />

<strong>Corrigé</strong> : Les schémas de Runge-Kutta sont discutés dans la chapitre 2.2 de la partie 4 du cours.<br />

Avec les notations du cours, ici<br />

(les autres coefficients a i j étant nuls) et<br />

Par conséquent, avec les notations du cours,<br />

c 1 = 0,c 2 = 1/2,c 3 = 1,c 4 = 1,<br />

a 21 = 1/2,a 32 = 1,a 43 = 1,<br />

b 1 = 1/6,b 2 = 2/3,b 3 = 0,b 4 = 1/6.<br />

U i,1<br />

= U i<br />

U i,2 = U i + h 2 f(t i,U i,1 )<br />

(<br />

U i,3 = U i + h f t i + h )<br />

2 ,U i,2<br />

U i,4 = U i + h f(t i + h,U i,3 )<br />

13


et finalement<br />

( 1<br />

U i+1 = U i + h<br />

6 f(t i,U i,1 )+ 2 (<br />

3 f t i + h )<br />

2 ,U i,2 + 1 )<br />

6 f(t i + h,U i,4 )<br />

On observe qu’il s’agit bien d’un schéma explicite, dans la mesure où partant de U i,1 = U i on<br />

peut déterminer U i,2 , ensuite U i,3 et enfin U i,4 .<br />

6b) Vérifier à partir des relations données en cours que ce schéma est bien d’ordre 3.<br />

<strong>Corrigé</strong> : On rappelle (voir partie cours) que pour qu’un schéma de Runge-Kutta soit d’ordre<br />

3, les conditions suivantes doivent être satisfaites<br />

ainsi que<br />

q<br />

∑<br />

i=1<br />

b i = 1,c i =<br />

q<br />

∑ a i j , i = 1,···,q,<br />

j=1<br />

q<br />

∑<br />

i=1b i c 2 i = 1 3 , q<br />

∑<br />

i=1<br />

q<br />

∑ b i a i j c j = 1<br />

j=1<br />

6 .<br />

4<br />

∑ i c i =<br />

i=1b 1 3 + 1 6 = 1 4<br />

2 , ∑ b i c 2 i = 2<br />

i=1<br />

12 + 1 6 = 1 4<br />

3 , ∑<br />

i=1<br />

q<br />

∑<br />

i=1b i c i = 1 2<br />

Ici q = 4, les coefficients sont donnés ci-dessus ; les deux premières relations sont vérifiées et<br />

on a bien<br />

4<br />

∑ b i a i j c j = 1<br />

j=1<br />

6 .<br />

6c) On considère le cas particulier d’une équation différentielle de la forme du/dt = λu avec λ<br />

un nombre réel. Montrer directement, en évaluant pour cet exemple<br />

τ(t,h) =<br />

u(t + h) − u(t)<br />

h<br />

− F(t,u(t),h),<br />

que le schéma appliqué à cette équation différentielle est d’ordre 3.<br />

<strong>Corrigé</strong> : Evaluant pour f(t,u(t)) = λu(t) la fonction F(t,u(t),h) on obtient<br />

F(t,u(t),h) = 1 6 λu(t)+ 2 (<br />

3 λ u(t)+ h )<br />

2 λu(t) + 1 ( (u(t)+hλ<br />

6 λ u(t)+hλ<br />

(u(t)+ h )))<br />

2 λu(t) .<br />

Regroupant les termes on obtient<br />

F(t,u(t),h) = λu(t)+h 1 2 λ2 u(t)+h 21 6 λ3 u(t)+h 3 1<br />

12 λ4 u(t).<br />

Cette expression est à comparer avec le développement de<br />

u(t + h) − u(t)<br />

h<br />

= u ′ (t)+ h 2 u′′ (t)+ h2<br />

6 u′′′ (t)+ h3<br />

24 u(4) (t)+0(h 4 )<br />

= λu(t)+ h 2 λ2 u(t)+ h2<br />

6 λ3 u(t)+ h3<br />

24 λ4 u(t)+O(h 4 )<br />

14


car u ′ (t)=λu(t), u ′′ (t)=λu ′ (t) = λ 2 u(t) etc. On en déduit que pour cette équation différentielle<br />

τ(t,h) = − h3<br />

24 λ4 u(t)+O(h 4 ).<br />

Cette expression est bien en O(h 3 ) ce qui vérifie l’ordre du schéma pour cet exemple. Cependant,<br />

l’ordre général du schéma n’est pas 4 dans la mesure où pour cet exemple d’équation<br />

différentielle avec f(t,u(t)) = λu(t), l’expression τ(t,h) ≠ O(h 4 ).<br />

15

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!