IntegralLab kolik se toho nasbíralo

Tohle je statická kopie kapitoly pro vyhledávače. Interaktivní verze má animované obrázky, kontrolní otázky a tlačítka, která příklad načtou do kalkulačky.

Od plochy k simulaci: diferenciální rovnice

Až sem se integroval známý integrand. V technice je ale běžnější druhá úloha: rychlost změny se ví, hodnota ne. „Zrychlení je síla děleno hmotností“ — a chce se poloha.

y′ = f(t, y), y(t₀) = y₀ → y(t) = y₀ + ∫ f dtODR je integrál, jehož integrand závisí na výsledku

To je pořád integrování — jen se integrand nedá vyhodnotit dopředu, protože závisí na tom, co se teprve počítá. Metody se proto liší v tom, kolikrát a kde se v každém kroku zeptají.

metodavyhodnocení / krokřádnaměřený pokles chyby při půlení h
Euler111,95×
Heun224,10×
RK44416,41×

RK4 stojí čtyřikrát víc na krok, ale za poloviční krok je šestnáctkrát přesnější. Proto ho používá skoro každý simulátor: při stejné ceně je o řády lepší.

xypoloměr po 2 otáčkáchpravda: 1,000000Euler · 48×4,908720Heun · 96×1,028569RK4 · 192×0,999894přerušovaně = přesné řešeníEuler nabírá energii,kterou nemá odkud vzít
Euler skončí na poloměru 4.9087, RK4 na 0.999894 — za čtyřnásobek vyhodnocení.
Kruh je přesné řešení y″ = −y. Euler se z něj po spirále vzdaluje — nabírá energii, kterou v rovnici nemá odkud vzít.

Co ta spirála znamená

Rovnice y″ = −y popisuje harmonický oscilátor: kyvadlo, LC obvod, hmotu na pružině. Jeho energie je konstantní, takže řešení musí ležet na kružnici. Euler ji opustí — při 24 krocích na otáčku a dvou otáčkách skončí na poloměru 1,197 místo 1,000, tedy o 20 % mimo, zatímco RK4 je na 0,999998.

A tady je pointa, kvůli které je ta figura v labce: Euler nevyrábí náhodný šum, vyrábí systematický nárůst. Simulace netlumeného kyvadla se v Euleru sama rozkmitá. Simulace obvodu bez ztrát začne dodávat výkon. Nikdo to nezadal — vzniklo to z metody.

Odtud pochází integrační složka v PID. Když regulátor sčítá odchylku, dělá přesně tohle: numericky integruje. A všechny neduhy z ControlLabu — windup, drift, závislost na periodě vzorkování — jsou vlastnosti té numerické integrace, ne regulátoru.

Vzorce v této kapitole

Euler — explicitní Euler
y_{k+1} = y_k + h·f(t_k, y_k) [—] kap. 8
RK4 — Runge-Kutta 4. řádu
y_{k+1} = y_k + h/6·(k₁ + 2k₂ + 2k₃ + k₄) [—] kap. 8