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.
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 H | co to je |
|---|---|
| všechna > 0 | minimum |
| všechna < 0 | maximum |
| různá znaménka | sedlo — v jednom směru nahoru, v druhém dolů |
| některé = 0 | nerozhodnuto, 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 h², 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ší.