Algoritmo de autovalor - Eigenvalue algorithm

Na análise numérica , um dos problemas mais importantes é projetar algoritmos eficientes e estáveis para encontrar os valores próprios de uma matriz . Esses algoritmos de autovalor também podem encontrar autovetores.

Autovalores e autovetores

Dado um n × n matriz quadrada A da reais ou complexos números, um valor próprio λ e seu associado generalizada vector próprio v são um par obedecendo a relação

em que v é diferente de zero um n × um vector de coluna, que é o N × n matriz de identidade , k é um número inteiro positivo, e ambos λ e v são autorizados a ser complexo, mesmo quando A é real. Quando k = 1 , o vetor é chamado simplesmente de autovetor e o par é chamado de autovalor . Nesse caso, A v = λ v . Qualquer autovalor λ de A tem autovetores ordinários associados a ele, pois se k é o menor inteiro tal que ( A - λI ) k v = 0 para um autovetor generalizado v , então ( A - λI ) k −1 v é um autovetor comum . O valor k pode sempre ser considerado menor ou igual a n . Em particular, ( A - λI ) n v = 0 para todos os autovetores generalizados v associados a λ .

Para cada autovalor λ de A , o kernel ker ( A - λI ) consiste em todos os autovetores associados com λ (junto com 0), chamados de autovalor de λ , enquanto o espaço vetorial ker (( A - λI ) n ) consiste em todos autovetores generalizados e é chamado de autovetores generalizados . A multiplicidade geométrica de λ é a dimensão de seu autoespaço. A multiplicidade algébrica de λ é a dimensão de seu autoespaço generalizado. A última terminologia é justificada pela equação

onde det é a função determinante , o λ i são todos os autovalores distintos de A e o α i são as multiplicidades algébricas correspondentes. A função de p A ( z ) é o polinómio característico de um . Portanto, a multiplicidade algébrica é a multiplicidade do autovalor como um zero do polinômio característico. Uma vez que qualquer autovetor também é um autovetor generalizado, a multiplicidade geométrica é menor ou igual à multiplicidade algébrica. As multiplicidades algébricas somam n , o grau do polinômio característico. A equação p A ( z ) = 0 é chamado a equação característica , como as suas raízes são exactamente os valores próprios de uma . Pelo teorema de Cayley-Hamilton , o próprio A obedece à mesma equação: p A ( A ) = 0 . Como consequência, as colunas da matriz devem ser 0 ou autovetores generalizados do autovalor λ j , uma vez que são aniquilados por . Na verdade, o espaço da coluna é o autoespaço generalizado de λ j .

Qualquer coleção de autovetores generalizados de autovalores distintos é linearmente independente, portanto, uma base para todos os C n pode ser escolhida consistindo de autovetores generalizados. Mais particularmente, esta base { v i }n
i = 1
podem ser escolhidos e organizados para que

  • se v i e v j têm o mesmo autovalor, então o mesmo acontece com v k para cada k entre i e j , e
  • se v i não é um autovetor comum, e se λ i é seu autovalor, então ( A - λ i I ) v i = v i −1 (em particular, v 1 deve ser um autovetor comum).

Se esses vetores de base forem colocados como vetores de coluna de uma matriz V = [ v 1 v 2v n ] , então V pode ser usado para converter A em sua forma normal de Jordan :

onde o λ i são os autovalores, β i = 1 if ( A - λ i +1 ) v i +1 = v i e β i = 0 caso contrário.

Mais geralmente, se W for qualquer matriz invertível e λ for um autovalor de A com autovetor generalizado v , então ( W −1 AW - λI ) k W - k v = 0 . Assim, λ é um autovalor de W −1 AW com autovetor generalizado W - k v . Ou seja, matrizes semelhantes têm os mesmos autovalores.

Matrizes normais, hermitianas e simétricas reais

