In wiskunde, Power iteratie (Ook bekend als de vermogensmethode) is een eigenwaarde -algoritme: Gegeven een diagonaliseerbaar Matrix
, het algoritme zal een nummer produceren
, wat de grootste is (in absolute waarde) eigenwaarde van
, en een niet -nul vector
, wat een overeenkomst is eigenvector van
, dat is,
.Het algoritme staat ook bekend als de Von mises iteratie.[1]
Power iteratie is een heel eenvoudig algoritme, maar het kan langzaam samenkomen.De meest tijdrovende werking van het algoritme is de vermenigvuldiging van matrix
door een vector, dus het is effectief voor een zeer grote schaarse matrix met de juiste implementatie.
De methode
Animatie die het power iteratie -algoritme op een 2x2 -matrix visualiseert.De matrix wordt afgebeeld door zijn twee eigenvectoren.Fout wordt berekend als
Het power iteratie -algoritme begint met een vector
, wat een benadering kan zijn voor de dominante eigenvector of een willekeurige vector.De methode wordt beschreven door de Herstelrelatie

Dus bij elke iteratie, de vector
wordt vermenigvuldigd door de matrix
en genormaliseerd.
Als we aannemen
heeft een eigenwaarde die strikt groter is dan zijn andere eigenwaarden en de startvector
heeft een niet -nulcomponent in de richting van een eigenvector geassocieerd met de dominante eigenwaarde, vervolgens een deel
convergeert naar een eigenvector geassocieerd met de dominante eigenwaarde.
Zonder de twee bovenstaande veronderstellingen, de volgorde
komt niet noodzakelijkerwijs samen.In deze volgorde,
-
,
waar
is een eigenvector geassocieerd met de dominante eigenwaarde, en
.De aanwezigheid van de term
impliceert dat
convergeert niet tenzij
.Onder de twee hierboven genoemde veronderstellingen, de volgorde
gedefinieerd door

convergeert naar de dominante eigenwaarde (met Rayleigh quotiënt).[verduidelijking nodig]
Men kan dit berekenen met het volgende algoritme (getoond in Python met Numpy):
#!/usr/bin/env python3 importeren numpy net zo NP def power_iteration(A, num_iterations: inteken): # Kies idealiter een willekeurige vector # Om de kans te verminderen dat onze vector # Is orthogonaal voor de eigenvector b_k = NP.willekeurig.rand(A.vorm geven aan[1])) voor _ in bereik(num_iterations): # Bereken het Matrix-By-Vector-product AB B_K1 = NP.punt(A, b_k) # Bereken de norm b_k1_norm = NP.linalg.norm(B_K1) # Normaliseer de vector opnieuw b_k = B_K1 / b_k1_norm opbrengst b_k power_iteration(NP.reeks([[0,5, 0,5], [0,2, 0,8]]), 10)
De vector
aan een bijbehorende eigenvector.Idealiter zou men de Rayleigh quotiënt Om de bijbehorende eigenwaarde te krijgen.
Dit algoritme wordt gebruikt om de Google Paginabeoordeling.
De methode kan ook worden gebruikt om de spectrale straal (de eigenwaarde met de grootste grootte, voor een vierkante matrix) door het rayleigh quotiënt te berekenen

Analyse
Laten
worden ontbonden in zijn Jordan canonieke vorm:
, waar de eerste kolom van
is een eigenvector van
overeenkomend met de dominante eigenwaarde
.Sinds de dominante eigenwaarde van
is uniek, het eerste Jordan -blok van
is de
Matrix
waar
is de grootste eigenwaarde van A in grootte.De startvector
kan worden geschreven als een lineaire combinatie van de kolommen van V:

Door veronderstelling,
heeft een niet -nulcomponent in de richting van de dominante eigenwaarde, dus
.
Het computationeel nuttige Herstelrelatie voor
kan worden herschreven als:

waar de uitdrukking:
is meer vatbaar voor de volgende analyse.

