Decomposição QR

Fonte: testwiki
Saltar para a navegação Saltar para a pesquisa

Em álgebra linear, uma decomposição QR (também chamada de fatoração QR) de uma matriz é uma decomposição de uma matriz A em um produto A = QR de uma matriz ortogonal Q e uma matriz triangular superior R. A decomposição QR é usado frequentemente para resolver o problema de mínimos quadrados linear e é a base para um determinado algoritmo de autovalores, o algoritmo QR.

Casos e definições

Matriz quadrada

Toda matriz quadrada A com entradas reais pode ser decomposta como

A=QR,

em que Q é uma matriz ortogonal (suas colunas são vetores unitários ortogonais, isto é QTQ=QQT=I) e R é uma matriz triangular superior (também chamada de matriz triangular à direita). Se A é invertível, então a fatoração é única, se for exigido que os elementos da diagonal de R sejam positivos.

Se em vez disso A for uma matriz quadrada complexa, então há uma decomposição A = QR, em que Q é uma matriz unitária (então Q*Q=QQ*=I).

Se A tem n colunas linearmente independentes então as primeiras n colunas de Q formam uma base ortonormal para o espaço coluna de A. Mais geralmente, as primeiras k colunas de Q formam uma base ortonormal para o espaço gerado pelas primeiras k colunas de A para qualquer 1 ≤ k ≤ n.[1] O fato de qualquer coluna k de A só depender das primeiras k colunas de Q é responsável pela forma triangular de R.[1]

Matriz retangular

Mais geralmente, pode-se considerar uma matriz m×n complexa A, em que m ≥ n, como o produto de uma matriz unitária P de ordem m×m e uma matriz triangular superior R de ordem m×n. Como as (mn) linhas inferiores de uma matriz triangular superior de ordem m×n consiste inteiramente de zeros, muitas vezes, é útil particionar R, ou tanto R quanto Q:

A=QR=Q[R10]=[Q1,Q2][R10]=Q1R1,