O adjunta M * de uma matriz de complexo M é a transposição do conjugado de M : M * = M T . Uma matriz quadrada A é chamada normal se comuta com seu adjunto: A * A = AA * . Ele é chamado Hermitian se ele é igual ao seu adjunto: A * = A . Todas as matrizes hermitianas são normais. Se A tem apenas elementos reais, então o adjunto é apenas a transposta, e A é hermitiano se e somente se for simétrico . Quando aplicado a vetores de coluna, o adjunto pode ser usado para definir o produto interno canônico em C n : wv = w * v . Matrizes normais, hermitianas e simétricas reais têm várias propriedades úteis:

  • Cada autovetor generalizado de uma matriz normal é um autovetor comum.
  • Qualquer matriz normal é semelhante a uma matriz diagonal, já que sua forma normal de Jordan é diagonal.
  • Autovetores de autovalores distintos de uma matriz normal são ortogonais.
  • O espaço nulo e a imagem (ou espaço da coluna) de uma matriz normal são ortogonais entre si.
  • Para qualquer matriz normal A , C n tem uma base que consiste ortonormal de vectores próprios de Uma . A matriz correspondente de autovetores é unitária .
  • Os autovalores de uma matriz Hermitiana são reais, uma vez que ( λ - λ ) v = ( A * - A ) v = ( A - A ) v = 0 para um autovetor diferente de zero v .
  • Se A for real, há uma base ortonormal para R n consistindo em autovetores de A se e somente se A for simétrico.

É possível que uma matriz real ou complexa tenha todos os autovalores reais sem ser hermitiana. Por exemplo, uma matriz triangular real tem seus autovalores ao longo de sua diagonal, mas em geral não é simétrica.

Número de condição

Qualquer problema de cálculo numérico pode ser visto como a avaliação de alguma função f para alguma entrada x . O número de condição κ ( f , x ) do problema é a razão entre o erro relativo na saída da função e o erro relativo na entrada, e varia com a função e com a entrada. O número da condição descreve como o erro aumenta durante o cálculo. Seu logaritmo de base 10 informa quantos dígitos de precisão a menos existem no resultado do que na entrada. O número da condição é o melhor cenário. Ele reflete a instabilidade embutida no problema, independentemente de como ele é resolvido. Nenhum algoritmo pode produzir resultados mais precisos do que os indicados pelo número da condição, exceto por acaso. No entanto, um algoritmo mal projetado pode produzir resultados significativamente piores. Por exemplo, conforme mencionado abaixo, o problema de encontrar autovalores para matrizes normais é sempre bem condicionado. No entanto, o problema de encontrar as raízes de um polinômio pode ser muito mal condicionado . Assim, algoritmos de autovalor que funcionam encontrando as raízes do polinômio característico podem ser mal condicionados mesmo quando o problema não está.

Para o problema de resolver a equação linear A v = b onde A é invertível, o número de condição κ ( A −1 , b ) é dado por || A || op || A −1 || op , onde || || op é a norma do operador subordinada à norma euclidiana normal em C n . Uma vez que este número é independente de b e é o mesmo para um e uma -1 , ele é normalmente chamado apenas o número de condição κ ( A ) da matriz de um . Este valor κ ( A ) é também o valor absoluto da razão entre o maior autovalor de A e o menor. Se A for unitário , então || A || op = || A −1 || op = 1 , então κ ( A ) = 1 . Para matrizes gerais, a norma do operador costuma ser difícil de calcular. Por esse motivo, outras normas de matriz são comumente usadas para estimar o número da condição.

Para o problema de valores próprios, Bauer e Fike provou que se λ é um valor próprio para um diagonalizáveis n × n matriz A com vector próprio da matriz V , em seguida, o erro absoluto no cálculo λ é delimitada pelo produto de κ ( V ) e o erro absoluto em Um . Como resultado , o número da condição para encontrar λ é κ ( λ , A ) = κ ( V ) = || V || op || V −1 || op . Se A é normal, então V é unitário e κ ( λ , A ) = 1 . Portanto, o problema dos autovalores para todas as matrizes normais é bem condicionado.

O número de condição para o problema de encontrar o autoespaço de uma matriz normal de um que corresponde a um valor próprio λ tem sido mostrado a ser inversamente proporcional à distância mínima entre λ e os outros valores próprios distintos de A . Em particular, o problema do espaço próprio para matrizes normais é bem condicionado para valores próprios isolados. Quando os autovalores não são isolados, o melhor que se pode esperar é identificar a amplitude de todos os autovetores de autovalores próximos.

