MatrixLab tabulka, která něco dělá

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.

Podmíněnost: kdy odpovědi nevěřit

Matice se dělí na singulární a regulární, a to zní jako binární věc. Není. Mezi „jde to“ a „nejde to“ leží široké pásmo „jde to, ale výsledku nevěř“ — a to je pásmo, ve kterém se odehrává většina skutečných výpočtů.

κ(A) = σ_max / σ_minčíslo podmíněnosti
xychyba vstupu2,00 %chyba výsledku4,99 %zesílení2,5×podmíněnost κ2,7κ je HORNÍ MEZ zesílení
κ = 2,75  ·  stáhni úhel na pár stupňů: přímky se skoro překryjí a průsečík uteče
Stáhni úhel mezi rovnicemi na pár stupňů. Přímky se skoro překryjí a průsečík začne na malinkou změnu pravé strany reagovat obrovským skokem. Sleduj zesílení vpravo — a to, že κ je jeho horní mez.

Čte se to jednoduše: κ říká, kolikrát se v nejhorším případě zvětší relativní chyba vstupu. Když má vstup přesnost na tři platné číslice a κ = 1000, může být výsledek bez jediné platné číslice — a nic v tom výsledku o tom nebude vypovídat.

relativní chyba výsledku ≤ κ(A) · relativní chyba vstupuk čemu κ vlastně je
κco to znamená
1ideál — ortogonální matice, rotace
< 100v pohodě
10³–10⁶opatrně, ztrácejí se číslice
> 10⁸ve dvojité přesnosti prakticky singulární
singulární

Proč ne determinant

Determinant se na tuhle otázku nehodí a je to nejčastější omyl v celé kapitole. Matice diag(10⁻⁴, 10⁻⁴, 10⁻⁴) má determinant 10⁻¹² a je dokonale podmíněná — κ = 1. Naopak diag(1, 10⁻⁹) má determinant 10⁻⁹ a je katastrofa. Determinant míchá dohromady velikost a tvar; podmíněnost je poměr, takže na velikosti nezávisí vůbec.

Kde se špatná podmíněnost bere. Skoro vždycky z toho, že dvě věci, které mají být různé, jsou skoro stejné: dva sloupce Jakobiánu, které se srovnaly (singularita), dvě měření ze skoro stejného úhlu (kalibrace kamery), proložení polynomem vysokého stupně, kde jsou mocniny x na daném intervalu skoro k nerozeznání. Řešení není lepší algoritmus — je to lepší uspořádání úlohy: přidat měření z jiného úhlu, přeškálovat proměnné do srovnatelných jednotek, nebo použít regularizaci, která malé singulární hodnoty potlačí místo obrácení.

Škálování je nejlevnější náprava

Když jsou v jedné matici milimetry vedle radiánů, čísla se liší o řády a κ vyletí jen z toho. Přeškálování sloupců na srovnatelné velikosti je jednořádková změna, která podmíněnost obvykle spraví — a je to první věc, kterou zkusit, dřív než se člověk pustí do algoritmů. Táž past je v ParallelLabu u Jakobiánu 6×6, který míchá délky a úhly.

Vzorce v této kapitole

κ(A) — číslo podmíněnosti
κ(A) = σ_max/σ_min = ‖A‖·‖A⁻¹‖ [—] kap. 11
chyba — zesílení relativní chyby
‖Δx‖/‖x‖ ≤ κ(A) · ‖Δb‖/‖b‖ [—] kap. 11