De bovenstaande uitdrukking vereenvoudigt
![{\displaystyle \left({\frac {1}{\lambda _{1}}}J\right)^{k}={\begin{bmatrix}[1]&&&&\\&\left({\frac {1}{\lambda _{1}}}J_{2}\right)^{k}&&&\\&&\ddots &\\&&&\left({\frac {1}{\lambda _{1}}}J_{m}\right)^{k}\\\end{bmatrix}}\rightarrow {\begin{bmatrix}1&&&&\\&0&&&\\&&\ddots &\\&&&0\\\end{bmatrix}}\quad {\text{as}}\quad k\to \infty .}](https://wikimedia.org/api/rest_v1/media/math/render/svg/cec7d61aee7e07ab39497f6cf782f074c415a7fd)
De limiet volgt uit het feit dat de eigenwaarde van
is minder dan 1 in grootte, dus

Het volgt dat:

Dit feit gebruiken,
kan worden geschreven in een vorm die de nadruk legt op zijn relatie met
wanneer k is groot:
![{\displaystyle {\begin{aligned}b_{k}&=\left({\frac {\lambda _{1}}{|\lambda _{1}|}}\right)^{k}{\frac {c_{1}}{|c_{1}|}}{\frac {v_{1}+{\frac {1}{c_{1}}}V\left({\frac {1}{\lambda _{1}}}J\right)^{k}\left(c_{2}e_{2}+\cdots +c_{n}e_{n}\right)}{\left\|v_{1}+{\frac {1}{c_{1}}}V\left({\frac {1}{\lambda _{1}}}J\right)^{k}\left(c_{2}e_{2}+\cdots +c_{n}e_{n}\right)\right\|}}\\[6pt]&=e^{i\phi _{k}}{\frac {c_{1}}{|c_{1}|}}{\frac {v_{1}}{\|v_{1}\|}}+r_{k}\end{aligned}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/024832f7d5c7731b36d56df90fde0723dd480484)
waar
en
net zo
De reeks
is begrensd, dus het bevat een convergente deeling.Merk op dat de eigenvector die overeenkomt met de dominante eigenwaarde alleen uniek is tot een scalair, dus hoewel de volgorde
mag niet samenkomen,
is bijna een eigenvector van A voor groot k.
Als alternatief, als A is diagonaliseerbaar, dan levert het volgende bewijs hetzelfde resultaat op
Laat λ1, λ2, ..., λm wees de m eigenwaarden (geteld met veelheid) van A en laat v1, v2, ..., vm Wees de overeenkomstige eigenvectoren.Stel dat dat
is de dominante eigenwaarde, zodat
voor
.
De eerste vector
kan worden geschreven:

Als
wordt willekeurig gekozen (met uniforme waarschijnlijkheid), dan c1 ≠ 0 met waarschijnlijkheid 1. Nutsvoorzieningen,

Aan de andere kant:

Daarom,
convergeert naar (een veelvoud van de eigenvector
.De convergentie is geometrisch, met verhouding

waar
geeft de tweede dominante eigenwaarde aan.Aldus convergeert de methode langzaam als er een eigenwaarde in grootte is ten opzichte van de dominante eigenwaarde.
Toepassingen
Hoewel de power iteratiemethode slechts één eigenwaarde van een matrix benadert, blijft deze nuttig Computationele problemen. Bijvoorbeeld, Google gebruikt het om de Paginabeoordeling van documenten in hun zoekmachine,[2] en Twitter Gebruikt het om gebruikers aanbevelingen te tonen van wie ze moeten volgen. De power iteratiemethode is vooral geschikt voor schaarse matrices, zoals de webmatrix, of als de matrixvrije methode dat vereist niet de coëfficiëntmatrix opslaan
expliciet, maar kan in plaats daarvan toegang krijgen tot een functie die matrix-vectorproducten evalueert
.Voor niet-symmetrische matrices die zijn goed geconditioneerd De power iteratiemethode kan beter presteren dan complexer Arnoldi iteratie.Voor symmetrische matrices wordt de power iteratiemethode zelden gebruikt, omdat de convergentiesnelheid ervan gemakkelijk kan worden verhoogd zonder de kleine kosten per iteratie op te offeren;zie, bijv. Lanczos iteratie en Lobpcg.
Sommige van de meer geavanceerde eigenwaarde -algoritmen kunnen worden opgevat als variaties van de kracht iteratie.Bijvoorbeeld de omgekeerde iteratie Methode past de kracht iteratie toe op de matrix
.Andere algoritmen kijken naar de hele subruimte die wordt gegenereerd door de vectoren
.Deze subruimte staat bekend als de Krylov subruimte.Het kan worden berekend door Arnoldi iteratie of Lanczos iteratie.
Zie ook
Referenties
|
Belangrijkste concepten | |
Problemen | |
Hardware | |
Software | |