Universit´e Paris-Dauphine M´ethodes num´eriques
D´epartement MIDO Ann´ee/
DE MI2E deuxi`eme ann´ee
Projet : Le probl`eme ` a n corps
1 Contexte
L’objectif de cet projet est de traiter num´eriquement le probl`eme des n corps issu de la m´ecanique c´eleste, qui est un mod`ele pour l’´evolution au cours du temps de n corps ponctuels de masses respectivesmi, 1≤i≤n. Pour simplifier, nous supposerons que les corps ´evoluent dans l’espace `a deux dimensionsR2. Dans ce cas, la position du i-`eme corps `a l’instant t sera not´ee
xi(t) =
x(1)i (t), x(2)i (t)T
∈R2.
La force gravitationnelle que le j-`eme corps exerce sur lei-`eme corps est Fij =G mimj
kxj−xik32(xj−xi) avec kFijk2=kFjik2=G mimj
kxj−xik22
o`u G ≈6,67·10−11 mkg s32 est la constante de gravitation universelle. En sommant toutes les forces
de gravitation, il vient que lei-`eme corps subit une acc´el´eration ¨xi := dtd22xi∈R2 mix¨i =X
j6=i
Fij =Gmi
X
j6=i
mj
kxj −xik32(xj−xi) ou encore x¨i=GX
j6=i
mj
kxj−xik32(xj−xi).
Comme chaque vecteur positionxi a deux composantes, on peut exprimer l’´evolution des navec le syst`eme suivant d’´equations diff´erentielles ordinaires de deuxi`eme ordre
¨
x=f(x). (1.1)
o`u
x=
x(1)1 , x(2)1 , . . . , x(1)n , x(1)n T
∈R2n.
Nous allons maintenant r´esoudre (1.1) avec deux sch´emas num´eriques en temps : le sch´ema d’Euler explicite et le sch´ema de type Runge-Kutta explicite d’ordre 4. Cela nous permettra de connaˆıtre x(t), i.e., l’´evolution des positions desncorps.
Questions pr´eliminaires :
1. Expliciter la fonction f :R2n→R2n.
2. En faisant le changement de variable y0 := x(position des n corps) et y1 := ˙x (vitesse des ncorps), montrer que le syst`eme (1.1) est ´equivalent au syst`eme suivant de taille 4n,
˙ y=
y˙0
˙ y1
= x˙
¨ x
= y1
f(y0)
=:F(y). (1.2)
1
2 La m´ ethode d’Euler explicite
Maintenant nous allons r´esoudre num´eriquement l’´equation diff´erentielle (1.2) sur un intervalle de temps [0, T] et partant d’un vecteur de conditions initialesy(0) donn´e. Le probl`eme `a r´esoudre est donc :
Trouver une approximation du vecteury(t), solution du syst`eme d’´equations
˙
y(t) =F((y(t)), ∀t∈[0, T] y(0) donn´e.
Notons ˜y(t) une fonction qui approche y(t) “au mieux possible” en P + 1 instants de temps tp ∈[0, T]. On consid`ere le cas o`u les instants sont uniform´ement r´epartis sur [0, T] de sorte que, en posant h:=T /P, on a
t0= 0
tp+1=tp+h, 0≤p≤P−1, tP =T
Le point de d´epart pour approcher y(tp) pour p = 0, . . . , P part du d´eveloppement de Taylor de y(tp+1) autour de tp qui est
y(tp+1) =y(tp+h) =y(tp) +y0(tp)·h+O(h2) =y(tp) +f(y(tp))·h+O(h2), 0≤p≤P −1.
Si l’on n´eglige les termes d’ordre sup´erieur `ah, la fonction
ey(tp+1) :=ey(tp) +h·f(y(te p)), 0≤p≤P−1.
est une approximation dey(tp+1) `a l’ordrehpr`es. L’algorithme d’Euler explicite consiste `a calculer ces approximationsy(te p+1) en partant de l’´etat initialy(0) =e y(0).
Questions : Appliquer la m´ethode d’Euler explicite au probl`eme des n-corps. Pour cela, on pourra :
1. Impl´ementer une m´ethode step(yt,h) qui, partant de l’approximation yt `a un certain instant t, renvoie l’approximation yt+h F(yt) `a l’instant t+h suivant. On rappelle queF est la fonction d´efinie en section 1. Remarque : si besoin est, la fonctionsteppourra prendre d’autres arguments en entr´ee mis `a partyt eth.
2. En partant de y0 comme condition initiale, faire une boucle sur tous les temps qui permet d’obtenir l’approximationy(te p) `a tous les instants p= 0, . . . , P.
3. Utiliser le code pour obtenir les trajectoires de 0 `a T = 5 s.de n= 3 corps de masses m1 = 1010kg, m2= 3.1010kg, m3= 1010kg
dont les conditions initiales
y(0) =
y0(0) y1(0)
= x(0)
x(0)˙
2
sont
x(1)1 (0) = 0, x(2)1 (0) = 0, x˙(1)1 (0) = 0, x˙(2)1 (0) = 0 x(1)2 (0) = 0, x(2)2 (0) = 1, x˙(1)2 (0) = 1, x˙(2)2 (0) = 0 x(1)3 (0) = 0, x(2)3 (0) =−1, x˙(1)3 (0) =−1, x˙(2)3 (0) = 0
Prendre un pas de tempsh=T /100.
4. Repr´esenter graphiquement les trajectoires obtenues.
3 M´ ethode Runge-Kutta d’ordre 4
Si la fonction t → y(t) est suffisamment r´eguli`ere, l’erreur d’approximation avec la m´ethode d’Euler explicite au temps final t=T est de l’ordre du pas tempsh, i.e.,
∃C >0 s.t. ky(T)−y(Te )k ≤Ch. (3.1) Donc, lorsqueh→0, la fonctiony(Te ) converge versy(T). Cependant, dans la pratique la constante C de l’in´egalit´e est souvent tr`es grande et augmente avec T. Pour cette raison, il est en g´en´eral n´ecessaire de prendre des pas de temps h extrˆemement petits pour arriver `a une pr´ecision conve- nable. Cela augmente consid´erablement le nombre d’instants interm´ediaires et rallonge les temps de calcul et motive la recherche d’approximations dont l’erreur est de la forme
∃C >0 s.t. ky(T)−ey(T)k ≤Chr,
avec r > 1. On parle de sch´emas d’ordre sup´erieur. Pour les construire, une premi`ere possibilit´e serait de prendre des d´eveloppements de Taylor d’ordre sup´erieur mais cela est en g´en´eral tr`es coˆuteux voire parfois mˆeme impossible en fonction du probl`eme.
Une fa¸con plus simple de construire des sch´emas d’ordre sup´erieur est le sch´ema Runge-Kutta.
Dans cette approche,f est ´evalu´ee en un certain nombre de points et l’on construit l’approximation comme suit pour tout 0≤p≤P−1. On pose
y(te p+1) :=y(te p) +h
m
X
j=1
γjKj(tp) avec
Kj(tp) =
(f(ey(tp)) sij= 1 f
y(te p) +hPj−1
l=1βj,lKl(tp)
si 2≤j≤m. (3.2)
Les coefficientsβj,l etγl sont usuellement donn´es dans un tableau αj βjl
γl
appel´e tableau de Butcher. Le tableau comporte des coefficients αj dont on n’aura pas besoin dans ce probl`eme. Dans ce type d’approche, ´etant donn´e un ordre d’approximation r souhait´e, la
3
question est de trouver de bons coefficientsβj,l etγlqui satisfont cet ordre d’approximationr. Afin de r´eduire le coˆut des calculs, il faut aussi quemsoit le plus petit possible. Les questions tournant autour de la recherche des coefficients βj,l et γl donnant un certain ordre r et avec le plus degr´e possible mest une question difficile et nous nous contenterons de consid´erer le tableau suivant
0 1/2 1/2
1/2 1/2
1 1
1/6 1/3 1/3 1/6
qui donne un sch´ema d’ordrer= 4 appel´e sch´ema de Runge-Kutta explicite d’ordre 4.
Questions :
1. Impl´ementer le sch´ema Runge-Kutta d’ordre 4 pour le probl`eme des ncorps et l’appliquer
`
a l’exemple donn´e en question 3 de la section 2.
2. Repr´esenter graphiquement les trajectoires obtenues.
4 Etude de l’´ ´ evolution des erreurs
La m´ethode Runge-Kutta ayant un ordre plus ´elev´e que la m´ethode d’Euler explicite, on peut l’utiliser pour avoir une bonne estimation de l’´evolution au cours du temps de l’erreur commise avec la m´ethode d’Euler explicite.
Questions :
1. En partant toujours de l’exemple en question 3 de la section 2, repr´esenter l’´evolution des erreurs
keyRK(tp)−eyEE(tp)k2, p= 0, . . . , P,
o`u les sous-indices RK et EE font r´ef´erence respectivement aux m´ethodes Runge-Kutta et Euler explicite. Qu’observe-t-on et comment interpr´eter cette observation ?
2. On souhaite `a pr´esent estimer la d´ependance de la constante C de (3.1) par rapport `a T, la valeur du temps final. En prenant h = 0.01 et les conditions initiales d´ej`a introduites, calculer
kyeRK(T)−yeEE(T)k2
pour T = 5, 10, 100, 500, 1000 et repr´esenter graphiquement ces erreurs en fonction de T, quelle est la tendance (lin´eaire, quadratique, exponentielle) ? Que peut-on en d´eduire par rapport `a la d´ependance deC avec T?
4