Método das potências

Fonte: testwiki
Revisão em 22h51min de 30 de maio de 2022 por imported>Ffffrr (growthexperiments-addlink-summary-summary:3|0|0)
(dif) ← Revisão anterior | Revisão atual (dif) | Revisão seguinte → (dif)
Saltar para a navegação Saltar para a pesquisa

Em matemática, o método das potências é um algoritmo para calcular autovalores: dada uma matriz A, o algoritmo irá produzir um número λ (o autovalor) e um vetor v não nulo (o autovetor), tal que Av = λv. O algoritmo também é conhecido como a iteração de Von Mises.[1]

O método da potência é um algoritmo muito simples. Ele não computa a decomposição matricial, e portanto pode ser usada quando A é uma grande matriz esparsa. No entanto, ele irá encontrar apenas um autovalor (aquele com o maior módulo) e poderá convergir lentamente.

O método

O método da potência inicia com um vetor b0, que pode ser uma aproximação para o autovalor dominante ou um vetor aleatório. O método é descrito pela iteração

bk+1=AbkAbk.

Assim, a cada iteração, o vetor bk é multiplicado pela matriz A e normalizado.

De acordo com as premissas:

  • A tem um autovalor que é estritamente maior em magnitude que os outros autovalores;
  • O vetor inicial b0 tem um componente não-nulo na direção de um autovetor associado com o autovalor dominante.

Assim:

  • A sub-série (bk) converge a um autovetor associado com o autovalor dominante.

Note que a série (bk) não necessariamente converge. Pode ser mostrado que:
bk=eiϕkv1+rk onde: v1 é um autovetor associado ao autovalor dominante, e rk0. A presença do termo eiϕk implica que (bk) não irá convergir a menos que eiϕk=1. Sob os dois pressupostos acima, a série (μk) definida por: μk=bk*Abkbk*bk converge para o autovalor dominante.

Isso pode ser executado como uma simulação com o seguinte algoritmo:

for each(''simulation'') {
    // calcular o produto de matriz-por-vetor Ab
    for(i=0; i<n; i++) {
         tmp[i] = 0;
         for (j=0; j<n; j++)
              tmp[i] += A[i][j] * b[j]; // produto escalar de col(A) com b
    }

    // calcular o comprimento do vetor resultante
    norm_sq=0;
    for (k=0; k<n; k++)
         norm_sq += tmp[k]*tmp[k]; 
    norm = sqrt(norm_sq);

    // normalizar b para um vetor unitário para a próxima iteração
    b = tmp/norm;
}

O valor da norma converge para o autovalor dominante, e o vetor b para o autovetor associado.

(Nota: O código acima assume A e b real. Para lidar com valores complexos; A[i][j] se torna conj(A[i][j]), e tmp[k]*tmp[k] se torna conj(tmp[k])*tmp[k])

Esse algoritmo é utilizado para calcular coisas tais como o Google en:PageRank.

O método também pode ser usado para calcular o raio espectral da matriz pelo cálculo do quociente de Rayleigh:

bkAbkbkbk=bk+1bkbkbk.

Análise

Decompondo A pela forma canônica de Jordan: A=VJV1, onde a primeira coluna de V é um autovetor de A correspondente ao autovalor dominante de λ1. Como o autovalor dominante de A é único, o primeiro bloco de Jordan de J é a matriz 1x1 [λ1], onde λ1 é o maior autovalor de A em magnitude. O vetor inicial b0 pode ser escrito como uma combinação linear das colunas de V:

b0=c1v1+c2v2++cnvn.

Pela hipótese, b0 tem um componente não-nulo na direção do autovalor dominante , assim c10.

A útil relação de recorrência computacional para bk+1 pode ser reescrita como:

bk+1=AbkAbk=Ak+1b0Ak+1b0,

onde a expressão:

Ak+1b0Ak+1b0

é mais propícia a seguinte análise.


bk=Akb0Akb0=(VJV1)kb0(VJV1)kb0=VJkV1b0VJkV1b0=VJkV1(c1v1+c2v2++cnvn)VJkV1(c1v1+c2v2++cnvn)=VJk(c1e1+c2e2++cnen)VJk(c1e1+c2e2++cnen)=(λ1|λ1|)kc1|c1|v1+1c1V(1λ1J)k(c2e2++cnen)v1+1c1V(1λ1J)k(c2e2++cnen)

