Algoritmus vlastních čísel - Eigenvalue algorithm
v numerická analýza, jedním z nejdůležitějších problémů je navrhování efektivních a stabilní algoritmy pro nalezení vlastní čísla a matice. Tyto algoritmy vlastních čísel mohou také najít vlastní vektory.
Vlastní čísla a vlastní vektory
Vzhledem k n × n čtvercová matice A z nemovitý nebo komplex čísla, an vlastní číslo λ a související zobecněný vlastní vektor proti jsou dvojice poslouchající vztah[1]
kde proti je nenulová n × 1 vektor sloupce, Já je n × n matice identity, k je kladné celé číslo a obojí λ a proti mohou být složité, i když A je skutečný. Když k = 1, vektor se nazývá jednoduše vlastní vektor a dvojici se říká an vlastní pár. V tomto případě, Aproti = λproti. Jakékoli vlastní číslo λ z A má obyčejný[poznámka 1] vlastní vektory spojené s tím, pokud k je nejmenší celé číslo takové, že (A - λJá)k proti = 0 pro zobecněný vlastní vektor proti, pak (A - λJá)k-1 proti je obyčejný vlastní vektor. Hodnota k lze vždy brát jako menší nebo roven n. Zejména, (A - λJá)n proti = 0 pro všechny zobecněné vlastní vektory proti spojený s λ.
Pro každé vlastní číslo λ z A, jádro ker (A - λJá) se skládá ze všech vlastních vektorů spojených s λ (spolu s 0), nazývané vlastní prostor z λ, zatímco vektorový prostor ker ((A - λJá)n) se skládá ze všech zobecněných vlastních vektorů a nazývá se zobecněný vlastní prostor. The geometrická multiplicita z λ je rozměr jeho vlastního prostoru. The algebraická multiplicita z λ je rozměrem jejího zobecněného vlastního prostoru. Druhá terminologie je odůvodněna rovnicí
kde det je určující funkce, λi jsou všechna zřetelná vlastní čísla A a αi jsou odpovídající algebraické multiplicity. Funkce pA(z) je charakteristický polynom z A. Algebraická multiplicita je tedy multiplicita vlastního čísla jako a nula charakteristického polynomu. Jelikož jakýkoli vlastní vektor je také zobecněným vlastním vektorem, geometrická multiplicita je menší nebo rovna algebraické multiplicitě. Součet algebraických multiplicit je n, stupeň charakteristického polynomu. Rovnice pA(z) = 0 se nazývá charakteristická rovnice, protože jeho kořeny jsou přesně vlastní čísla A. Podle Cayley-Hamiltonova věta, A sám se řídí stejnou rovnicí: pA(A) = 0.[poznámka 2] V důsledku toho jsou sloupce matice musí být buď 0, nebo zobecněné vlastní vektory vlastní hodnoty λj, protože jsou zničeni Ve skutečnosti sloupcový prostor je zobecněný vlastní prostor λj.
Jakákoli sbírka zobecněných vlastních vektorů odlišných vlastních čísel je lineárně nezávislá, takže je základem pro všechny C n lze zvolit sestávající z obecných vlastních vektorů. Přesněji řečeno, tento základ {protii}n
i=1 lze zvolit a uspořádat tak, aby
- -li protii a protij mít stejné vlastní číslo, pak ano protik pro každého k mezi i a j, a
- -li protii není obyčejný vlastní vektor, a pokud λi je tedy jeho vlastní hodnota (A - λiJá )protii = protii-1 (zejména, proti1 musí být obyčejný vlastní vektor).
Pokud jsou tyto základní vektory umístěny jako sloupcové vektory matice PROTI = [ proti1 proti2 ... protin ], pak PROTI lze použít k převodu A k jeho Jordan normální forma:
Kde λi jsou vlastní čísla, βi = 1 -li (A - λi+1)protii+1 = protii a βi = 0 v opačném případě.
Obecněji, pokud Ž je libovolná invertibilní matice a λ je vlastní číslo z A se zobecněným vlastním vektorem proti, pak (Ž−1AW - λJá )k Ž−kproti = 0. Tím pádem λ je vlastní číslo z Ž−1AW se zobecněným vlastním vektorem Ž−kproti. To znamená, podobné matice mají stejná vlastní čísla.
Normální, hermitovské a skutečně symetrické matice
Adjunkt matice je matice kofaktorů transpozice. Použijte jiný výraz adjoint M* komplexní matice M je transpozice konjugátu z M: M * = M T. Čtvercová matice A je nazýván normální pokud dojíždí se svým adjoint: A*A = AA*. To se nazývá poustevník pokud se rovná jeho adjoint: A* = A. Všechny poustevnické matice jsou normální. Li A má pouze skutečné prvky, pak adjoint je jen transponovat, a A je poustevník právě tehdy, když je symetrický. Při použití na vektory sloupců lze adjoint použít k definování kanonického vnitřního produktu Cn: w · proti = w* proti.[Poznámka 3] Normální, poustevnická a skutečná symetrická matice mají několik užitečných vlastností:
- Každý zobecněný vlastní vektor normální matice je obyčejný vlastní vektor.
- Jakákoli normální matice je podobná diagonální matici, protože její normální forma Jordan je diagonální.
- Vlastní vektory různých vlastních čísel normální matice jsou kolmé.
- Nulový prostor a obraz (nebo sloupcový prostor) normální matice jsou navzájem kolmé.
- Pro jakoukoli normální matici A, C n má ortonormální základ skládající se z vlastních vektorů A. Odpovídající matice vlastních vektorů je unitární.
- Vlastní čísla hermitovské matice jsou skutečná, protože (λ - λ)proti = (A* − A)proti = (A − A)proti = 0 pro nenulový vlastní vektor proti.
- Li A je skutečné, existuje ortonormální základ pro Rn skládající se z vlastních vektorů A kdyby a jen kdyby A je symetrický.
Je možné, aby skutečná nebo složitá matice měla všechna skutečná vlastní čísla, aniž by byla poustevníkem. Například skutečný trojúhelníková matice má vlastní čísla podél své úhlopříčky, ale obecně není symetrická.
Číslo podmínky
Jakýkoli problém numerického výpočtu lze považovat za vyhodnocení nějaké funkce ƒ pro nějaký vstup X. The číslo podmínky κ(ƒ, X) problému je poměr relativní chyby na výstupu funkce k relativní chybě na vstupu a liší se jak funkcí, tak vstupem. Číslo podmínky popisuje, jak chyba roste během výpočtu. Jeho logaritmus base-10 říká, kolik méně číslic přesnosti existuje ve výsledku, než kolik existovalo ve vstupu. Číslo podmínky je nejlepší scénář. Odráží nestabilitu zabudovanou do problému, bez ohledu na to, jak je vyřešen. Žádný algoritmus nikdy nemůže přinést přesnější výsledky, než je uvedeno v čísle podmínky, s výjimkou náhody. Špatně navržený algoritmus však může přinést výrazně horší výsledky. Například, jak je uvedeno níže, problém hledání vlastních čísel pro normální matice je vždy dobře podmíněn. Problém nalezení kořenů polynomu však může být velmi špatně podmíněný. Algoritmy vlastních čísel, které fungují při hledání kořenů charakteristického polynomu, tedy mohou být špatně podmíněny, i když problém není.
Pro problém řešení lineární rovnice Aproti = b kde A je invertibilní, číslo podmínky κ(A−1, b) je dána ||A||op||A−1||op, kde || ||op je norma operátora podřízený normálnímu Euklidovská norma na C n. Protože toto číslo je nezávislé na b a je stejný pro A a A−1, obvykle se to nazývá jen číslo podmínky κ(A) matice A. Tato hodnota κ(A) je také absolutní hodnota poměru největšího vlastního čísla A do nejmenšího. Li A je unitární, pak ||A||op = ||A−1||op = 1, tak κ(A) = 1. U obecných matic je často obtížné vypočítat normu operátora. Z tohoto důvodu jiné maticové normy se běžně používají k odhadu počtu podmínek.
U problému vlastních čísel Bauer a Fike dokázali to když λ je vlastní číslo pro a úhlopříčně n × n matice A s vlastní matice vektoru PROTI, pak absolutní chyba ve výpočtu λ je omezen produktem κ(PROTI) a absolutní chyba v A.[2] Jako výsledek, číslo podmínky pro nalezení λ je κ(λ, A) = κ(PROTI) = ||PROTI ||op ||PROTI −1||op. Li A je tedy normální PROTI je unitární a κ(λ, A) = 1. Problém vlastních čísel pro všechny normální matice je tedy dobře podmíněn.
Číslo podmínky pro problém hledání vlastního prostoru normální matice A odpovídající vlastnímu číslu λ Ukázalo se, že je nepřímo úměrný minimální vzdálenosti mezi λ a další zřetelná vlastní čísla A.[3] Zejména problém vlastního prostoru pro normální matice je dobře upraven pro izolované vlastní hodnoty. Nejsou-li vlastní čísla izolována, nejlepší, v co lze doufat, je určit rozpětí všech vlastních vektorů blízkých vlastních čísel.
Algoritmy
Libovolný monický polynom je jeho charakteristickým polynomem doprovodná matice. K nalezení kořenů polynomů lze tedy také použít obecný algoritmus pro hledání vlastních čísel. The Věta Abel – Ruffini ukazuje, že jakýkoli takový algoritmus pro dimenze větší než 4 musí být buď nekonečný, nebo zahrnovat funkce větší složitosti než elementární aritmetické operace a zlomkové mocniny. Z tohoto důvodu existují algoritmy, které přesně počítají vlastní čísla v konečném počtu kroků, pouze pro několik speciálních tříd matic. Pro obecné matice jsou algoritmy iterativní s každou iterací vytváří lepší přibližné řešení.
Některé algoritmy produkují všechna vlastní čísla, jiné vyprodukují několik nebo jen jednu. I tyto posledně uvedené algoritmy však lze použít k vyhledání všech vlastních čísel. Jednou vlastní číslo λ matice A byl identifikován, lze jej použít buď k nasměrování algoritmu na jiné řešení příště, nebo ke snížení problému na takové, které již nemá λ jako řešení.
Přesměrování se obvykle provádí řadením: nahrazováním A s A - μJá pro nějakou konstantu μ. Bylo nalezeno vlastní číslo pro A - μJá musí mít μ přidáno zpět a získat vlastní hodnotu pro A. Například pro iterace výkonu, μ = λ. Power iterace najde největší vlastní hodnotu v absolutní hodnotě, takže i když λ je pouze přibližné vlastní číslo, je nepravděpodobné, že iterace výkonu ji najde podruhé. Naopak, inverzní iterace založené metody najít nejnižší vlastní hodnotu, tak μ je vybrán daleko od λ a doufejme, že blíže k nějaké jiné vlastní hodnotě.
Snížení lze dosáhnout omezením A do prostoru sloupců matice A - λJá, který A nese pro sebe. Od té doby A - λJá je singulární, prostor sloupců má menší rozměr. Algoritmus vlastních čísel lze poté použít na omezenou matici. Tento proces lze opakovat, dokud nenajdete všechna vlastní čísla.
Pokud algoritmus vlastních čísel neprodukuje vlastní vektory, běžnou praxí je použít algoritmus založený na inverzní iteraci s μ nastaveno na blízkou aproximaci vlastního čísla. To se rychle sblíží s vlastním vektorem nejbližší vlastní hodnoty μ. U malých matic je alternativou podívat se na prostor sloupců produktu A - λ'Já pro každou z ostatních vlastních čísel λ'.
Vzorec pro normu složek jednotkových vlastních vektorů normálních matic objevil Robert Thompson v roce 1966 a znovu objevil samostatně několik dalších. [4][5][6][7][8]Li A je normální matice s vlastními hodnotami λi(A) a odpovídající jednotkové vlastní vektory protii jehož komponenty jsou protijá, j, nechť Aj být matice získaná odstraněním i-tý řádek a sloupec z Aa nechte λk(Aj) být jeho k- vlastní číslo. Pak
Li jsou charakteristické polynomy a , vzorec lze přepsat jako
za předpokladu derivace není nula v .
Hessenbergovy a tridiagonální matice
Protože vlastní čísla trojúhelníkové matice jsou jejími diagonálními prvky, pro obecné matice neexistuje žádná konečná metoda jako Gaussova eliminace převést matici do trojúhelníkového tvaru při zachování vlastních čísel. Je však možné dosáhnout něčeho blízkého trojúhelníkovému. An horní Hessenbergova matice je čtvercová matice, pro kterou jsou všechny položky pod subdiagonální jsou nula. Nižší Hessenbergova matice je ta, pro kterou jsou všechny položky nad superdiagonální jsou nula. Matice, které jsou horní i dolní Hessenbergovy, jsou tridiagonální. Hessenbergova a tridiagonální matice jsou výchozím bodem mnoha algoritmů vlastních čísel, protože nulové položky snižují složitost problému. K převodu obecné matice na Hessenbergovu matici se stejnými vlastními hodnotami se běžně používá několik metod. Pokud byla původní matice symetrická nebo hermitovská, bude výsledná matice tridiagonální.
Když jsou potřeba pouze vlastní čísla, není třeba vypočítávat matici podobnosti, protože transformovaná matice má stejné vlastní hodnoty. Pokud jsou také potřeba vlastní vektory, může být potřebná matice podobnosti k transformaci vlastních vektorů Hessenbergovy matice zpět na vlastní vektory původní matice.
Metoda | Platí pro | Produkuje | Náklady bez matice podobnosti | Náklady s maticí podobnosti | Popis |
---|---|---|---|---|---|
Transformace majitelů domů | Všeobecné | Hessenberg | 2n3⁄3 + Ó(n2)[9](p474) | 4n3⁄3 + Ó(n2)[9](p474) | Odrazte každý sloupec podprostorem a vynulujte jeho spodní položky. |
Dává rotace | Všeobecné | Hessenberg | 4n3⁄3 + Ó(n2)[9](p470) | Pomocí rovinných rotací můžete jednotlivé položky vynulovat. Rotace jsou seřazeny tak, aby pozdější nezpůsobily, že se nulové položky stanou znovu nenulovými. | |
Arnoldiho iterace | Všeobecné | Hessenberg | Proveďte Gram – Schmidtovu ortogonalizaci na krylovských podprostorech. | ||
Lanczosův algoritmus | Hermitian | Tridiagonální | Arnoldiho iterace pro hermitovské matice se zkratkami. |
Pro symetrické třírozměrné problémy s vlastními čísly lze všechny vlastní hodnoty (bez vlastních vektorů) vypočítat numericky v čase O (n log (n)) pomocí půlení na charakteristickém polynomu. [10]
Iterativní algoritmy
Iterativní algoritmy řeší problém vlastních čísel vytvořením sekvencí, které konvergují k vlastním číslům. Některé algoritmy také produkují sekvence vektorů, které konvergují k vlastním vektorům. Sekvence vlastních čísel jsou nejčastěji vyjádřeny jako sekvence podobných matic, které konvergují do trojúhelníkového nebo diagonálního tvaru, což umožňuje snadné čtení vlastních čísel. Vlastní sekvence vektoru jsou vyjádřeny jako odpovídající matice podobnosti.
Metoda | Platí pro | Produkuje | Cena za krok | Konvergence | Popis |
---|---|---|---|---|---|
Iterace výkonu | Všeobecné | vlastní pár s největší hodnotou | Ó(n2) | lineární | Opakovaně aplikuje matici na libovolný počáteční vektor a renormalizuje. |
Inverzní iterace | Všeobecné | vlastní pár s hodnotou nejbližší μ | lineární | Iterace výkonu pro (A - μJá )−1 | |
Rayleighova kvocientová iterace | Hermitian | jakýkoli vlastní pár | krychlový | Výkonová iterace pro (A - μiJá )−1, kde μi pro každou iteraci je Rayleighův kvocient předchozí iterace. | |
Předpřipravená inverzní iterace[11] nebo Algoritmus LOBPCG | pozitivní-definitivní skutečné symetrické | vlastní pár s hodnotou nejbližší μ | Inverzní iterace pomocí a kondicionér (přibližná inverzní funkce k A). | ||
Metoda půlení | skutečný symetrický tridiagonální | jakékoli vlastní číslo | lineární | Používá metoda půlení najít kořeny charakteristického polynomu, podporovaného Sturmovou sekvencí. | |
Laguerrova iterace | skutečný symetrický tridiagonální | jakékoli vlastní číslo | krychlový[12] | Použití Laguerrova metoda najít kořeny charakteristického polynomu, podporovaného Sturmovou sekvencí. | |
Algoritmus QR | Hessenberg | všechna vlastní čísla | Ó(n2) | krychlový | Faktory A = QR, kde Q je ortogonální a R je trojúhelníkový, pak použije další iteraci na RQ. |
všechny vlastní páry | 6n3 + Ó(n2) | ||||
Algoritmus vlastní hodnoty Jacobiho | skutečné symetrické | všechna vlastní čísla | Ó(n3) | kvadratický | Používá Givensovy rotace k pokusu o vymazání všech položek mimo diagonální. To selže, ale posílí se úhlopříčka. |
Rozděl a panuj | Hermitian tridiagonální | všechna vlastní čísla | Ó(n2) | Rozdělí matici na submatice, které jsou diagonalizovány a poté znovu zkombinovány. | |
všechny vlastní páry | (4⁄3)n3 + Ó(n2) | ||||
Metoda homotopy | skutečný symetrický tridiagonální | všechny vlastní páry | Ó(n2)[13] | Zkonstruuje vypočítatelnou cestu homotopy z problému s diagonální vlastní hodnotou. | |
Metoda skládaného spektra | skutečné symetrické | vlastní pár s hodnotou nejbližší μ | Předpřipravená inverzní iterace (A - μJá )2 | ||
Algoritmus MRRR[14] | skutečný symetrický tridiagonální | některé nebo všechny vlastní páry | Ó(n2) | "Více relativně robustních reprezentací" - provede inverzní iteraci na a LDLT rozklad posunuté matice. |
Přímý výpočet
I když neexistuje žádný jednoduchý algoritmus pro přímý výpočet vlastních čísel pro obecné matice, existuje řada speciálních tříd matic, kde lze vlastní čísla přímo vypočítat. Tyto zahrnují:
Trojúhelníkové matice
Protože determinant a trojúhelníková matice je součinem jeho diagonálních záznamů, pokud T je tedy trojúhelníkový . Vlastní čísla tedy T jsou jeho úhlopříčné položky.
Faktorovatelné polynomické rovnice
Li p je libovolný polynom a p(A) = 0, pak vlastní čísla A také uspokojit stejnou rovnici. Li p stane se, že má známou faktorizaci, pak vlastní čísla A lež mezi jeho kořeny.
Například a projekce je čtvercová matice P uspokojující P2 = P. Kořeny odpovídající skalární polynomické rovnice, λ2 = λ, jsou 0 a 1. Jakákoli projekce má tedy pro vlastní čísla 0 a 1. Násobnost 0 jako vlastní hodnota je neplatnost z P, zatímco multiplicita 1 je hodnost P.
Dalším příkladem je matice A to uspokojuje A2 = α2Já pro některé skalární α. Vlastní čísla musí být ± α. Operátoři projekce
uspokojit
a
The mezery ve sloupcích z P+ a P− jsou vlastní prostory A souhlasí s + α a -α, resp.
2 × 2 matice
Pro dimenze 2 až 4 existují vzorce zahrnující radikály, které lze použít k nalezení vlastních čísel. Zatímco běžná praxe pro matice 2 × 2 a 3 × 3, pro matice 4 × 4 roste složitost kořenové vzorce činí tento přístup méně atraktivním.
Pro matici 2 × 2
charakteristický polynom je
Vlastní čísla lze tedy najít pomocí kvadratický vzorec:
Definování je vzdálenost mezi dvěma vlastními hodnotami, je snadné ji vypočítat
s podobnými vzorci pro C a d. Z toho vyplývá, že výpočet je dobře podmíněn, pokud jsou vlastní čísla izolována.
Vlastní vektory lze nalézt využitím Cayley-Hamiltonova věta. Li λ1, λ2 jsou tedy vlastní čísla (A - λ1Já )(A - λ2Já ) = (A - λ2Já )(A - λ1Já ) = 0, takže sloupce (A - λ2Já ) jsou zničeni (A - λ1Já ) a naopak. Za předpokladu, že ani jedna matice není nula, musí sloupce každého z nich obsahovat vlastní vektory pro druhou vlastní hodnotu. (Pokud je některá matice nulová, pak A je násobkem identity a jakýkoli nenulový vektor je vlastní vektor.)
Předpokládejme například
pak tr (A) = 4 - 3 = 1 a det (A) = 4(-3) - 3(-2) = -6, takže charakteristická rovnice je
a vlastní čísla jsou 3 a -2. Nyní,
V obou maticích jsou sloupce navzájem násobky, takže lze použít kterýkoli ze sloupců. Tím pádem, (1, -2) lze brát jako vlastní vektor spojený s vlastní hodnotou -2 a (3, -1) jako vlastní vektor spojený s vlastní hodnotou 3, což lze ověřit jejich vynásobením A.
3 × 3 matice
Li A je matice 3 × 3, pak lze její charakteristickou rovnici vyjádřit jako:
Tuto rovnici lze vyřešit pomocí metod podle Cardano nebo Lagrange, ale afinní změna na A značně zjednoduší výraz a povede přímo k a trigonometrické řešení. Li A = pB + Qi, pak A a B mít stejné vlastní vektory a β je vlastní číslo z B kdyby a jen kdyby α = pβ + q je vlastní číslo z A. Pronájem a , dává
Střídání β = 2cos θ a určité zjednodušení pomocí identity cos 3θ = 4cos3 θ - 3cos θ redukuje rovnici na cos 3θ = det (B) / 2. Tím pádem
Li det (B) je komplexní nebo je větší než 2 v absolutní hodnotě, měl by být arkkosin užíván podél stejné větve pro všechny tři hodnoty k. K tomuto problému nedochází, když A je reálné a symetrické, což má za následek jednoduchý algoritmus:[15]
% Vzhledem k reálné symetrické matici 3x3 A, spočítejte vlastní čísla% Všimněte si, že acos a cos pracují na úhlech v radiánechp1 = A(1,2)^2 + A(1,3)^2 + A(2,3)^2-li (p1 == 0) % A je úhlopříčka. eig1 = A(1,1) eig2 = A(2,2) eig3 = A(3,3)jiný q = stopa(A)/3 % trace (A) je součet všech diagonálních hodnot p2 = (A(1,1) - q)^2 + (A(2,2) - q)^2 + (A(3,3) - q)^2 + 2 * p1 p = čtv(p2 / 6) B = (1 / p) * (A - q * Já) % I je matice identity r = det(B) / 2 % Přesná aritmetika pro symetrickou matici -1 <= r <= 1 %, ale chyba výpočtu ji může ponechat mírně mimo tento rozsah. -li (r <= -1) phi = pi / 3 elseif (r >= 1) phi = 0 jinýphi = acos (r) / 3 konec% vlastních čísel uspokojí vlastní číslo3 <= vlastní číslo2 <= vlastní číslo1 eig1 = q + 2 * p * cos(phi) eig3 = q + 2 * p * cos(phi + (2*pi/3)) eig2 = 3 * q - eig1 - eig3 % od stopy (A) = vlastní1 + vlastní2 + vlastní3konec
Ještě jednou vlastní vektory A lze získat prostřednictvím Cayley-Hamiltonova věta. Li α1, α2, α3 jsou zřetelná vlastní čísla A, pak (A - α1Já)(A - α2Já)(A - α3Já) = 0. Sloupce produktu libovolných dvou z těchto matic tedy budou obsahovat vlastní vektor pro třetí vlastní hodnotu. Pokud však α3 = α1, pak (A - α1Já)2(A - α2Já) = 0 a (A - α2Já)(A - α1Já)2 = 0. Tak zobecněný vlastní prostor α1 je překlenuto sloupci A - α2Já zatímco obyčejný vlastní prostor je rozložen sloupci (A - α1Já)(A - α2Já). Obyčejný vlastní prostor α2 je překlenuto sloupci (A - α1Já)2.
Například pojďme
Charakteristická rovnice je
s vlastními hodnotami 1 (multiplicity 2) a -1. Výpočet,
a