Algoritmos

Qualquer polinômio mônico é o polinômio característico de sua matriz companheira . Portanto, um algoritmo geral para encontrar autovalores também pode ser usado para encontrar as raízes de polinômios. O teorema de Abel-Ruffini mostra que qualquer algoritmo para dimensões maiores que 4 deve ser infinito ou envolver funções de maior complexidade do que operações aritméticas elementares e potências fracionárias. Por essa razão, algoritmos que calculam exatamente os valores próprios em um número finito de etapas existem apenas para algumas classes especiais de matrizes. Para matrizes gerais, os algoritmos são iterativos , produzindo melhores soluções aproximadas a cada iteração.

Alguns algoritmos produzem cada autovalor, outros produzem alguns, ou apenas um. No entanto, mesmo os últimos algoritmos podem ser usados ​​para encontrar todos os valores próprios. Uma vez que um valor próprio λ de uma matriz A tenha sido identificado, ele pode ser usado para direcionar o algoritmo para uma solução diferente na próxima vez ou para reduzir o problema a um que não tenha mais λ como solução.

O redirecionamento é geralmente realizado por deslocamento: substituindo A por A - μI para alguma constante μ . O constatada autovalor de A - μI deve ter μ adicionado de volta para obter um valor próprio para A . Por exemplo, para iteração de potência , μ = λ . A iteração de potência encontra o maior autovalor em valor absoluto, portanto, mesmo quando λ é apenas um autovalor aproximado, é improvável que a iteração de potência o encontre uma segunda vez. Por outro lado, os métodos baseados em iteração inversa encontram o valor próprio mais baixo, então μ é escolhido bem longe de λ e esperançosamente mais perto de algum outro valor próprio.

A redução pode ser realizada restringindo A ao espaço da coluna da matriz A - λI , que A carrega para si. Como A - λI é singular, o espaço da coluna é de menor dimensão. O algoritmo de autovalor pode então ser aplicado à matriz restrita. Este processo pode ser repetido até que todos os autovalores sejam encontrados.

Se um algoritmo de autovalor não produz autovetores, uma prática comum é usar um algoritmo baseado em iteração inversa com μ definido para uma aproximação próxima ao autovalor. Isso irá convergir rapidamente para o autovetor do autovalor mais próximo de μ . Para matrizes pequenas, uma alternativa é olhar para o espaço da coluna do produto de A - λ ' I para cada um dos outros autovalores λ ' .

Uma fórmula para a norma de componentes de autovetores unitários de matrizes normais foi descoberta por Robert Thompson em 1966 e redescoberta independentemente por vários outros. Se A é uma matriz normal com autovalores λ i ( A ) e autovetores unitários correspondentes v i cujas entradas de componente são v i, j , seja A j a matriz obtida removendo a i -ésima linha e coluna de A , e seja λ k ( A j ) é seu k -ésimo autovalor. Então

Se forem os polinômios característicos de e , a fórmula pode ser reescrita como

assumindo que a derivada não é zero em .

Hessenberg e matrizes tridiagonais

Como os autovalores de uma matriz triangular são seus elementos diagonais, para matrizes gerais não existe um método finito como a eliminação gaussiana para converter uma matriz para a forma triangular enquanto preserva os autovalores. Mas é possível chegar a algo próximo ao triangular. Uma matriz de Hessenberg superior é uma matriz quadrada para a qual todas as entradas abaixo da subdiagonal são zero. Uma matriz de Hessenberg inferior é aquela em que todas as entradas acima da superdiagonal são zero. Matrizes que são Hessenberg superior e inferior são tridiagonais . Hessenberg e matrizes tridiagonais são os pontos de partida para muitos algoritmos de autovalor porque as entradas zero reduzem a complexidade do problema. Vários métodos são comumente usados ​​para converter uma matriz geral em uma matriz de Hessenberg com os mesmos valores próprios. Se a matriz original era simétrica ou Hermitiana, a matriz resultante será tridiagonal.

