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

Z Wikipedie, otevřené encyklopedie

V numerické matematice, numerické řešení obyčejných diferenciálních rovnic je postup, jak získat přibližné řešení obyčejných diferenciálních rovnic, když nejsme schopni rovnice vyřešit přesně (analyticky).

Obvykle je dána diferenciální rovnice a počáteční podmínky:

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

Obsah

[editovat] 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,yt

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

[editovat] Eulerova metoda

(Více viz 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)

[editovat] Metody Runge-Kutta

Obecně lze metody Runge-Kutta 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á 4 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 = Δ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.)

[editovat] 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ě:

y_{n+1} = \sum_{i=0}^{r} \alpha_i y_{n-i} + h \sum_{j=-1}^{s} \beta_j f_{n-j}

[editovat] 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:

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; α0 = 1; s = 1; β − 1 = 0; β0 = 3 / 2; β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)

[editovat] 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:

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

[editovat] 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.

[editovat] Podívejte se také na

V jiných jazycích