Algoritmo QR

O algoritmo QR é um método numérico para calcular todos os autovalores e possivelmente os autovetores de uma matriz quadrada . O método QR ou iteração QR, também conhecido como método QR, é baseado na decomposição QR e foi introduzido em 1961–1962 independentemente um do outro por John GF Francis e Vera Nikolajewna Kublanowskaja . Um precursor foi o algoritmo LR de Heinz Rutishauser (1958), mas é menos estável e é baseado na decomposição LR . Freqüentemente, as iterações do algoritmo QR convergem para a forma Schur da matriz. O método original é bastante complexo e, portanto, impraticável - mesmo nos computadores de hoje - para matrizes com centenas de milhares de linhas e colunas.

Variantes derivadas como o método Multishift de Z. Bai e James Demmel 1989 e a variante numericamente mais estável de K. Braman, R. Byers e R. Mathias 2002 têm tempos de execução práticos que são cúbicos no tamanho da matriz. O último método é implementado na biblioteca de software numérica LAPACK , que por sua vez é usada em muitos sistemas de álgebra computacional (CAS) para os algoritmos de matriz numérica.

Descrição do algoritmo QR

Objetivo do processo de cálculo

Partindo de uma matriz real ou complexa ou uma sequência de matrizes ortogonais ou unitárias é determinado de modo que a sequência da matriz recursiva converge amplamente para uma matriz triangular superior. Uma vez que todas as transformações na recursão são transformações de similaridade, todas as matrizes da sequência da matriz têm os mesmos valores próprios com os mesmos múltiplos.

Se uma matriz triangular superior for alcançada no valor limite, uma forma de Schur de , os autovalores podem ser lidos a partir dos elementos diagonais. No caso de uma matriz real com transformações ortogonais, entretanto, também podem haver autovalores complexos. Então, o resultado do método é uma matriz de triângulo de bloco superior, cujos blocos diagonais têm o tamanho dos autovalores reais ou o tamanho dos autovalores complexos. O bloco diagonal da extensão rotacional correspondente corresponde a um autovalor e seu autovalor conjugado complexo .

Esquema geral do procedimento

A partir de uma matriz (ou ), uma sequência de matrizes é determinada de acordo com a seguinte regra:

  1. para fazer
  2. Encontre um polinômio e avalie-o na matriz .
  3. Calcule a decomposição QR de .
  4. Calcule a nova iteração: .
  5. fim para

As variantes com turnos (implícitos) e vários turnos também podem ser exibidos e analisados ​​nesta forma geral.

A função de matriz é freqüentemente um polinômio (aqui uma combinação linear de potências de matriz) com coeficientes reais (ou complexos). No caso mais simples, um polinômio linear é escolhido, que então tem a forma . Neste caso, o algoritmo é simplificado para a versão clássica (com deslocamento único):

  1. para fazer
  2. Encontre um número apropriado
  3. Calcule a decomposição QR de
  4. Calcule a nova iteração:
  5. fim para

Em cada iteração definida, o método é consistente com a correspondência de método de potência estendida em subespaços (aqui o espaço vetorial completo) .

O polinômio que controla a decomposição QR pode ser corrigido desde o início ou adaptado dinamicamente à matriz atual em cada etapa de iteração . Existem também tentativas de uso para funções de matriz racional, i. H. Funções da forma com polinômios e .

deflação

Se for descoberto em uma etapa de iteração que um bloco inferior esquerdo das colunas e suas linhas cai abaixo de um limite predeterminado nas quantidades de todos os seus componentes, o método é continuado nos dois sub-blocos quadrados diagonais das linhas / colunas e separadamente. Se as matrizes resultantes da divisão forem suficientemente pequenas, a determinação dos valores próprios pode, e. B. ser encerrado calculando o polinômio característico e seus zeros.

Transformação para a forma Hessenberg

O objetivo do algoritmo QR é criar uma forma de triângulo superior, ou uma forma de triângulo de bloco, na qual os blocos do tamanho correspondem a autovalores complexos. Isso pode ser feito quase de maneira simples por uma transformação de similaridade para a forma de Hessenberg , i. H. em uma matriz com apenas uma diagonal inferior secundária (não desaparecendo de forma idêntica).

  • Sentar-se
  • para k = 1 a n-1 faça
  1. Forme o segmento da coluna
  2. Encontre a reflexão de Householder que mapeia para o primeiro vetor de base canônica,
  3. Use a matriz de bloco para substituir por uma matriz semelhante .
  • Observe a matriz de transformação geral .
  • está agora na forma de Hessenberg.

A forma de Hessenberg torna mais fácil determinar os polinômios característicos de matrizes parciais . A forma de Hessenberg de uma matriz simétrica é uma forma tridiagonal , o que acelera significativamente outros cálculos.

