Stabilita: Euler neselže postupně, selže naráz
Většina chyb v numerice se chová slušně: krok je dvakrát menší, chyba dvakrát menší. Stabilita se takhle nechová. Má hranici, a na jedné straně od ní metoda funguje, na druhé straně vybuchne.
Odvození je na tři řádky. Euler dělá y_{k+1} = y_k − h·λ·y_k = (1 − hλ)·y_k. Každý krok tedy násobí týmž činitelem. Aby řešení klesalo, musí být |1 − hλ| < 1, což dá 0 < h < 2/λ. Ne přibližně, ne většinou — přesně tam.
| h | 1 − hλ | co dělá řešení |
|---|---|---|
| h < 1/λ | mezi 0 a 1 | klesá hladce, správně |
| 1/λ < h < 2/λ | mezi −1 a 0 | klesá, ale střídá znaménko — ošklivé, ale drží |
| h > 2/λ | pod −1 | roste do nekonečna se střídavým znaménkem |
Testy v repu měří obojí: při h = 0,0526 (pod hranicí) skončí Euler na −3,1·10⁻⁵, při h = 0,1111 (nad hranicí) na −2,1·10³. Přesná odpověď je 9,4·10⁻¹⁴.
Tuhé soustavy
Skutečný problém nastane, když soustava obsahuje děj rychlý a děj pomalý najednou. Motor má elektrickou časovou konstantu v milisekundách a mechanickou v sekundách. Sledovat se chce ta pomalá — jenže krok diktuje ta rychlá, protože jinak metoda vybuchne. Takové soustavě se říká tuhá a znamená to statisíce kroků na sekundu simulace, přestože se nic zajímavého neděje.
Řešení je implicitní metoda. Implicitní Euler y_{k+1} = y_k + h·f(t, y_{k+1}) počítá pravou stranu v novém bodě. Za to, že se musí v každém kroku řešit rovnice, dostane stabilitu pro libovolně velké h — tuhá soustava přestane být problém. Tady se implicitní metody nepočítají, ale stojí za to vědět, proč existují: nejsou přesnější, jsou stabilnější, a to jsou dvě různé věci.