Corrigé feuille 2
Corrigé feuille 2
Corrigé feuille 2
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