Numerické řešení obyčejných diferenciálních rovnic Michal Menkina TECHNICKÁ UNIVERZITA V LIBERCI Fakulta mechatroniky, informatiky a mezioborových studií Tento materiál vznikl v rámci projektu ESF CZ.1.07/2.2.00/07.0247, který je spolufinancován Evropským sociálním fondem a státním rozpočtem ČR
2
Jednokrokové a vícekrokové metody jednokrokové metody - pro výpočet následujícího kroku je použita pouze hodnota z aktuálního kroku vícekrokové metody k výpočtu následujícího kroku je použito více předchozích hodnot r x x h x k1 i ki j k j i0 j1 vícekrokové metody jsou přesnější a výpočetně náročnější. Problém se startem metody - start obvykle pomocí jednokrokové metody s 3
Implicitní a explicitní metody Implicitní metody pokud je β 1 různé od nuly je hodnota dalšího kroku vypočtena jako implicitní funkce hodnoty v aktuálním kroku a hodnoty a derivace v dalším kroku. Explicitní metody - pokud je β 1=0 je hodnota dalšího kroku vypočtena explicitní funkcí hodnoty a derivace v aktuálním kroku. Implicitní metody dosahují lepší přesnosti, zato však vyšší výpočetní náročnost 4
Diferenční metody nejjednodušší jednokroková explicitní prvního řádu metoda je Eulerova metoda x x h x k 1 k k další explicitní, ale dvoukroková metoda je Nyströmova metoda x x h x 2 k1 k1 k 5
jednokroková implicitní prvního řádu metoda je Lichoběžníková metoda explicitní dvoukroková metoda je Adamsova metoda Diferenční metody 1 x x hx x 2 k1 k k k1 1 x x h3 x x 2 k1 k k k1 6
Metoda prediktor - korektor Metody prediktor korektor jsou sloučením explicitních a implicitních metod. První se použije explicitní metoda pro odhad nového xk+1. V tomto bode je vypočtena derivace, která je následně použita do implicitní metody pro výpočet xk+1. prediktor: o x x h x k1 k k o k1 k k1 k1 korektor: x x h f ( x, t ) Například: prediktor: Adamsova metoda korektor: Lichoběžníková metoda 7
Metody Runge - Kutta Vychází z Taylorova rozvoje a bere do úvahy členy vyšších řádů. Potřebnou derivaci funkce počítá složitější diferenční metodou pomocí pomocných bodů mezi sousedními uzly. Metod Runge Kutta je více. Nejpoužívanější je klasická metoda 4. řádu (R-K 4). 8
Metody Runge - Kutta Obecně lze metody Runge-Kutta zapsat: x x h w k k1 k i i i1 n i 1 k f x h k t h (, ) i k ij j k i j 1 Koeficienty u těchto metod jsou vypočteny tak, aby metoda řádu n odpovídala Taylorovu polynomu funkce x(t) stejného řádu. 1 ( n1) n1 Chyba: f h n 1! 9
Metody Runge - Kutta 4 bodová metoda Runge-Kutta (R-K 4) 1 1 1 1 xk1 xk h k1 k2 k3 k4 6 3 3 6 k f x, t 1 h h k2 f xk k1, tk 2 2 h h k3 f xk k2, tk 2 2 k x hk, t h 4 k 3 k k k 10
Chyby numerických výpočtů chyby vstupních dat, identifikace koeficientů zaokrouhlovací chyba pro numerický výpočet lokální zbytková chyba numerické metody ( n1) n1 Cx ( ) h, tk, tk 1 1 1 Chyby metod: Euler explicitní: xh Euler implicitní: - xh 2 2 1 3 lichoběžníková metoda: - x h 12 2 2 5 Adamsova metoda: x h 12 3 11
Metody v MatLabu (Simulink) S pevným krokem ode1 - Euler rychlá ode2 - Heun - modifikovaná Eulerova metoda ode3 - Bogacki-Shampine ode4 - Runge Kutta 4 řádu ode5 - Dormand-Prince ode14 - implicitní metoda - vyžaduje více výpočtů během jednoho kroku, ale dosahuje lepší přesnosti při daném kroku než explicitní metody 12
Metody v MatLabu (Simulink) S proměnným krokem ode45 - Dormand Prince - jednokroková metoda, vhodná k řešení většiny problémů ode23 - Bogacki-Shampine - jednokroková metoda, vhodná při malých požadavcích na přesnost a mírné tuhosti ode113 - Adams - vícekroková metoda, vhodná při vysokých požadavcích na přesnost. ode15s - stiff/ndf - vícekroková metoda, vhodná pro řešení tuhých systémů. 13