A expressão acima simplifica como k k
(1λ1J)k=[[1](1λ1J2)k(1λ1Jm)k][100]

enquanto k.

O limite vem do fato de que o autovalor de 1λ1Ji ser menor que 1 em magnitude, então

(1λ1Ji)k0 enquanto k
.

Segue que:
1c1V(1λ1J)k(c2e2++cnen)0 enquanto k

Usando esse fato, bk pode ser escrito numa forma de enfatizar sua relação com v1 quando k é grande:
bk=(λ1|λ1|)kc1|c1|v1+1c1V(1λ1J)k(c2e2++cnen)v1+1c1V(1λ1J)k(c2e2++cnen)=eiϕkc1|c1|v1+rk

onde eiϕk=(λ1/|λ1|)k e rk0 enquanto k

A série (bk) é delimitada, para que contenha uma sub-série convergente. Note que o autovetor correspondente ao autovalor dominante só é único até um escalar, assim, embora a série (bk) possa não convergir, bk é quase um autovetor de A para grandes k.

Alternativamente, se A é uma matriz diagonalizável, então o seguinte prova o mesmo resultado: Seja λ1, λ2, …, λm os m autovalores de A e seja v1, v2, …, vm os correspondentes autovetores. Suponha que λ1 é o autovalor dominante, assim |λ1|>|λj| para j>1.

O vetor inicial b0 pode ser escrito como:

b0=c1v1+c2v2++cmvm.

Se b0 é escolhido aleatoriamente (com probabilidade uniforme), então c1 ≠ 0 com probabilidade 1. Agora,

Akb0=c1Akv1+c2Akv2++cmAkvm=c1λ1kv1+c2λ2kv2++cmλmkvm=c1λ1k(v1+c2c1(λ2λ1)kv2++cmc1(λmλ1)kvm).

A expressão entre parênteses converge para v1 porque |λj/λ1|<1 para j>1. Por outro lado, nós temos

bk=Akb0Akb0.

Por tanto, bk converge para (um múltiplo de) o autovetor v1. A convergência é geométrica com taxa

|λ2λ1|,

onde λ2 indica o segundo autovalor dominante. Assim, o método converge lentamente, se houver um autovalor próximo em magnitude ao autovalor dominante.

Aplicações

Apesar do método das potências aproximar apenas um autovalor de uma matriz, continua sento usado para certos problemas computacionais. Por exemplo, a Google o usa para calcular o rank da página de documentos do seu sistema de pesquisa.[2] Para matrizes que são bem condicionadas e esparsas como the Web matrix, o método das potências pode ser mais eficiente do que outros métodos para encontrar autovetores dominantes.

Alguns dos mais avançados algoritmos para autovalores pode ser entendido como variações do método das potências. Por exemplo, o método da potência inverso aplica a iteração a matriz A1. Outros algoritmos olham para todo o sub-espaço gerado pelos vetores bk.. Esse subespaço é conhecido como the en:Krylov subspace. Pode ser computado pela iteração de Arnoldi ou a iteração de Lanczos. Outra variação do método de potências que simultaneamente nos fornece n autovalores e autofunções, bem como acelera a convergência para |λn+1/λ1|,, é "Multiple extremal eigenpairs by the power method" no Journal of Computational Physics Volume 227 Issue 19, October, 2008, Pages 8508-8522 (Também veja o pdf abaixo para Los Alamos National Laboratory report LA-UR-07-4046).

Predefinição:Referências

Ligações externas

  • Power method, part of lecture notes on numerical linear algebra by E. Bruce Pitman, State University of New York.
  • Module for the Power Method
  • [1] Los Alamos report LA-UR-07-4046 ""Multiple extremal eigenpairs by the power method"
  1. R. von Mises and H. Pollaczek-Geiringer, Praktische Verfahren der Gleichungsauflösung, ZAMM - Zeitschrift für Angewandte Mathematik und Mechanik 9, 152-164 (1929).
  2. Predefinição:Citar periódico