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

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

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(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 \Delta t:

:y(t+\Delta t) = y(t) + D(t,y) \Delta t

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

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)

Rungeovy-Kuttovy metody

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

:y_{n+1} = y_n + h \sum_{i=1}^{p} w_i k_i :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 odpovídala Taylorovu polynomu funkce y(t) stejného řádu. (Eulerova metoda je vlastně metodou prvního řádu. +more).

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

: k_1 = f \left( t_n, y_n \right) : k_2 = f \left( t_n + {h \over 2}, y_n + {h \over 2} k_1 \right) : k_3 = f \left( t_n + {h \over 2}, y_n + {h \over 2} k_2 \right) : k_4 = f \left( t_n + h, y_n + hk_3 \right) : 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 = \Delta t; t_n = n \Delta t; y_n = y(t_n); D(t,y) = (k_1+2k_2+2k_3+k_4)/6. Korespondence s obecným vzorcem: k_1 = k_4 = 1/6; k_2 = k_3 = 1/3; \alpha_1 = \beta_{31} = \beta_{41} = \beta_{42} = 0; \alpha_2 = \alpha_3 = \beta_{21} = \beta_{32} = 1/2; \alpha_4 = \beta_{43} = 1. +more).

Vícekrokové metody

U vícekrokových metod je hodnota y_{n+1} vypočtena z předchozích hodnot y_{n-i} (respektive f_{n-i}, i = 0 . k) proložených interpolačním polynomem. +more Řá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} = \sum_{i=0}^{r} \alpha_i y_{n-i} + h \sum_{j=-1}^{s} \beta_j f_{n-j}

Explicitní metody

Pokud je \beta_{-1} = 0, lze hodnotu y_{n+1} určit z r+1 předchozích hodnot y_n (respektive z s+1 předchozích hodnot f_n) a jedná se o metodu explicitní.

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

: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; \alpha_0 = 1; s = 1; \beta_{-1} = 0; \beta_0 = 3/2; \beta_1 = -1/2.)

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

:y_{n+1} = y_n + \frac{h}{24} \left( 55 f_n - 59 f_{n-1} + 37 f_{n-2} - 9 f_{n-3} \right)

Implicitní metody

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

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

:y_{n+1} = y_n + \frac{h}{24} \left( 9 f_{n+1} + 19 f_n - 5 f_{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}. +more V tomto bodě je vypočtena derivace f_{n+1}, která je následovně použita v implicitní metodě pro výpočet přesnější aproximace y_{n+1}.

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top