Runge-Kuttamethode

Verschillende Runge-Kuttamethoden
 te benaderen functie
 klassieke methode
 methode van Heun
 methode van Euler, halve stapgrootte
 methode van Euler

Runge-Kuttamethoden zijn numerieke methoden om differentiaalvergelijkingen met beginvoorwaarde stapsgewijze op te lossen. De methoden zijn genoemd naar de Duitse wiskundigen Carl David Tolmé Runge en Martin Wilhelm Kutta, die ze ontwikkeld en verbeterd hebben.

Runge-Kuttamethoden worden onderscheiden naar het aantal tussenstappen dat wordt gemaakt. De s {\displaystyle s} -staps Runge-Kuttamethode bepaalt de waarde van de benaderde oplossing in een volgend punt door middel van s {\displaystyle s} tussenstappen, dus met behulp van s 1 {\displaystyle s-1} tussengelegen punten. Een Runge-Kuttamethode met stapgrootte h {\displaystyle h} is van de orde p {\displaystyle p} als de lokale afbreekfout van de orde O ( h p + 1 ) {\displaystyle O(h^{p}+1)} is. Tot de Runge-Kuttamethoden behoren onder meer de methode van Euler, de methode van Heun en de trapezemethode.

Methode

Een benaderde oplossing van het beginvoorwaardeprobleem

x ( t ) = f ( t , x ( t ) ) {\displaystyle x'(t)=f(t,x(t))}

met

x ( t 0 ) = x 0 {\displaystyle x(t_{0})=x_{0}}

wordt stapsgewijs, met stapgrootte h {\displaystyle h} , bepaald in de vorm van

x n x ( t n ) {\displaystyle x_{n}\approx x(t_{n})} ,

waarin t n = t 0 + n h {\displaystyle t_{n}=t_{0}+nh} .

Een s {\displaystyle s} -staps methode berekent een volgende waarde als

x n + 1 = x n + h j = 1 s b j k j {\displaystyle x_{n+1}=x_{n}+h\sum _{j=1}^{s}b_{j}k_{j}}

De coëfficiënten b j {\displaystyle b_{j}} bepalen de gebruikte methode. De getallen k j {\displaystyle k_{j}} vormen de tussenstappen, die de waarden zijn van de functie f {\displaystyle f} in bepaalde zogeheten knopen:

k j = f ( t n + h c j , y n + h l = 1 s a j l k l ) , j = 1 , , s {\displaystyle k_{j}=f{\big (}t_{n}+hc_{j},y_{n}+h\sum _{l=1}^{s}a_{jl}k_{l}{\big )},\,j=1,\ldots ,s}

Daarin zijn c j {\displaystyle c_{j}} en a j l {\displaystyle a_{jl}} verdere, voor de methode karakteristieke coëfficiënten.

Klassieke Runge-Kuttamethode

De Runge-Kuttamethode van de orde 4, vaak kort RK4 genoemd, is de klassieke methode, waarmee de differentiaalvergelijking

d x d t = f ( t , x ) {\displaystyle {\frac {\mathrm {d} x}{\mathrm {d} t}}=f(t,x)}

met beginvoorwaarde x ( t 0 ) = x 0 {\displaystyle x(t_{0})=x_{0}} numeriek wordt opgelost met 4 tussenstappen via:

t i + 1 = t i + h {\displaystyle t_{i+1}=t_{i}+h}

en

x i + 1 = x i + 1 6 ( k 1 + 2 k 2 + 2 k 3 + k 4 ) , {\displaystyle x_{i+1}=x_{i}+{\tfrac {1}{6}}(k_{1}+2k_{2}+2k_{3}+k_{4}),}

waarin:

k 1 = h   f ( t i , x i ) {\displaystyle k_{1}=h\ f(t_{i},x_{i})}
k 2 = h   f ( t i + h 2 , x i + k 1 2 ) {\displaystyle k_{2}=h\ f\left(t_{i}+{\frac {h}{2}},x_{i}+{\frac {k_{1}}{2}}\right)}
k 3 = h   f ( t i + h 2 , x i + k 2 2 ) {\displaystyle k_{3}=h\ f\left(t_{i}+{\frac {h}{2}},x_{i}+{\frac {k_{2}}{2}}\right)}
k 4 = h   f ( t i + h , x i + k 3 ) {\displaystyle k_{4}=h\ f(t_{i}+h,x_{i}+k_{3})}

Voorbeeld

Beschouw het beginwaardeprobleem d x d t = t x {\displaystyle {\frac {\mathrm {d} x}{\mathrm {d} t}}={\frac {-t}{x}}} met de beginvoorwaarde x ( 0 ) = 1 {\displaystyle x(0)=1} .

De exacte oplossing is t 2 + x 2 = 1 {\displaystyle t^{2}+x^{2}=1} (een cirkel).

Kies h = 0 , 1 {\displaystyle h=0{,}1} .

De startwaarden zijn t 0 = 0 {\displaystyle t_{0}=0} en x 0 = 1 {\displaystyle x_{0}=1} .

Dan volgt:

k 1 = 0 , 0 {\displaystyle k_{1}=0{,}0}
k 2 = 0,005 {\displaystyle k_{2}=-0{,}005}
k 3 = 0,005 01253132832 {\displaystyle k_{3}=-0{,}00501253132832}
k 4 = 0,010 0503778338 {\displaystyle k_{4}=-0{,}0100503778338}

zodat t 1 = 0 , 1 {\displaystyle t_{1}=0{,}1} en x 1 = 0,994 987426585 {\displaystyle x_{1}=0{,}994987426585} .

Herhaling van deze procedure levert het deel van de cirkel in het eerste kwadrant.

t {\displaystyle t} x {\displaystyle x}
0,0 1,0
0,1 0,994987426585
0,2 0,979795852198
0,3 0,95393908717
0,4 0,916514893222
0,5 0,866024896597
0,6 0,799998909634
0,7 0,714140165921
0,8 0,599991210485
0,9 0,435832710519
1,0 0,0488018582123

De exacte oplossing zou voor t = 1 {\displaystyle t=1} de waarde x = 0 {\displaystyle x=0} geven.

De methode is gelijkwaardig met een taylorreeks van 5 termen. Dit wil zeggen, dat halvering van de tijdstap h {\displaystyle h} de fout per stap met een factor 32 vermindert. Omdat er dan 2 keer zoveel stappen genomen worden, vermindert de totale fout met een factor 16.

De methode is ook bruikbaar als x {\displaystyle x} geen scalair, maar een kolomvector is.

Als f {\displaystyle f} niet afhangt van x {\displaystyle x} , is de methode gelijkwaardig met de regel van Simpson voor numerieke berekening van een integraal.