Quando apenas autovalores são necessários, não há necessidade de calcular a matriz de similaridade, pois a matriz transformada possui os mesmos autovalores. Se os autovetores também forem necessários, a matriz de similaridade pode ser necessária para transformar os autovetores da matriz de Hessenberg de volta aos autovetores da matriz original.

Método Aplica-se a Produz Custo sem matriz de similaridade Custo com matriz de similaridade Descrição
Transformações de chefes de família Em geral Hessenberg 2 n 33 + O ( n 2 ) 4 n 33 + O ( n 2 ) Reflita cada coluna através de um subespaço para zerar suas entradas inferiores.
Rotações de Givens Em geral Hessenberg 4 n 33 + O ( n 2 ) Aplique rotações planas para zerar entradas individuais. As rotações são ordenadas de forma que as últimas não façam com que as entradas de zero se tornem diferentes de zero novamente.
Iteração de Arnoldi Em geral Hessenberg Execute a ortogonalização de Gram-Schmidt em subespaços de Krylov.
Algoritmo Lanczos Hermitiano Tridiagonal Iteração de Arnoldi para matrizes Hermitianas, com atalhos.

Para problemas de autovalores tridiagonais simétricos, todos os autovalores (sem autovetores) podem ser calculados numericamente no tempo O (n log (n)), usando bissecção no polinômio característico.

Algoritmos iterativos

Algoritmos iterativos resolvem o problema dos autovalores produzindo sequências que convergem para os autovalores. Alguns algoritmos também produzem sequências de vetores que convergem para os autovetores. Mais comumente, as sequências de autovalores são expressas como sequências de matrizes semelhantes que convergem para uma forma triangular ou diagonal, permitindo que os autovalores sejam lidos facilmente. As sequências de autovetores são expressas como as matrizes de similaridade correspondentes.

Método Aplica-se a Produz Custo por etapa Convergência Descrição
Algoritmo Lanczos Hermitiano m maiores / menores pares próprios
Iteração de energia em geral eigenpair com maior valor O ( n 2 ) linear Aplica repetidamente a matriz a um vetor inicial arbitrário e renormaliza.
Iteração inversa em geral eigenpair com valor mais próximo de μ linear Iteração de potência para ( A - μI ) −1
Iteração do quociente de Rayleigh Hermitiano qualquer eigenpair cúbico Iteração de potência para ( A - μ i I ) −1 , onde μ i para cada iteração é o quociente de Rayleigh da iteração anterior.
Iteração inversa pré-condicionada ou algoritmo LOBPCG positivo-definido real simétrico eigenpair com valor mais próximo de μ Iteração inversa usando um pré - condicionador (um inverso aproximado de A ).
Método de bissecção tridiagonal simétrica real qualquer autovalor linear Usa o método de bissecção para encontrar raízes do polinômio característico, apoiado pela sequência de Sturm.
Iteração de Laguerre tridiagonal simétrica real qualquer autovalor cúbico Usa o método de Laguerre para encontrar raízes do polinômio característico, apoiado pela sequência de Sturm.
Algoritmo QR Hessenberg todos os valores próprios O ( n 2 ) cúbico Fatores A = QR , onde Q é ortogonal e R é triangular, então aplica a próxima iteração a RQ .
todos os pares próprios 6 n 3 + O ( n 2 )
Algoritmo de autovalor de Jacobi simétrico real todos os valores próprios O ( n 3 ) quadrático Usa rotações de Givens para tentar limpar todas as entradas fora da diagonal. Isso falha, mas fortalece a diagonal.
Dividir e conquistar Tridiagonal hermitiana todos os valores próprios O ( n 2 ) Divide a matriz em submatrizes que são diagonalizadas e depois recombinadas.
todos os pares próprios ( 43 ) n 3 + O ( n 2 )
Método de homotopia tridiagonal simétrica real todos os pares próprios O ( n 2 ) Constrói um caminho de homotopia computável a partir de um problema de autovalor diagonal.
Método de espectro dobrado simétrico real eigenpair com valor mais próximo de μ Iteração inversa pré-condicionada aplicada a ( A - μI ) 2
Algoritmo MRRR tridiagonal simétrica real alguns ou todos os pares próprios O ( n 2 ) "Representações múltiplas relativamente robustas" - executa a iteração inversa em uma decomposição LDL T da matriz deslocada.