em que R1 é uma matriz triangular superior de ordem n×n, 0 é uma matriz nula de ordem (m − nn, Q1 é m×n, P2 é m×(m − n) e tanto Q1 quanto Q2 têm colunas ortogonais.

Predefinição:Harvtxt chamam Q1R1 de fatoração QR magra de A; já Trefethen e Bau a chamam de fatoração QR reduzida.[1] Se A é de posto cheio n e for exigido que os elementos da diagonal de R1 sejam positivos, então, R1 e P1 são únicas, mas, em geral, Q2 não é. R1 é, então, igual ao fator triangular superior da fatoração de Cholesky de A* A (= ATA se A é real).

Decomposições QL, RQ e LQ

De forma análoga, pode-se definir decomposições QL, RQ, e LQ, em que L é uma matriz triangular inferior.

Obtenção da decomposição QR

Existem vários métodos para calcular a decomposição QR, tais como o uso do processo de Gram–Schmidt, transformações Householder, ou rotações de Givens. Cada um tem suas vantagens e desvantagens.

Usando o processo de Gram–Schmidt

Considere o processo de Gram–Schmidt aplicado às colunas da matriz de posto completo por colunas A=[𝐚1,,𝐚n], com o produto interno 𝐯,𝐰=𝐯T𝐰 (ou 𝐯,𝐰=𝐯*𝐰 no caso complexo).

Defina a projeção:

proj𝐮𝐚=𝐮,𝐚𝐮,𝐮𝐮

então:

𝐮1=𝐚1,𝐞1=𝐮1𝐮1𝐮2=𝐚2proj𝐮1𝐚2,𝐞2=𝐮2𝐮2𝐮3=𝐚3proj𝐮1𝐚3proj𝐮2𝐚3,𝐞3=𝐮3𝐮3𝐮k=𝐚kj=1k1proj𝐮j𝐚k,𝐞k=𝐮k𝐮k

Agora os 𝐚is podem ser escritos em relação à recém calculada base ortonormal:

𝐚1=𝐞1,𝐚1𝐞1𝐚2=𝐞1,𝐚2𝐞1+𝐞2,𝐚2𝐞2𝐚3=𝐞1,𝐚3𝐞1+𝐞2,𝐚3𝐞2+𝐞3,𝐚3𝐞3𝐚k=j=1k𝐞j,𝐚k𝐞j

em que 𝐞i,𝐚i=𝐮i. Isso pode ser escrito matricialmente como:

A=QR

onde:

Q=[𝐞1,,𝐞n]

e

R=(𝐞1,𝐚1𝐞1,𝐚2𝐞1,𝐚30𝐞2,𝐚2𝐞2,𝐚300𝐞3,𝐚3).

Exemplo

Considere a decomposição de

A=(1251461676842441).

Lembre-se que uma matriz ortonormal Q tem a propriedade

QTQ=I.

Então, pode-se calcular Q por meio de Gram–Schmidt, da seguinte forma:

U=(𝐮1𝐮2𝐮3)=(126958/561586/543033);Q=(𝐮1𝐮1𝐮2𝐮2𝐮3𝐮3)=(6/769/17558/1753/7158/1756/1752/76/3533/35).

Assim, tem-se

QTA=QTQR=R;R=QTA=(1421140175700035).

Relação com a decomposição QR

A decomposição QR transforma uma matriz A em um produto de uma matriz triangular superior R (também conhecida como triangular direita) e uma matriz ortogonal Q. A única diferença em relação à decomposição QR é a ordem dessas matrizes.

A decomposição QR resulta da ortogonalização das colunas de A por Gram–Schmidt, iniciada a partir da primeira coluna.

A decomposição RQ resulta da ortogonalização das linhas de A por Gram–Schmidt, iniciada a partir da última linha.

Vantagens e desvantagens

O processo de Gram-Schmidt é inerentemente instável numericamente. Enquanto a aplicação das projeções tem uma atraente analogia geométrica para a ortogonalização, a ortogonalização propriamente dita é propensa a erros numéricos. Uma vantagem significativa, porém, é a facilidade de implementação, o que o torna um algoritmo útil para prototipagem se uma biblioteca de álgebra linear pré-construída não está disponível.

Usando reflexões de Householder

Reflexão de Householder para a decomposição QR: O objetivo é encontrar uma transformação linear que transforma o vetor x em um vetor de mesmo comprimento que é colinear a e1. Poderia ser usada uma projeção ortogonal (Gram-Schmidt), mas isso seria numericamente instável se os vetores x e e1 fossem praticamente ortogonais. Em vez disso, a reflexão de Householder reflete através da linha pontilhada (escolhida para dividir o ângulo entre x e e1ao meio). O ângulo máximo com essa transformação é de 45 graus

Uma reflexão de Householder (ou transformação de Householder) é uma transformação que pega um vetor e reflete-o em relação a algum plano ou hiperplano. Pode-se utilizar esta operação para calcular a fatoração QR de uma matriz Ade ordem m-por-n com m ≥ n.

Q pode ser utilizada para refletir um vetor de tal forma que todas as coordenadas exceto uma desapareçam.

Seja 𝐱 ser um vetor coluna real arbitrário de A de dimensão m, tal que 𝐱=|α| para algum escalar α. Se o algoritmo é implementado usando a aritmética de ponto flutuante, então α deve receber o sinal contrário ao da k-ésima coordenada de 𝐱, onde xk deve ser a coordenada pivô a partir da qual todas as entradas são 0 na forma triangular superior final de A, para evitar a perda de significância. No caso complexo, define-se

α=eiargxk𝐱

Predefinição:Harv e substitui-se a transposição, pela transposição seguida de conjugação para a construção de Q como abaixo.

Então, sendo 𝐞1 o vetor (1 0 ... 0)T, ||·|| a norma Euclidiana e I uma matriz identidade de ordem m-por-m, define-se

𝐮=𝐱α𝐞1,𝐯=𝐮𝐮,Q=I2𝐯𝐯T.

Ou, se A é complexo

Q=I2𝐯𝐯*.

Q é uma matriz de Householder de ordem m-por-m e

Q𝐱=(α00)T.

Isso pode ser usado para transformar gradativamente uma matriz A de ordem m-por-n em uma matriz na forma triangular superior. Primeiramente, multiplica-se A pela matriz de Householder Q1 que é obtida ao escolher a primeira matriz coluna para x. Isso resulta em uma matriz Q1A com zeros na coluna da esquerda (exceto na primeira linha).

Q1A=[α10A0]

Este processo pode ser repetido para A' (obtida a partir de Q1A ao excluir a primeira linha e a primeira coluna), resultando em uma matriz de Householder Q'2. Note que Q'2 é menor do que Q1. Como a intenção é fazer com que ela atue em Q1A em vez de A' é preciso expandi-la para o canto superior esquerdo, preenchendo-a com 1, ou em geral:

Qk=(Ik100Qk).

Depois de t iterações do processo, t=min(m1,n),

R=QtQ2Q1A

é uma matriz triangular superior. Assim, com

Q=Q1TQ2TQtT,

A=QR é uma decomposição QR de A.

Este método tem maior estabilidade numérica do que o método de Gram–Schmidt acima.

A tabela a seguir apresenta o número de operações na k-ésima etapa da decomposição QR pela transformação de Householder, assumindo uma matriz quadrada com tamanho n.

Operação Número de operações no k-ésima etapa
Multiplicações 2(nk+1)2
Adições (nk+1)2+(nk+1)(nk)+2
Divisão 1
Raiz quadrada 1

Somando esses números ao longo das n − 1 etapas (para uma matriz quadrada de ordem n), obtém-se que a complexidade do algoritmo (em termos de multiplicações em ponto flutuante) é dada por

23n3+n2+13n2=O(n3).

Exemplo

Vamos calcular a decomposição de

A=(1251461676842441).

Primeiro, é preciso encontrar uma reflexão que transforme a primeira coluna da matriz A, que é o vector 𝐚1=(1264)T, em 𝐚1𝐞1=(1400)T.

Agora,

𝐮=𝐱α𝐞1,

e

𝐯=𝐮𝐮.

Aqui,

α=14 e 𝐱=𝐚1=(1264)T

Portanto,

𝐮=(264)T=(2)(132)T e 𝐯=114(132)T, e então Q1=I21414(132)(132)=I17(132396264)=(6/73/72/73/72/76/72/76/73/7).

Agora observe que:

Q1A=(14211404914016877),

assim já temos quase uma matriz triangular. Nós só precisamos zerar a entrada (3, 2).

Considere o menor (1, 1), e então aplique novamente o processo para

A=M11=(491416877).

Pelo mesmo método acima, obtém-se a matriz da transformação de Householder

Q2=(10007/2524/25024/257/25)

depois de realizar a soma direta com 1 para se certificar de que o próximo passo do processo funcione corretamente.

Agora, encontramos

Q=Q1TQ2T=(6/769/17558/1753/7158/1756/1752/76/3533/35)

Ou, com quatro casas decimais,

Q=Q1TQ2T=(0.85710.39430.33140.42860.90290.03430.28570.17140.9429)R=Q2Q1A=QTA=(1421140175700035).

A matriz Q é ortogonal e R é triangular superior, de modo que A = QR é a decomposição QR desejada.

Vantagens e desvantagens

O uso de transformações de Householder é inerentemente o mais simples dos algoritmos de decomposição QR numericamente estáveis devido ao uso de reflexões como o mecanismo para a produção de zeros na matriz R. No entanto, o algoritmo de reflexão de Householder tem largura de banda pesada e não é paralelizável, já que cada reflexão que produz um novo elemento zero pode alterar completamente tanto a matriz Q quanto R.

Usando rotações de Givens

A decomposição QR também pode ser calculada com uma série de rotações de Givens. Cada rotação zera um elemento da subdiagonal da matriz, formando a matriz R. A concatenação de todas as rotações de Givens forma a matriz ortogonal Q.

Na prática, as rotações de Givens não são feitas construindo-se efetivamente uma matriz inteira para realizar uma multiplicação de matrizes. Em vez disso, um procedimento de rotação de Givens é utilizado, fazendo o equivalente de uma multiplicação de matrizes esparsas de Givens, sem o trabalho extra de manipular os elementos esparsos. O procedimento de rotação de Givens é útil em situações em que apenas um número relativamente pequeno de elementos fora da diagonal precisa ser zerado, e é paralelizado mais facilmente do que as transformações de Householder.

Exemplo

Vamos calcular a decomposição de

A=(1251461676842441).

Primeiro, é necessário formar uma matriz de rotação que zere o elemento mais à esquerda e abaixo, 𝐚31=4. Esta matriz é formada utilizando o método de rotação de Givens, e é chamada de G1. Primeiramente o vetor (124) será rotacionado para que aponte na direção do eixo X. Este vetor forma um ângulo θ=arctan((4)12). Deste modo é criada a matriz de rotação de Givens, G1:

G1=(cos(θ)0sen(θ)010sen(θ)0cos(θ))(0.9486800.316220100.3162200.94868)

E assim o resultado de G1A tem um zero no elemento 𝐚31.

G1A(12.6491155.9723116.7600761676806.6407837.6311)

Também é possível construir matrizes de Givens G2 e G3de forma análoga para zerar os elementos abaixo da diagonal principal, a21 e a32, formando uma matriz triangular R. A matriz ortogonal QT é formada a partir do produto de todas as matrizes de Givens QT=G3G2G1. Assim, tem-se G3G2G1A=QTA=Re a decomposição QR é A=QR.

Vantagens e desvantagens

A decomposição QR através de rotações de Givens é mais complicada de implementar, uma vez que a ordenação necessária das linhas para explorar plenamente o algoritmo não pode ser determinada trivialmente. No entanto, ela tem uma vantagem significativa, pois cada novo elemento zero aij afeta apenas a linha com o elemento a ser zerado (i) e uma linha acima (j). Isso torna o algoritmo da rotação de Givens mais eficiente em largura de banda e paralelizável, em contraste com a técnica de reflexão de Householder.

Conexão a um determinante ou um produto de autovalores

Pode-se utilizar a decomposição QR para encontrar o valor absoluto do determinante de uma matriz quadrada. Suponha que uma matriz seja decomposta como A=QR. Então tem-se

det(A)=det(Q)det(R).

Sendo Q unitária, |det(Q)|=1. Assim,

|det(A)|=|det(R)|=|irii|,

em que rii são as entradas da diagonal de R.

Além disso, como o determinante é igual ao produto dos autovalores, tem-se

|irii|=|iλi|,

em que λi são os autovalores de A.

Pode-se estender as propriedades acima para uma matriz complexa não quadrada A introduzindo a definição de QR decomposição para matriz complexa não quadrada e substituindo os autovalores por valores singulares.

Suponha que haja uma decomposição QR para uma matriz não quadrada A:

A=Q(RO),Q*Q=I,

em que O é uma matriz nula e Q é uma matriz unitária.

A partir das propriedades da SVD e do determinante de matrizes, tem-se

|irii|=iσi,

em que σi são os valores singulares de A.

Observe que os valores singulares de A e R são idênticos, apesar de seus autovalores complexos poderem ser diferentes. No entanto, se A é quadrada, o seguinte é verdadeiro:

iσi=|iλi|.

Em conclusão, a decomposição QR pode ser utilizada de forma eficiente para calcular o produto dos autovalores ou valores singulares de uma matriz.

Pivotamento de colunas

A decomposição QR com o pivotamento de colunas introduz uma matriz de permutação P:

AP=QRA=QRPT

O pivotamento de colunas é útil quando A é (quase) deficiente em posto, ou se suspeita que seja assim. Ele também pode melhorar a precisão numérica. P é normalmente escolhida de modo a que os elementos da diagonal de R sejam não-crescentes: |r11||r22||rnn|. Isso pode ser usado para encontrar o posto (numérico) de A com um custo computacional menor do que uma decomposição em valores singulares, formando a base dos chamados algoritmos QR reveladores do posto.

Uso para a solução de problemas inversos lineares

Comparado com a inversão direta de matrizes, soluções inversas usando a decomposição QR são mais estáveis numericamente, como evidenciado pelo seu número de condição reduzido [Parker, Geofísica Teoria Inversa, Ch1.13].

Para resolver o problema linear subdeterminado (m<n) Ax=b em que a matriz A tem dimensões m×n e posto m, primeiro encontra-se a fatoração QR da transposta de A: AT=QR, em que Q é uma matriz ortogonal (ou seja QT=Q1), e R tem uma forma especial: R=[R10]. Aqui R1 é uma matriz quadrada m×m triangular à direita, e a matriz nula tem ordem (nm)×m. Após alguma álgebra, pode ser mostrado que uma solução para o problema inverso pode ser expressa como: x=Q[(R1T)1b0] onde se pode encontrar R11 por eliminação gaussiana ou pelo cálculo de (R1T)1b diretamente por substituição direta. A segunda técnica tem maior precisão numérica e exige menos cálculos.

Para encontrar uma solução, x^, para o problema superdeterminado (mn) Ax=b que minimiza a norma Ax^b, primeiro encontra-se a fatoração QR de A: A=QR. A solução pode ser expressa como x^=R11(Q1Tb), onde Q1 é uma matriz m×n contendo as primeiras n colunas da base orthonormal completa Q e onde R1 é como antes. Tal como no caso subdeterminado, pode-se usar a substituição regressiva para encontrar este x^ de forma rápida e precisa, sem inverter R1 explicitamente. (Q1 e R1 são muitas vezes fornecidos por bibliotecas numéricas como uma decomposição QR "econômica".)

Generalizações

A decomposição de Iwasawa generaliza a decomposição QR para grupos de Lie semissimples.

Ver também

Predefinição:Referências

Leitura complementar

Ligações externas

  1. 1,0 1,1 1,2 L. N. Trefethen e D. Bau, Álgebra Linear Numérica (SIAM, 1997).