Equations differentielles ordinaires
Equations différentielles ordinaires du premier ordre
On cherche une fonction y telle que u'(t) = f(u(t),t) et u(0) = u0
L'étude de l'existence et de l'unicité de solutions à ce problème est délicate. Le théorème de Cauchy-Lipschitz dit que s'il existe un réel k tel que, pour tous x, y et t,
|f(x,t)-f(y,t)| =< k.|x-y|
alors il existe une solution globale unique.
Euler
Le schéma d'Euler progressif (explicite) est obtenu en écrivant
(un+1-un) / (tn+1-tn) = f (un,tn)
Le schéma d'Euler rétrograde (implicite) correspond à : (un+1-un)
/ (tn+1-tn) = f (un+1,tn+1).
Taylor
Les méthodes de Taylor constituent une généralisation de la méthode d'Euler en s'appuyant sur des développements (... de Taylor) d'ordre plus élevé. On a
u(tn+1) = u(tn) + u'(tn)h + u''(tn)h2/2 + O(h3)
soit
u(tn+1) = u(tn) + f(u(tn), tn) h + f'(u(tn), tn) h2/2 + O(h3)
La dérivation en chaîne permet d'écrire
f'(u(t), t) = f,t(u(t),t) + f,u(u(t),t) u'(t)
soit
f'(u(t),t) = f,t(u(t),t) + f,u(u(t),t) f(u(t),t)
On a donc :
u(tn+1) = u(tn) + h f(u(tn), tn) + h2/2 [f,t(u(t),t) + f,u(u(t),t) f(u(t),t)] + O(h3)
itération qui constitue le coeur des méthodes de Taylor mais
qui nécessite évidemment le calcul des dérivées partielles de f.
Runge-Kutta d'ordre 2
L'objectif principal des méthodes de Runge-Kutta est de
s'affranchir des calculs de dérivées introduits précédemment, tout en
conservant le même ordre de précision. On remplace donc l'itération
précédente par
u(tn+1) = u(tn) + a1hnf(u(tn), tn) + a2hnf(u(tn)+a3hn, tn+a4hn)
Pour déterminer les paramètres a1, a2, a3 et a4, on recourt au développement de Taylor en deux variables. On obtient alors un système non-linéaire sous-déterminé, ce qui permet de disposer de plusieurs possibilités, donc de plusieurs variantes de méthodes de RK.
A l'ordre 2, on aboutit au même résultat en remarquant qu'en intégrant la première équation du problème de Cauchy entre deux instants tn et tn+1, on obtient :
u(tn+1) - u(tn) = Int (tn=>tn+1) f(u(t),t).dt
En utilisant la méthode des trapèzes, on a alors
un+1 - un = hn/2 (f (un,tn)+f (un+1,tn+1))
où hn = tn+1 - tn.
Cette expression est implicite, mais on peut s'en affranchir en remplaçant un+1 dans le membre de droite par un+1 = un + hn.f (un,tn). On peut ainsi écrire la méthode de Heun, ou méthode d'Euler modifiée, qui fait partie des méthodes de RK2 explicites :
p1 = f (un,tn)
p2 = f (un+hnp1,tn+1)
un+1 = un + hn/2
(p1+p2)
ou encore
upréd = un + hn
f(un,tn)
un+1 = un + h/2 (f(un,tn)+f(upréd,tn+1))
qui est en fait une méthode de type prédiction-correction, dont la première étape correspond à une simple itération d'Euler.
Une variante est celle dite du point milieu qui se décompose en :
p1 = hn f(un,tn)
un+1 = un + h.f(un+p1/2,tn+hn/2)
Runge-Kutta d'ordre 4
p1 = f (un,tn)
p2 = f (un+hnp1/2,tn+hn/2)
p3 = f (un+hnp2/2,tn+hn/2)
p4 = f (un+hnp3,tn+1)
un+1 = un + hn/6
(p1+2p2+2p3+p4)
Equations différentielles ordinaires d'ordre supérieur ou égal à 2
On peut ramener une e.d.o. du second ordre à un système du
premier ordre par introduction de nouvelles inconnues. Ainsi, une edo
de la forme u''(t) = f (u(t),u'(t),t) peut se réécrire en posant u'(t)
= v(t) et v'(t) = f (u(t),v(t),t). Mais il existe également des
méthodes adaptées aux e.d.o du deuxième ordre.
Les méthodes présentées ci-dessus sont dites à un pas, puisque l'on y exprime un+1 à partir de un. Les méthodes multipas utilisent les un, un-1, un-2, etc ...
Suite à viendre ...