Power iteratie

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

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:

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.[3] 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

  1. ^ Richard Von Mises en H. Pollaczek-Geiringer,Praktische Verfahren der gleichungsauflösung, Zamm - Zeitschrift für Angewandte Mathematik und Mechanik 9, 152-164 (1929).
  2. ^ Ipsen, Ilseen Rebecca M. Wills (5–8 mei 2005). "7e iMacs International Symposium over iteratieve methoden bij wetenschappelijk computergebruik" (PDF).Fields Institute, Toronto, Canada.{{}}: CS1 Onderhoud: Meerdere namen: Lijst met auteurs (link)
  3. ^ Pankaj Gupta, Ashish Goel, Jimmy Lin, Aneesh Sharma, Dong Wang en Reza Bosagh Zadeh WTF: Het who-to-follow-systeem op Twitter, Proceedings of the 22nd International Conference on World Wide Web