Dela-och-härska egenvärdesalgoritm
Dela-och-härska egenvärdesalgoritmer är en klass av egenvärdesalgoritmer för hermitiska eller reella symmetriska matriser som nyligen (cirka 1990-talet) har blivit konkurrenskraftiga när det gäller stabilitet och effektivitet med mer traditionella algoritmer som QR-algoritmen . Grundkonceptet bakom dessa algoritmer är dela-och-härska- metoden från datavetenskap . Ett egenvärdesproblem delas upp i två problem med ungefär hälften så stora problem, vart och ett av dessa löses rekursivt och egenvärdena för det ursprungliga problemet beräknas från resultaten av dessa mindre problem.
Här presenterar vi den enklaste versionen av en dela-och-härska-algoritm, liknande den som ursprungligen föreslogs av Cuppen 1981. Många detaljer som ligger utanför denna artikels ram kommer att utelämnas; men utan att beakta dessa detaljer är algoritmen inte helt stabil.
Bakgrund
Som med de flesta egenvärdesalgoritmer för hermitiska matriser börjar dividera-och-härska med en reduktion till tridiagonal form. För en tar standardmetoden för detta, via Householder reflections , flytande punktoperationer, eller om egenvektorer också behövs. Det finns andra algoritmer, såsom Arnoldi-iterationen , som kan fungera bättre för vissa klasser av matriser; vi kommer inte att överväga detta mer här.
I vissa fall är det möjligt att deflatera ett egenvärdesproblem till mindre problem. Betrakta en blockdiagonal matris
Egenvärdena och egenvektorerna för är helt enkelt de för och , och det kommer nästan alltid att gå snabbare att lösa dessa två mindre problem än att lösa det ursprungliga problemet på en gång. Denna teknik kan användas för att förbättra effektiviteten hos många egenvärdealgoritmer, men den har speciell betydelse för dela-och-härska.
För resten av den här artikeln kommer vi att anta att ingången till divide-and-conquer-algoritmen är en reell symmetrisk tridiagonal matris . Även om algoritmen kan modifieras för hermitiska matriser, ger vi inte detaljerna här.
Dela upp
Dela - delen av dela-och-härska-algoritmen kommer från insikten att en tridiagonal matris är "nästan" blockdiagonal.
Storleken på submatrisen kallar vi , och då är . Observera att anmärkningen om att är nästan blockdiagonal är sant oavsett hur väljs (dvs det finns många sätt att bryta ner matrisen). Men ur effektivitetssynpunkt är det vettigt att välja .
Vi skriver som en blockdiagonal matris, plus en rank-1- korrigering:
Den enda skillnaden mellan och är att den nedre högra posten i ersatts med och på liknande sätt, i den övre vänstra posten har ersatts med .
Resten av delningssteget är att lösa för egenvärdena (och om så önskas egenvektorerna) för och , det vill säga att hitta diagonaliseringarna och . Detta kan åstadkommas med rekursiva anrop till dela-och-härska-algoritmen, även om praktiska implementeringar ofta byter till QR-algoritmen för tillräckligt små submatriser.
Erövra
Erövringsdelen av algoritmen är den ointuitiva delen . Med tanke på diagonaliseringen av submatriserna, beräknade ovan, hur hittar vi diagonaliseringen av den ursprungliga matrisen?
Definiera först där är den sista raden i och är den första raden i . Det är nu elementärt att visa det
Den återstående uppgiften har reducerats till att hitta egenvärdena för en diagonal matris plus en rang-1-korrigering. Innan vi visar hur man gör detta, låt oss förenkla notationen. Vi letar efter egenvärdena för matrisen , där är diagonal med distinkta poster och är vilken vektor som helst som inte är noll poster.
Fallet med en nollpost är enkelt, eftersom om w i är noll, ( di ) är ett egenpar ( är i standardbasen ) av eftersom .
Om är ett egenvärde har vi:
där är motsvarande egenvektor. Nu
Tänk på att är en skalär som inte är noll. Varken eller är noll. Om skulle vara noll, skulle vara en egenvektor för med . Om så var fallet endast innehålla en position som inte är noll eftersom är distinkt diagonal och därför kan den inre produkten inte vara noll trots allt. Därför har vi:
eller skriven som en skalär ekvation,
Denna ekvation är känd som den sekulära ekvationen . Problemet har därför reducerats till att hitta rötterna till den rationella funktion som definieras av den vänstra sidan av denna ekvation.
Alla allmänna egenvärdesalgoritmer måste vara iterativa, och dela-och-härska-algoritmen är inte annorlunda. Att lösa den olinjära sekulära ekvationen kräver en iterativ teknik, såsom Newton-Raphson-metoden . Varje rot kan dock hittas i O (1) iterationer, som var och en kräver floppar (för en -graders rationell funktion), vilket gör kostnaden av den iterativa delen av denna algoritm .
Analys
Som är vanligt för dela och erövra algoritmer kommer vi att använda mastersatsen för dividera-och-härska upprepningar för att analysera löptiden. Kom ihåg att vi ovan angav att vi väljer . Vi kan skriva återfallsrelationen :
I beteckningen för Mastersatsen, och därmed . Tydligen så vi har
Kom ihåg att vi ovan påpekade att reducering av en hermitisk matris till tridiagonal form tar floppar. Detta försämrar körtiden för dela-och-härska-delen, och vid denna tidpunkt är det inte klart vilken fördel dela-och-härska-algoritmen erbjuder jämfört med QR-algoritmen (som också tar Θ ( m 2 floppar för tridiagonala matriser).
Fördelen med dela-och-härska kommer när egenvektorer också behövs. Om så är fallet tar reduktion till tridiagonal form , men den andra delen av algoritmen tar också. För QR-algoritmen med en rimlig målprecision är detta , medan det för divide-and-conquer är . Anledningen till denna förbättring är att i divide-and-hera är delen av algoritmen (multiplicera -matriser) skild från iterationen, medan i QR måste detta ske i varje iterativt steg. Lägger man till de flopparna för minskningen, är den totala förbättringen från till floppar.
Praktisk användning av dela-och-härska-algoritmen har visat att i de flesta realistiska egenvärdeproblem gör algoritmen faktiskt bättre än så här. Anledningen är att matriserna och vektorerna tenderar att vara numeriskt glesa , vilket innebär att de har många poster med värden mindre än flyttalsprecisionen, vilket tillåter numerisk deflation , dvs. dela upp problemet i okopplade delproblem.
Varianter och genomförande
Algoritmen som presenteras här är den enklaste versionen. I många praktiska implementeringar används mer komplicerade rank-1-korrigeringar för att garantera stabilitet; vissa varianter använder till och med rank-2-korrigeringar. [ citat behövs ]
Det finns specialiserade rotsökningstekniker för rationella funktioner som kan göra bättre än Newton-Raphson-metoden när det gäller både prestanda och stabilitet. Dessa kan användas för att förbättra den iterativa delen av dela-och-härska-algoritmen.
Dela-och-härska-algoritmen kan lätt parallelliseras , och linjära algebra- beräkningspaket som LAPACK innehåller parallella implementeringar av hög kvalitet.
- Demmel, James W. (1997), Applied Numerical Linear Algebra , Philadelphia, PA: Society for Industrial and Applied Mathematics , ISBN 0-89871-389-7 , MR 1463942 .
- Cuppen, JJM (1981). "En dela och erövra metod för det symmetriska tridiagonala egenproblemet". Numerisk Mathematik . 36 : 177-195.