Além disso, a forma de Hessenberg é obtida em todas as etapas do algoritmo QR. A base para isso é a aritmética de matrizes triangulares generalizadas nas quais todas as entradas abaixo de uma diagonal secundária inferior desaparecem. Uma matriz de Hessenberg é, portanto, uma matriz triangular generalizada com uma diagonal secundária. Com a multiplicação, os números das diagonais secundárias que não desaparecem se somam; com a adição, o número maior geralmente é retido.

Portanto, como a matriz ortogonal, eles têm o número de diagonais secundárias inferiores. Bem, por causa de , também se aplica

,

e o último produto também tem diagonais secundárias. Em geral, isso só é possível se tiver exatamente uma diagonal secundária, ou seja, estiver novamente na forma de Hessenberg. Da decomposição de em fatores lineares, segue-se (veja abaixo) que este é sempre o caso.

Com base nisso, pode-se mostrar (Francis 1962 segundo Bai / Demmel) que a primeira coluna de , que também é proporcional à primeira coluna de , determina completamente a matriz subsequente . Mais precisamente, uma matriz ortogonal cuja primeira coluna é proporcional a é criada trazendo a matriz transformada de volta à forma de Hessenberg. Uma vez que apenas os componentes das linhas diferem de zero em, uma modificação da matriz de identidade pode estar no bloco superior esquerdo , com a .

Variantes do algoritmo QR

Iteração QR simples

Ele é eleito. O método pode ser fornecido resumidamente como decomposição QR seguida pela multiplicação na ordem inversa. Este procedimento é a generalização direta do método das potências simultâneas para determinar os primeiros autovalores de uma matriz. Esta conexão é derivada da iteração do subespaço . Um método de potência inversa simultânea também é executado indiretamente.

Algoritmo QR com mudanças simples

Está definido. Isso significa que o método também pode ser exibido como uma decomposição QR seguida pela multiplicação corrigida para o deslocamento . Normalmente, é feita uma tentativa de aproximar o menor autovalor com o deslocamento . O último elemento diagonal pode ser selecionado para isso. A iteração QR simples resulta da definição de todos os turnos para zero.

Tem assim deve formulário Hessenberg como um produto de uma matriz e uma matriz sem diagonais secundárias também têm forma Hessenberg. O mesmo, portanto, também se aplica a . Se o algoritmo QR for colocado na forma de Hessenberg na preparação , isso será mantido em todo o algoritmo.

Mudanças simples para matrizes simétricas

Uma matriz real simétrica possui apenas autovalores reais. A simetria é preservada em todos eles durante o algoritmo QR . Para matrizes simétricas, Wilkinson (1965) sugeriu que o valor próprio da submatriz inferior direita

do que escolher uma mudança que está mais perto . Wilkinson mostrou que a sequência da matriz determinada dessa forma converge para uma matriz diagonal cujos elementos da diagonal são os autovalores de . A velocidade de convergência é quadrática.

Algoritmo QR com turnos duplos

Um par de mudanças simples pode ser combinado em uma etapa de iteração. Como consequência, isso significa que deslocamentos complexos podem ser dispensados ​​para matrizes reais. Na notação dada acima é

uma decomposição QR para o polinômio quadrático , avaliado em . Os coeficientes deste polinômio são reais mesmo para um par conjugado de deslocamentos complexos. Assim, autovalores complexos de matrizes reais também podem ser aproximados sem que números complexos apareçam no cálculo.

Uma escolha comum para este deslocamento duplo consiste nos valores próprios da submatriz inferior direita , ou seja, H. o polinômio quadrático é a característica deste bloco,

.

Algoritmo QR com vários turnos

É especificado um número maior, mas significativamente menor do que o tamanho da matriz . O polinômio pode ser escolhido como o polinômio característico da submatriz quadrática inferior direita da matriz atual . Outra estratégia são os autovalores do mais baixo para determinar -Teilmatriz e a quantidade que os menores autovalores selecionam entre eles. Com eles, uma decomposição QR de

e

certamente.

Com um método multishift, muitas vezes consegue-se que os componentes do bloco inferior esquerdo se tornem pequenos, particularmente rapidamente na sequência das matrizes iteradas, dividindo assim o problema dos autovalores.

Iteração multishift implícita

Combinar vários turnos na forma geral consome muito tempo. Como mencionado acima, o esforço pode ser reduzido produzindo a forma de Hessenberg em uma etapa preparatória . Uma vez que cada etapa multishift pode ser composta de turnos individuais (mesmo complexos), a forma de Hessenberg é mantida em todo o algoritmo.

