Ce TD est composé de deux parties: la programmation d'un intégrateur implicite et la programmation d'un intégrateur Runge-Kutta d'ordre 4.
Dans la première partie, nous allons traiter le mouvement d'un pendule
rigide, comme au TD précédent: une masse m
est reliée à
un pivot par une tige de longueur l
, supposée rigide et de
masse nulle. Le pendule se trouve dans un champ de pesanteur homogène
g
.
Dans la deuxième partie, nous allons considérer le mouvement d'une planète autour du soleil.
thetak+1 = thetak + dt*omegak+1 omegak+1 = omegak - dt*sin(thetak+1)Il n'est pas possible d'écrire la solution explicitement. Mais on peut observer qu'en considérant
f=(f1,f2)
avec
f1(x1,x2) = thetak + dt*x2 f2(x1,x2) = omegak - dt*sin(x1)on a une fonction vectorielle dont
x∞=(thetak+1,omegak+1)
est un point fixe. Calculez la
Jacobienne (dfi/dxj)i,j=1..2
de la fonction vectorielle (f1,f2)
en
(thetak+1,omegak+1)
et montrez que
ses valeurs propres ont une norme inférieure à un
( |lambda1/2|<1 ) pour un choix convenable de
dt
.
f(x)
est contractante
dans un voisinage du point
fixe x∞
,
et qu'on peut trouver le point fixe en itérant la fonction:
f(f(f(f(...f(f(...))))))) → x∞À quelle vitesse s'approche-t-on du point fixe, autrement dit de combien diminue l'écart au point fixe à chaque application supplémentaire de
f
? En pratique, combien de
fois doit-on itérer au moins ?
(thetak+1,omegak+1)
par solution
itérative de l'équation implicite.
theta0=0
, omega0=1.9
sur 50 unités de temps en pas de 0.01 et 0.05. Comparez le
comportement de l'intégrateur par rapport au schéma d'Euler simple.