Projet informatique
La m´ ethode de Runge-Kutta dans la simulation du pendule math´ ematique
sujet propos´e par H. Chen ([email protected]), encadr´e par A. Hersant ([email protected])
On consid`ere une tige impond´erable de longueur 𝑙 >0, suspendue par une extr´emit´e et portant `a son autre extr´emit´e un point de masse 𝑚. On d´esigne par 𝜃 l’angle d’´ecart par rapport `a la verticale. D’apr`es les lois de la m´ecanique, lorsque ∣𝜃(𝑡)∣<
𝜋/2, l’acc´el´eration angulaire 𝜃′′(𝑡) du pendule est proportionnelle au moment de son poids. Plus pr´ecis´ement, on a
𝜃′′(𝑡) =−𝑔
𝑙 sin(𝜃(𝑡)).
On suppose qu’au temps initial𝑡= 0, la position du pendule est verticale (𝜃(0) = 0) et la vitesse angulaire 𝜃′(0) est 𝑣0. Nous allons ´etudier la r´esolution num´erique du probl`eme de Cauchy (o`u on note 𝑘=𝑔/𝑙) :
{𝜃′′(𝑡) =−𝑘sin(𝜃(𝑡)),
𝜃(0) = 0, 𝜃′(0) =𝑣0. (1)
I. Quelques r´eductions 1. Soit 𝜃(𝑡) =˜ 𝜃(𝑡/√
𝑘). Montrer que 𝜃(𝑡) v´˜ erifie l’´equation {
˜𝜃′′(𝑡) =−sin(𝜃(𝑡)),˜
˜𝜃(0) = 0, 𝜃˜′(0) =𝑣0/√
𝑘. (2)
2. On note𝑣1 =𝑣0/√
𝑘. Pour tout𝑡∈ℝ, soit𝑦(𝑡) = (˜𝜃(𝑡),𝜃˜′(𝑡)). Soit𝑓 :ℝ2 →ℝ2 l’application telle que 𝑓(𝑥1, 𝑥2) = (𝑥2,−sin𝑥1). V´erifier que 𝑦(𝑡) satisfait `a l’´equation
{𝑦′(𝑡) = 𝑓(𝑦(𝑡)),
𝑦(0) = (0, 𝑣1). (3)
II. ´Etude g´en´eral des m´ethodes `a un pas
On consid`ere le probl`eme de Cauchy suivant sur l’intervalle [0, 𝑇] : {𝑦′(𝑡) =𝑔(𝑡, 𝑦(𝑡)),
𝑦(0) =𝑦0, (4)
o`u 𝑔 : [0, 𝑇]×ℝ𝑛 →ℝ𝑛 est une fonction suffisamment r´eguli`ere. On se donne une subdivision
0 =𝑡0 < 𝑡1 <⋅ ⋅ ⋅< 𝑡𝑁 =𝑇
de l’intervalle [0, 𝑇] et on pose ℎ𝑛 =𝑡𝑛+1−𝑡𝑛 (0≤𝑛 < 𝑁). Les m´ethodes `a un pas sont des m´ethodes de r´esolution num´erique du probl`eme de Cauchy (4) qui peuvent s’´ecrire sous la forme
𝑦𝑛+1 =𝑦𝑛+ℎ𝑛Φ(𝑡𝑛, 𝑦𝑛, ℎ𝑛), (0≤𝑛 < 𝑁),
o`u Φ : [0, 𝑇]×ℝ𝑛×ℝ → ℝ𝑛 est une fonction que l’on pr´ecisera. On approchera 𝑦(𝑡𝑛) par 𝑦𝑛.
Si 𝑧 : [0, 𝑇] → ℝ est une solution de l’equation diff´erentielle 𝑧′ = 𝑔(𝑡, 𝑧), on appelle erreur de consistance `a l’´etape 𝑛 et on note 𝜀𝑛(𝑧) la valeur
𝑧(𝑡𝑛+1)−𝑧(𝑡𝑛)−ℎ𝑛Φ(𝑡𝑛, 𝑧(𝑡𝑛), ℎ𝑛).
On dit qu’une m´ethode `a un pas est d’ordre 𝑝 si, pour toute fonction 𝑧 sur [0, 𝑇] v´erifiant l’´equation 𝑧′ =𝑔(𝑡, 𝑧), il existe une constante 𝐶(𝑧)≥0 telle que
∣𝜀𝑛(𝑧)∣ ≤𝐶(𝑧)ℎ𝑝+1𝑛 , ∀0≤𝑛 < 𝑁.
III. Sch´ema d’Euler
1. Montrer que, si 𝑧 est une solution de l’´equation 𝑧′ = 𝑔(𝑡, 𝑧) sur [0, 𝑇], alors pour tout 0≤𝑛 < 𝑁, on a
𝑧(𝑡𝑛+1) = 𝑧(𝑡𝑛) +
∫ 𝑡𝑛+1
𝑡𝑛
𝑔(𝑠, 𝑧(𝑠))𝑑𝑠. (5)
Revenons sur le probl`eme de Cauchy (4). Le sch´ema d’Euler consiste `a appro- cher, pour 𝑠 ∈]𝑡𝑛, 𝑡𝑛+1[, la valeur 𝑔(𝑠, 𝑦(𝑠)) par 𝑔(𝑡𝑛, 𝑦(𝑡𝑛)). On obtient donc par r´ecurrence, une approximation 𝑦𝑛 de 𝑦(𝑡𝑛) :
𝑦𝑛+1 =𝑦𝑛+ℎ𝑛𝑔(𝑡𝑛, 𝑦𝑛), 𝑛= 0,1,⋅ ⋅ ⋅ , 𝑁 −1.
C’est un cas particulier de m´ethode `a un pas avec Φ(𝑡, 𝑦, ℎ) =𝑔(𝑡, 𝑦).
2. ´Ecrire un programme qui r´esout num´eriquement l’´equation (3) sur [0,8𝜋] avec 𝑣1 = 1 en utilisant le sch´ema d’Euler. On prendra la subdivision uniforme (𝑡𝑛 = 8𝜋𝑛/𝑁) pour 𝑁 = 1000, 2000 et 10000 respectivement et on dessinera les trois courbes de la premi`ere coordonn´ee de 𝑦(𝑡) simul´ee dans le mˆeme graphe. Commenter le graphe obtenu.
3. Supposons que 𝑧 = (𝑧1, 𝑧2) : [0, 𝑇] → ℝ2 est une soluation de l’´equation 𝑧′ =𝑓(𝑧) sur [0, 𝑇].
1) Montrer que ∣𝜀𝑛(𝑧)∣est major´ee par (Indication : penser `a utiliser l’´egalit´e (5))
ℎ𝑛
∫ 𝑡𝑛+1
𝑡𝑛
∣𝑧′′(𝑠)∣𝑑𝑠.
2) Exprimer 𝑧′′(𝑡) en fonction de 𝑧(𝑡). Montrer que pour tout 𝑡∈ℝ,∣𝑧2(𝑡)∣ ≤
∣𝑧2(0)∣et trouver une majoration de ∣𝜀𝑛(𝑧)∣ en fonction de∣𝑧2(0)∣ et deℎ𝑛. En d´eduire que le sch´ema d’Euler est une m´ethode d’ordre 1.
IV. M´ethode de Runge-Kutta : partie th´eorique
On prend les notations introduites dans la partie II. L’id´ee des m´ethodes de Runge-Kutta est de calculer par r´ecurrence les points (𝑡𝑛, 𝑦𝑛) en utilisant des points interm´ediaires (𝑡𝑛,𝑖, 𝑦𝑛,𝑖) avec 𝑡𝑛,𝑖 =𝑡𝑛+𝑐𝑖ℎ𝑛 (1 ≤ 𝑖 ≤ 𝑞, 𝑐𝑖 ∈ [0,1]). `A chacun de ces points interm´ediaires, on associe le poids correspondant
𝑝𝑛,𝑖=𝑔(𝑡𝑛,𝑖, 𝑦𝑛,𝑖).
Comme on a d´emontr´e dans la partie III, si 𝑧 est une solution de l’´equation 𝑧′ = 𝑔(𝑡, 𝑧) sur [0, 𝑇], alors on a l’´egalit´e
𝑧(𝑡𝑛,𝑖) = 𝑧(𝑡𝑛) +
∫ 𝑡𝑛,𝑖
𝑡𝑛
𝑔(𝑠, 𝑧(𝑠))𝑑𝑠.
D’apr`es un changement de variable 𝑡=𝑡𝑛+𝑢ℎ𝑛, on obtient 𝑧(𝑡𝑛,𝑖) =𝑧(𝑡𝑛) +ℎ𝑛
∫ 𝑐𝑖
0
𝑔(𝑡𝑛+𝑢ℎ𝑛, 𝑧(𝑡𝑛+𝑢ℎ𝑛))𝑑𝑢. (6) De mˆeme, on a
𝑧(𝑡𝑛+1) =𝑧(𝑡𝑛) +ℎ𝑛
∫ 1 0
𝑔(𝑡𝑛+𝑢ℎ𝑛, 𝑧(𝑡𝑛+𝑢ℎ𝑛))𝑑𝑢. (7)
On se donne pour chaque 𝑖= 1,2,⋅ ⋅ ⋅, 𝑞 des nombres (𝑎𝑖𝑗)1≤𝑗<𝑖 et (𝑏𝑗)1≤𝑗≤𝑞 tels que
∫ 𝑐𝑖
0
𝜑(𝑢)𝑑𝑢≃ ∑
1≤𝑗<𝑖
𝑎𝑖𝑗𝜑(𝑐𝑗), (8)
∫ 1 0
𝜑(𝑢)𝑑𝑢≃ ∑
1≤𝑗≤𝑞
𝑏𝑗𝜑(𝑐𝑗). (9)
On supposera toujours que la condition suivante est v´erifi´ee : 𝑐𝑖 = ∑
1≤𝑗<𝑖
𝑎𝑖𝑗 ∀1≤𝑖≤𝑞 et ∑
1≤𝑗≤𝑞
𝑏𝑗 = 1 (10)
C’est aussi ´equivalent `a dire que les formules approximatives (8) et (9) sont des
´egalit´es lorsque 𝜑≡1. En appliquant ces int´egrations approch´ees `a (6) et `a (7), on obtient
𝑧(𝑡𝑛,𝑖)≃𝑧(𝑡𝑛) +ℎ𝑛
∑
1≤𝑗<𝑖
𝑎𝑖𝑗𝑔(𝑡𝑛,𝑗, 𝑧(𝑡𝑛,𝑗)), 𝑧(𝑡𝑛+1)≃𝑧(𝑡𝑛) +ℎ𝑛 ∑
1≤𝑗≤𝑞
𝑏𝑗𝑔(𝑡𝑛,𝑗, 𝑧(𝑡𝑛,𝑗)).
La m´ethode de Runge-Kutta correspondante est donc
⎧
⎨
⎩
𝑡𝑛,𝑖 =𝑡𝑛+𝑐𝑖ℎ𝑛, 𝑦𝑛,𝑖=𝑦𝑛+ℎ𝑛 ∑
1≤𝑗<𝑖
𝑎𝑖𝑗𝑝𝑛,𝑗, 𝑝𝑛,𝑖=𝑔(𝑡𝑛,𝑖, 𝑦𝑛,𝑖),
𝑡𝑛+1 =𝑡𝑛+ℎ𝑛, 𝑦𝑛+1 =𝑦𝑛+ℎ𝑛 ∑
1≤𝑗≤𝑞
𝑏𝑗𝑝𝑛,𝑗.
Conventionnellement on pr´esente les param`etres de la m´ethode de Runge-Kutta dans un tableau
𝑐1 𝑐2 𝑎2,1
𝑐3 𝑎3,1 𝑎2,2 ... ... ... . ..
𝑐𝑞 𝑎𝑞,1 𝑎𝑞,2 ⋅ ⋅ ⋅ 𝑎𝑞,𝑞−1
𝑏1 𝑏2 ⋅ ⋅ ⋅ 𝑏𝑞−1 𝑏𝑞
Les m´ethodes de Runge-Kutta sont des cas particuliers de m´ethode `a un pas. En effet, on a
𝑦𝑛+1 =𝑦𝑛+ℎ𝑛Φ(𝑡𝑛, 𝑦𝑛, ℎ𝑛),
o`u Φ(𝑡𝑛, 𝑦𝑛, ℎ𝑛) =
𝑞
∑
𝑗=1
𝑏𝑗𝑝𝑛,𝑗. La fonction Φ est d´efinie explicitement par la formule suivante :
⎧
⎨
⎩
Φ(𝑡, 𝑦, ℎ) =
𝑞
∑
𝑗=1
𝑏𝑗𝑓(𝑡+𝑐𝑗ℎ, 𝑦𝑗), 𝑦𝑖 =𝑦+ℎ ∑
1≤𝑗<𝑖
𝑎𝑖𝑗𝑓(𝑡+𝑐𝑗ℎ, 𝑦𝑗), 1≤𝑖≤𝑞.
1. Montrer que le sch´ema d’Euler est un cas particulier de m´ethode de Runge- Kutta en pr´ecisant ses param`etres.
2. Montrer que les m´ethodes de Runge-Kutta sont automatiquement d’ordre 1.
3. Montrer que la m´ethode de Runge-Kutta est d’ordre 2 si et seulement si
𝑞
∑
𝑗=1
𝑏𝑗𝑐𝑗 = 1/2.
4. Proposer une m´ethode de Runge-Kutta d’ordre 2 avec 𝑞 = 2.
V. M´ethode de Runge-Kutta : partie num´erique
La m´ethode de Runge-Kutta “classique ” correspond aux param`etres suivants :
𝑞= 4,
0
1 2
1 2 1 2 0 12 1 0 0 1
1 6
1 3
1 3
1 6
(11)
Les int´egrations approch´ees correspondantes sont
∫ 12
0
𝜑(𝑡)𝑑𝑡 ≃ 1
2𝜑(0), rectangle `a gauche,
∫ 12
0
𝜑(𝑡)𝑑𝑡 ≃ 1 2𝜑(1
2 )
, rectangle `a droite,
∫ 1 0
𝜑(𝑡)𝑑𝑡≃𝜑(1 2
)
, point milieu,
∫ 1 0
𝜑(𝑡)𝑑𝑡≃ 1
6𝜑(0) + 1 3𝜑(1
2 )
+1 3𝜑(1
2 )
+1
6𝜑(1), m´ethode de Simpson.
Cette m´ethode est d’ordre 4.
Ecrire un programme qui r´´ esout num´eriquement l’´equation (3) sur [0,8𝜋] avec 𝑣1 = 1 en utilisant la m´ethode de Runge-Kutta “classique”. On prendra la subdivi- sion uniforme avec𝑁 = 100 et on dessinera la courbe de la premi`ere coordonn´ee de 𝑦(𝑡) sur le graphe que l’on a obtenu dans l’´etape III.2. Commenter sur le nouveau graphe obtenu.
VI. Mod´elisation du pendule math´ematique
On consid`ere d’abord un pendule simple de longeur𝑙 = 1𝑚 et de poids 𝑚= 1𝑘𝑔.
On suppose que l’acc´el´eration due `a la pesanteur est 𝑔 = 9.8𝑚𝑠−2, que l’´elongation angulaire initiale𝜃(0) = 0et que la vitesse angulaire initiale est𝜃′(0) = 0.3𝑠−1. Dans la suite, on cherche `a utiliser le programme construits dans l’´etape V pour simuler la m´ecanique du pendule. On pendra la subdivision uniforme avec 𝑁 = 1000.
1. Simuler l’´elongation et la vitesse angulaires du pendule pendant les premi`eres 100 secondes. On dessinera les deux courbes dans le mˆeme graphe.
2. On rappelle que l’´energie cin´etique (resp. l’´energie potentielle de pesanteur) du pendule est par d´efinition 𝐸𝑐(𝑡) = 12𝑚𝑣(𝑡)2 = 12𝑚𝑙2𝜃′(𝑡)2 (resp. 𝐸𝑝(𝑡) = 𝑚𝑔𝑙(1−cos𝜃(𝑡))). Montrer que l’´energie totale 𝐸(𝑡) = 𝐸𝑐(𝑡) +𝐸𝑝(𝑡) est une constante. Simuler l’´energie cin´etique, l’´energie potentielle de pesanteur et l’´energie totale du pendule pendant les premi`eres 100 secondes dans le mˆeme graphe.
On suppose maintenant que le pendule est soumis `a une force de frottement fluide (visqueux), ou de fa¸con ´equivalente, est amorti. L’´equation diff´erentielle de l’´elongation angulaire devient donc
𝜃′′(𝑡) = −𝑔
𝑙 sin(𝜃(𝑡))−𝜆𝜃′(𝑡),
o`u 𝜆 >0 est la constante de viscosit´e. On suppose d´esomais 𝜆= 0.1.
3. ´Ecrire un programme qui simule l’´elongation et la vitesse angulaires du pendule amorti pendant les premi`eres 100 secondes. On utilisera la m´ethode de Runge- Kutta “classique” en prenant la subdivision uniforme avec 𝑁 = 1000.
4. En utilisant le programme obtenu dans l’´etape pr´ec´edent, simuler l’´energie cin´etique, l’´energie potentielle de pesanteur et l’´energie totale du pendule amorti pendant les premi`eres 100 secondes.
VII. R´edaction
Les ´etudiants r´edigent un rapport selon les indications comme ci-dessus. Le rap- port doit contenir une description de la m´ethode de Runge-Kutta, la d´emonstration de la convergence, et les r´esultats num´eriques. L’application de la m´ethode num´erique
`
a une ´equation autre que celle du pendule sera appr´eci´ee.
R´ef´erence : J.-P. Demailly,Analyse num´erique et ´equations diff´erentielles, Manuel pour le Second Cycle de Math´ematiques, Presses Universitaires de Grenoble, 3e ´ed.
f´ev. 2006, 344 pages.