Isso permite que o algoritmo QR seja convertido em um algoritmo de "perseguição de protuberância" , que cria uma depressão na forma de Hessenberg na extremidade superior da diagonal e, em seguida, "persegue" na diagonal e para fora da matriz na extremidade inferior .

  1. para fazer
  2. Calcule o polinômio de acordo com uma das variantes fornecidas,
  3. Encontre o vetor .
  4. Encontre um reflexo do primeiro vetor unitário. Uma vez que apenas os primeiros componentes não desaparecem, esta reflexão tem uma forma de bloco simples.
  5. Forme a matriz e transforme-a para que fique na forma de Hessenberg novamente.
  6. fim para

Se os reflexos domésticos forem colocados juntos , eles terão uma forma diagonal em bloco .

Notas sobre a funcionalidade

Transformações de similaridade

As matrizes calculadas no algoritmo QR são unitariamente semelhantes entre si, uma vez que devido a

se aplica. Isso significa que todas as matrizes têm os mesmos autovalores (contados com a multiplicidade algébrica e geométrica).

Escolha de turnos, convergência

Uma escolha simples, mas não muito eficaz, é escolher turnos iguais a zero. As iterações do algoritmo resultante, o algoritmo QR em sua forma básica, convergem parcialmente, se todos os autovalores diferirem em seu valor absoluto, para uma matriz triangular superior com os autovalores na diagonal. Convergência parcial aqui significa que os elementos do triângulo inferior vão em direção a zero e os elementos diagonais em direção aos autovalores. Portanto, nada é dito sobre os elementos do triângulo superior .

Se os deslocamentos forem selecionados como o elemento da matriz na parte inferior direita da iteração atual, ou seja , o algoritmo converge de forma quadrada ou mesmo cúbica sob circunstâncias adequadas. Essa mudança é conhecida como mudança de quociente de Rayleigh porque está relacionada a um quociente de Rayleigh por meio da iteração inversa .

Ao calcular em real ( ), gostaria de calcular a forma Schur real e ainda ser capaz de trabalhar com autovalores complexos conjugados. Existem várias estratégias de mudança para isso.

Uma extensão das mudanças simples é a mudança de Wilkinson em homenagem a James Hardy Wilkinson . Para a mudança de Wilkinson, o valor próprio mais próximo do último elemento da matriz torna-se a última matriz de subseção principal

usava.

O algoritmo QR como uma extensão do método de potência

Para a análise do algoritmo, os efeitos de matriz adicionais dos produtos são acumulados e , definido. Os produtos de matrizes ortogonais ou unitárias são novamente matrizes ortogonais ou unitárias, e os produtos de matrizes triangulares superiores direitas são novamente matrizes triangulares superiores direitas. As matrizes da iteração QR resultam de transformações de similaridade , porque

.

Isso leva a decomposições QR dos poderes de :

No decorrer do algoritmo, as decomposições QR das potências da matriz são determinadas implicitamente . Devido à forma dessas decomposições, é verdade que, para cada uma, as primeiras colunas da matriz abrangem o mesmo subespaço que as primeiras colunas da matriz ; além disso, as colunas são ortonormais entre si. No entanto, essa é exatamente a situação após a -ésima etapa de uma iteração de potência simultânea. Os elementos diagonais de são as aproximações dos autovalores de . Portanto, as propriedades de convergência da iteração de energia podem ser transportadas:

O algoritmo QR simples converge apenas se todos os autovalores diferirem uns dos outros em seus valores. São os autovalores após

ordenado, a velocidade de convergência é linear com um fator de contração que corresponde ao mínimo dos quocientes .

Em particular para matrizes reais, este algoritmo só pode convergir se todos os autovalores forem reais (visto que, de outra forma, pares conjugados complexos existiriam com a mesma quantidade). Esta situação é dada para todas as matrizes simétricas.

O algoritmo QR como uma iteração simultânea de potência inversa

Se for invertível, vale para transpor (para matrizes complexas o adjunto de Hermit ) o inverso de e todos os seus poderes

O inverso de uma matriz triangular direita superior é novamente uma matriz triangular direita superior, a transposta da qual é uma matriz triangular esquerda inferior. O algoritmo QR, portanto, também determina uma decomposição QL das potências de . Pela forma dessa decomposição, é evidente que para cada uma das últimas colunas de abrangem o mesmo subespaço que as últimas colunas de . Na última coluna de , uma iteração de potência inversa para é realizada, de modo que essa coluna converge para o autovetor dual para o menor autovalor de . No produto , o componente inferior esquerdo é o chamado quociente de Rayleigh da iteração de potência inversa. As propriedades de convergência são análogas às fornecidas acima.

Links da web

literatura