Numerické řešení obyčejných diferenciálních rovnic

Z testwiki
Verze z 21. 9. 2023, 08:25, kterou vytvořil imported>Miroslav Ličko (growthexperiments-addlink-summary-summary:2|0|0)
(rozdíl) ← Starší verze | zobrazit aktuální verzi (rozdíl) | Novější verze → (rozdíl)
Skočit na navigaci Skočit na vyhledávání

V numerické matematice je numerické řešení obyčejných diferenciálních rovnic postup, kterým můžeme získat přibližné řešení obyčejných diferenciálních rovnic. Používá se v případech, kdy by bylo nalezení přesného (analytického) řešení náročné nebo v případech, kdy analytické řešení nelze najít.

Diferenciální rovnice a její počáteční podmínky bývají často uváděny v tomto tvaru:

y(t)=f(t,y)
y(t0)=y0

Metody řešení

Funkce f(t,y) (někdy se nazývá stavová rovnice) může být obecně velmi komplikovaná, proto je nutné řešit rovnici numericky. V takovém případě probíhá řešení v diskrétních časových krocích Δt:

y(t+Δt)=y(t)+D(t,y)Δt

D(t,y) je funkce (někdy též směrová funkce), která se snaží aproximovat y(t) tak, aby y(t+Δt) bylo co nejpřesnější.

Eulerova metoda

Šablona:Podrobně

Existuje více metod, jak v daném čase získat co nejlepší aproximaci derivace, nejjednodušší je Eulerova metoda:

D(t,y)=f(t,y)

Rungeovy–Kuttovy metody

Obecně lze Rungeovy–Kuttovy metody zapsat následovně:

yn+1=yn+hi=1pwiki
ki=f(t+αih,yn+hj=1i1βijkj)

Koeficienty u těchto metod jsou vypočteny tak, aby metoda řádu p odpovídala Taylorovu polynomu funkce y(t) stejného řádu. (Eulerova metoda je vlastně metodou prvního řádu.)

Často se používá čtyřbodová metoda Runge-Kutta (RK4), která je čtvrtého řádu.

k1=f(tn,yn)
k2=f(tn+h2,yn+h2k1)
k3=f(tn+h2,yn+h2k2)
k4=f(tn+h,yn+hk3)
yn+1=yn+h6(k1+2k2+2k3+k4)
(Korespondence různých způsobů zápisu: h=Δt; tn=nΔt; yn=y(tn); D(t,y)=(k1+2k2+2k3+k4)/6. Korespondence s obecným vzorcem: k1=k4=1/6; k2=k3=1/3; α1=β31=β41=β42=0; α2=α3=β21=β32=1/2; α4=β43=1.)

Vícekrokové metody

U vícekrokových metod je hodnota yn+1 vypočtena z předchozích hodnot yni (respektive fni, i=0...k) proložených interpolačním polynomem. Řád metody zde odpovídá řádu interpolačního polynomu. (Eulerova metoda je v podstatě jednokrokovou metodou.)

Obecnou vícekrokovou metodu lze zapsat následovně:

yn+1=i=0rαiyni+hj=1sβjfnj

Explicitní metody

Pokud je β1=0, lze hodnotu yn+1 určit z r+1 předchozích hodnot yn (respektive z s+1 předchozích hodnot fn) a jedná se o metodu explicitní.

Příklad 1, explicitní metoda Adams-Bashford druhého řádu:

yn+1=yn+h(32f(tn,yn)12f(tn1,yn1))
(Korespondence s obecným vzorcem: r=0; α0=1; s=1; β1=0; β0=3/2; β1=1/2.)

Příklad 2, explicitní metoda Adams-Bashford čtvrtého řádu:

yn+1=yn+h24(55fn59fn1+37fn29fn3)

Implicitní metody

Pokud je β1 různé od nuly, je pro výpočet yn+1 nutná znalost fn+1 a jedná se o metodu implicitní.

Příklad, implicitní metoda Adams-Moulton čtvrtého řádu:

yn+1=yn+h24(9fn+1+19fn5fn1+fn2)

Metody prediktor-korektor

Metody prediktor-korektor jsou sloučením explicitních a implicitních metod. Nejprve je použita explicitní metoda pro odhad nového yn+1. V tomto bodě je vypočtena derivace fn+1, která je následovně použita v implicitní metodě pro výpočet přesnější aproximace yn+1.

Související články

Šablona:Pahýl Šablona:Autoritní data

Šablona:Portály