Cálculo direto

Embora não haja um algoritmo simples para calcular diretamente os valores próprios para matrizes gerais, existem várias classes especiais de matrizes onde os valores próprios podem ser calculados diretamente. Esses incluem:

Matrizes triangulares

Como o determinante de uma matriz triangular é o produto de suas entradas diagonais, se T for triangular, então . Assim, os autovalores de T são suas entradas diagonais.

Equações polinomiais fatoráveis

Se p for qualquer polinômio ep ( A ) = 0, então os autovalores de A também satisfazem a mesma equação. Se p tiver uma fatoração conhecida, então os autovalores de A estão entre suas raízes.

Por exemplo, uma projecção é uma matriz quadrada P satisfazendo P 2 = P . As raízes da equação polinomial escalar correspondente, λ 2 = λ , são 0 e 1. Assim, qualquer projeção tem 0 e 1 para seus autovalores. A multiplicidade de 0 como um valor próprio, é a nulidade de P , enquanto que a multiplicidade de 1 é o posto de P .

Outro exemplo é uma matriz A que satisfaz A 2 = α 2 I para algum escalar α . Os valores próprios devem ser ± α . Os operadores de projeção

satisfazer

e

Os espaços de coluna de P + e P - são os autoespaços de A correspondendo a + α e - α , respectivamente.

Matrizes 2 × 2

Para as dimensões 2 a 4, existem fórmulas envolvendo radicais que podem ser usadas para encontrar os valores próprios. Embora seja uma prática comum para matrizes 2 × 2 e 3 × 3, para matrizes 4 × 4, a complexidade crescente das fórmulas de raiz torna essa abordagem menos atraente.

Para a matriz 2 × 2

o polinômio característico é

Assim, os valores próprios podem ser encontrados usando a fórmula quadrática :

Definindo como a distância entre os dois valores próprios, é fácil calcular

com fórmulas similares para c e d . Disto se segue que o cálculo é bem condicionado se os autovalores forem isolados.

Os autovetores podem ser encontrados explorando o teorema de Cayley-Hamilton . Se λ 1 , λ 2 são os autovalores, então ( A - λ 1 I ) ( A - λ 2 I ) = ( A - λ 2 I ) ( A - λ 1 I ) = 0 , então as colunas de ( A - λ 2 I ) são aniquilados por ( A - λ 1 I ) e vice-versa. Assumindo que nenhuma matriz seja zero, as colunas de cada uma devem incluir autovetores para o outro autovalor. (Se qualquer uma das matrizes for zero, A é um múltiplo da identidade e qualquer vetor diferente de zero é um autovetor.)

Por exemplo, suponha

então tr ( A ) = 4 - 3 = 1 e det ( A ) = 4 (−3) - 3 (−2) = −6 , então a equação característica é

e os valores próprios são 3 e -2. Agora,

Em ambas as matrizes, as colunas são múltiplos uma da outra, portanto, qualquer uma das colunas pode ser usada. Assim, (1, -2) pode ser tomado como um vector próprio associado com o valor próprio -2, e (3, -1) como um vector próprio associado com o valor próprio 3, como pode ser verificado por multiplicando-os por um .

Matrizes 3 × 3

A equação característica de uma matriz simétrica 3 × 3, A , é:

Esta equação pode ser resolvida usando os métodos de Cardano ou Lagrange , mas uma mudança afim para A simplificará consideravelmente a expressão e conduzirá diretamente a uma solução trigonométrica . Se A = pB + Qi , em seguida, um e B têm os mesmos vectores próprios, e β é um valor próprio de B , se e somente se α = + q é um valor próprio de Uma . Deixando e , dá

A substituição β = 2cos θ e alguma simplificação usando a identidade cos 3 θ = 4cos 3 θ - 3cos θ reduz a equação para cos 3 θ = det ( B ) / 2 . Desse modo

