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

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 ) {\displaystyle y'(t)=f(t,y)}
y ( t 0 ) = y 0 {\displaystyle y(t_{0})=y_{0}}

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 {\displaystyle \Delta t} :

y ( t + Δ t ) = y ( t ) + D ( t , y ) Δ t {\displaystyle y(t+\Delta t)=y(t)+D(t,y)\Delta t}

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

Eulerova metoda

Podrobnější informace naleznete v článku Eulerova metoda.

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 ) {\displaystyle D(t,y)=f(t,y)}

Rungeovy–Kuttovy metody

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

y n + 1 = y n + h i = 1 p w i k i {\displaystyle y_{n+1}=y_{n}+h\sum _{i=1}^{p}w_{i}k_{i}}
k i = f ( t + α i h , y n + h j = 1 i 1 β i j k j ) {\displaystyle k_{i}=f(t+\alpha _{i}h,\,y_{n}+h\sum _{j=1}^{i-1}\beta _{ij}k_{j})}

Koeficienty u těchto metod jsou vypočteny tak, aby metoda řádu p {\displaystyle p} odpovídala Taylorovu polynomu funkce y ( t ) {\displaystyle 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.

k 1 = f ( t n , y n ) {\displaystyle k_{1}=f\left(t_{n},y_{n}\right)}
k 2 = f ( t n + h 2 , y n + h 2 k 1 ) {\displaystyle k_{2}=f\left(t_{n}+{h \over 2},y_{n}+{h \over 2}k_{1}\right)}
k 3 = f ( t n + h 2 , y n + h 2 k 2 ) {\displaystyle k_{3}=f\left(t_{n}+{h \over 2},y_{n}+{h \over 2}k_{2}\right)}
k 4 = f ( t n + h , y n + h k 3 ) {\displaystyle k_{4}=f\left(t_{n}+h,y_{n}+hk_{3}\right)}
y n + 1 = y n + h 6 ( k 1 + 2 k 2 + 2 k 3 + k 4 ) {\displaystyle y_{n+1}=y_{n}+{h \over 6}(k_{1}+2k_{2}+2k_{3}+k_{4})}
(Korespondence různých způsobů zápisu: h = Δ t {\displaystyle h=\Delta t} ; t n = n Δ t {\displaystyle t_{n}=n\Delta t} ; y n = y ( t n ) {\displaystyle y_{n}=y(t_{n})} ; D ( t , y ) = ( k 1 + 2 k 2 + 2 k 3 + k 4 ) / 6 {\displaystyle D(t,y)=(k_{1}+2k_{2}+2k_{3}+k_{4})/6} . Korespondence s obecným vzorcem: k 1 = k 4 = 1 / 6 {\displaystyle k_{1}=k_{4}=1/6} ; k 2 = k 3 = 1 / 3 {\displaystyle k_{2}=k_{3}=1/3} ; α 1 = β 31 = β 41 = β 42 = 0 {\displaystyle \alpha _{1}=\beta _{31}=\beta _{41}=\beta _{42}=0} ; α 2 = α 3 = β 21 = β 32 = 1 / 2 {\displaystyle \alpha _{2}=\alpha _{3}=\beta _{21}=\beta _{32}=1/2} ; α 4 = β 43 = 1 {\displaystyle \alpha _{4}=\beta _{43}=1} .)

Vícekrokové metody

U vícekrokových metod je hodnota y n + 1 {\displaystyle y_{n+1}} vypočtena z předchozích hodnot y n i {\displaystyle y_{n-i}} (respektive f n i {\displaystyle f_{n-i}} , i = 0... k {\displaystyle 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ě:

y n + 1 = i = 0 r α i y n i + h j = 1 s β j f n j {\displaystyle y_{n+1}=\sum _{i=0}^{r}\alpha _{i}y_{n-i}+h\sum _{j=-1}^{s}\beta _{j}f_{n-j}}

Explicitní metody

Pokud je β 1 = 0 {\displaystyle \beta _{-1}=0} , lze hodnotu y n + 1 {\displaystyle y_{n+1}} určit z r + 1 {\displaystyle r+1} předchozích hodnot y n {\displaystyle y_{n}} (respektive z s + 1 {\displaystyle s+1} předchozích hodnot f n {\displaystyle f_{n}} ) a jedná se o metodu explicitní.

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

y n + 1 = y n + h ( 3 2 f ( t n , y n ) 1 2 f ( t n 1 , y n 1 ) ) {\displaystyle y_{n+1}=y_{n}+h\left({3 \over 2}f(t_{n},y_{n})-{1 \over 2}f(t_{n-1},y_{n-1})\right)}
(Korespondence s obecným vzorcem: r = 0 {\displaystyle r=0} ; α 0 = 1 {\displaystyle \alpha _{0}=1} ; s = 1 {\displaystyle s=1} ; β 1 = 0 {\displaystyle \beta _{-1}=0} ; β 0 = 3 / 2 {\displaystyle \beta _{0}=3/2} ; β 1 = 1 / 2 {\displaystyle \beta _{1}=-1/2} .)

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

y n + 1 = y n + h 24 ( 55 f n 59 f n 1 + 37 f n 2 9 f n 3 ) {\displaystyle y_{n+1}=y_{n}+{\frac {h}{24}}\left(55f_{n}-59f_{n-1}+37f_{n-2}-9f_{n-3}\right)}

Implicitní metody

Pokud je β 1 {\displaystyle \beta _{-1}} různé od nuly, je pro výpočet y n + 1 {\displaystyle y_{n+1}} nutná znalost f n + 1 {\displaystyle f_{n+1}} a jedná se o metodu implicitní.

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

y n + 1 = y n + h 24 ( 9 f n + 1 + 19 f n 5 f n 1 + f n 2 ) {\displaystyle y_{n+1}=y_{n}+{\frac {h}{24}}\left(9f_{n+1}+19f_{n}-5f_{n-1}+f_{n-2}\right)}

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 y n + 1 {\displaystyle y_{n+1}} . V tomto bodě je vypočtena derivace f n + 1 {\displaystyle f_{n+1}} , která je následovně použita v implicitní metodě pro výpočet přesnější aproximace y n + 1 {\displaystyle y_{n+1}} .

Související články

Pahýl
Pahýl
Tento článek je příliš stručný nebo postrádá důležité informace.
Pomozte Wikipedii tím, že jej vhodně rozšíříte. Nevkládejte však bez oprávnění cizí texty.