Foreground plně podporuje – RWD, HTML 5.0, Super Galerii a YouTube 2.0 !
Numerické řešení obyčejných diferenciálních rovnic
Z Multimediaexpo.cz
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
- Podrobnější informace naleznete na stránce: 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.)
Č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\).)
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. Řá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}\).
- 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}\).
Související články
Externí odkazy
| Náklady na energie a provoz naší encyklopedie prudce vzrostly. Potřebujeme vaši podporu... Kolik ?? To je na Vás. Náš FIO účet — 2500575897 / 2010 |
|---|
| Informace o článku.
Článek je převzat z Wikipedie, otevřené encyklopedie, do které přispívají dobrovolníci z celého světa. |