Se det ( B ) for complexo ou maior que 2 em valor absoluto, o arco-cosseno deve ser considerado ao longo do mesmo ramo para todos os três valores de k . Esse problema não surge quando A é real e simétrico, resultando em um algoritmo simples:

% Given a real symmetric 3x3 matrix A, compute the eigenvalues
% Note that acos and cos operate on angles in radians

p1 = A(1,2)^2 + A(1,3)^2 + A(2,3)^2
if (p1 == 0) 
   % A is diagonal.
   eig1 = A(1,1)
   eig2 = A(2,2)
   eig3 = A(3,3)
else
   q = trace(A)/3               % trace(A) is the sum of all diagonal values
   p2 = (A(1,1) - q)^2 + (A(2,2) - q)^2 + (A(3,3) - q)^2 + 2 * p1
   p = sqrt(p2 / 6)
   B = (1 / p) * (A - q * I)    % I is the identity matrix
   r = det(B) / 2

   % In exact arithmetic for a symmetric matrix  -1 <= r <= 1
   % but computation error can leave it slightly outside this range.
   if (r <= -1) 
      phi = pi / 3
   elseif (r >= 1)
      phi = 0
   else
      phi = acos(r) / 3
   end

   % the eigenvalues satisfy eig3 <= eig2 <= eig1
   eig1 = q + 2 * p * cos(phi)
   eig3 = q + 2 * p * cos(phi + (2*pi/3))
   eig2 = 3 * q - eig1 - eig3     % since trace(A) = eig1 + eig2 + eig3
end

Mais uma vez, os autovetores de A podem ser obtidos recorrendo ao teorema de Cayley-Hamilton . Se α 1 , α 2 , α 3 são autovalores distintos de A , então ( A - α 1 I ) ( A - α 2 I ) ( A - α 3 I ) = 0 . Assim, as colunas do produto de quaisquer duas dessas matrizes conterão um autovetor para o terceiro autovalor. No entanto, se α 3 = α 1 , então ( A - α 1 I ) 2 ( A - α 2 I ) = 0 e ( A - α 2 I ) ( A - α 1 I ) 2 = 0 . Assim, o autoespaço generalizado de α 1 é medido pelas colunas de A - α 2 I enquanto o autoespaço ordinário é medido pelas colunas de ( A - α 1 I ) ( A - α 2 I ) . O autoespaço ordinário de α 2 é medido pelas colunas de ( A - α 1 I ) 2 .

Por exemplo, deixe

A equação característica é

com autovalores 1 (de multiplicidade 2) e -1. Calculando,

e

Assim (−4, −4, 4) é um autovetor para −1, e (4, 2, −2) é um autovetor para 1. (2, 3, −1) e (6, 5, −3) são ambos os vectores próprios generalizadas associados com um, qualquer um dos quais pode ser combinado com (-4, -4, 4) e (4, 2, -2) para formar uma base de vectores próprios generalizadas de um . Uma vez encontrados, os autovetores podem ser normalizados, se necessário.

Autovetores de matrizes 3 × 3 normais

Se uma matriz 3 × 3 for normal, o produto vetorial pode ser usado para encontrar autovetores. Se for um valor próprio de , então o espaço nulo de é perpendicular ao seu espaço de coluna. O produto cruzado de duas colunas independentes de estará no espaço nulo. Ou seja, será um autovetor associado a . Como o espaço da coluna é bidimensional neste caso, o eigenspace deve ser unidimensional, de modo que qualquer outro autovetor será paralelo a ele.

Se não contiver duas colunas independentes, mas não for 0 , o produto vetorial ainda pode ser usado. Nesse caso, é um autovalor de multiplicidade 2, então qualquer vetor perpendicular ao espaço da coluna será um autovetor. Suponha que seja uma coluna diferente de zero de . Escolha um vetor arbitrário que não seja paralelo . Então, e será perpendicular a e, portanto, serão eigenvetores de .

Isso não funciona quando não é normal, pois o espaço nulo e o espaço da coluna não precisam ser perpendiculares para tais matrizes.

Veja também

Notas

Referências

Leitura adicional