DerivLab jak rychle se to mění

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.

Hessián: minimum, maximum, nebo sedlo

Gradient je nula v minimu. Je taky nula v maximu a na sedle — takže „gradient je nula“ neznamená, že jsme našli, co jsme hledali. Rozhodne až druhá derivace.

H[i][j] = ∂²f/∂xᵢ∂xⱼHessián — matice druhých derivací

Hessián je symetrický (Schwarzova věta: na pořadí derivování nezáleží, pokud jsou druhé parciální derivace spojité), takže na něj sedí celá kapitola 9 MatrixLabu:

vlastní čísla Hco to je
všechna > 0minimum
všechna < 0maximum
různá znaménkasedlo — v jednom směru nahoru, v druhém dolů
některé = 0nerozhodnuto, je potřeba vyšší řád

Přesně tenhle test dělá OptiLab, když se ptá, jestli metoda opravdu našla minimum, nebo se jen zastavila. Sedlo je bod, kde je gradient nulový a řešení to není — a bez druhé derivace se to nepozná.

Numerický Hessián potřebuje jiný krok. Dělí se , takže zaokrouhlovací chyba roste jako ε/h² a nejlepší krok je ε^(1/4) ≈ 1,2·10⁻⁴ — o dva řády větší než u první derivace. Kdo použije týž krok jako pro gradient, dostane matici šumu, jejíž vlastní čísla nic neznamenají. Solver v téhle labce proto pro Hessián počítá krok zvlášť — a navíc výsledek symetrizuje, protože obě smíšené derivace se počítají jinou aritmetikou a v posledních bitech se liší.

Vzorce v této kapitole

H — Hessián
H[i][j] = ∂²f/∂xᵢ∂xⱼ, symetrická [—] kap. 8