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.