Suivre un taux de variation
Une équation différentielle dit à quelle vitesse une grandeur varie : dtdy=f(t,y). Un capital qui croît à un taux continu r obéit à dtdy=ry, de solution y0ert. Un taux court rappelé vers un niveau de long terme θ obéit à dtdr=κ(θ−r). Peu d'équations ont une solution en formule : on avance donc dans le temps numériquement.
yn+1=yn+hf(tn,yn)(1) La méthode d'Euler suit la tangente sur un court pas h : nouvelle valeur = ancienne valeur + pas × pente. Elle est simple mais seulement d'ordre 1 : diviser h par deux divise l'erreur par deux. Runge–Kutta d'ordre 4 (RK4) évalue la pente quatre fois par pas et les combine, yn+1=yn+6h(k1+2k2+2k3+k4), et son erreur varie en h4 : diviser h par deux la divise par 16.
Croissance au taux 1, de deux façonsRésolvons
y′=y,
y(0)=1 jusqu'à
t=1 avec
h=0,5. Euler :
y1=1+0,5⋅1=1,5,
y2=1,5+0,5⋅1,5=2,25, contre
e=2,7183, soit une erreur de 0,4683. RK4 pour un pas jusqu'à
t=0,5 :
k1=1,
k2=1,25,
k3=1,3125,
k4=1,65625, donc
y=1+60,5(1+2,5+2,625+1,65625)=1,6484, contre le vrai
e0,5=1,6487.
- Euler : yn+1=yn+hf(tn,yn), précision d'ordre 1.
- RK4 : quatre pentes par pas combinées avec les poids 1, 2, 2, 1 ; précision d'ordre 4.
- Erreur de troncature : ce que l'on perd en avançant par pas au lieu de résoudre exactement.
Un pas plus petit n'est pas gratuitDiviser le pas par deux double le nombre de pas. Au-delà d'un certain point, l'erreur d'arrondi grandit alors que l'erreur de troncature ne compte plus, et certaines équations raides divergent si le pas n'est pas assez petit. Comparez deux tailles de pas pour estimer l'erreur avant de vous fier à un résultat.
Lab : ce qui est noté
- Deux pas d'Euler15 pts
- L'erreur d'Euler15 pts
- Un pas de RK420 pts
- Ordres de précision10 pts
- Diviser le pas par deux15 pts
- La boucle d'Euler10 pts
- Pourquoi RK4 l'emporte sur Euler15 pts