| | | | |

3.2 Iteração QR

Ajude a manter o site livre, gratuito e sem propagandas. Colabore!

Em revisão

A iteração QR é um método para a computação aproximada de todos os autovalores de uma dada matriz A. A ideia é explorar um método iterativo para a computação da decomposição de Schur5252endnote: 52Issai Schur, 1875 - 1941, matemático russo-alemão. Fonte: Wikipédia. de A, i.e. encontrar uma matriz unitária U5353endnote: 53Uma matriz U é dita unitária quando U1=UH. tal que

UHAU=[λ1t12t1n0λ2t2n00λn] (3.25)

Assumindo An×n, sejam Q(0)n×n uma matriz ortogonal5454endnote: 54Uma matriz Q é dita ortogonal quando QTQ=I. e T(0)=(Q(0))TAQ(0). A iteração QR consiste em

determinar Q(k),R(k) tal que
Q(k)R(k)=T(k1)(fatoração QR) (3.26)
T(k)=R(k)Q(k), (3.27)

para k=1,2,.

Ou seja, a cada iteração k, computa-se a fatoração da matriz T(k1) como o produto de uma matriz ortogonal Q(k) com uma matriz triangular superior R(k). Então, computa-se uma nova aproximação T(k) pela multiplicação de R(k) por Q(k). Com isso, temos

T(k) =R(k)Q(k) (3.28)
=(Q(k))T(Q(k)R(k))Q(k) (3.29)
=(Q(k))TT(k1)Q(k) (3.30)
=(Q(k))TR(k1)Q(k1)Q(k) (3.31)
=(Q(k))T(Q(k1))TQ(k1)×R(k1)Q(k1)Q(k) (3.32)
=(Q(k1)Q(k))TT(k2)×(Q(k1)Q(k)) (3.33)
=(Q(0)Q(k))TA×(Q(0)Q(k)). (3.34)
Observação 3.2.1 (Convergência do método QR).

Se An×n for uma matriz com autovalores tais que

|λ1|>|λ2|>>|λn|, (3.35)

então

limkT(k)=[λ1t12t1n0λ2t2n00λn]. (3.36)

Para a taxa de convergência, temos

|ti,i1(k)|=𝒪(|λiλi1|k),i=2,,n, (3.37)

quando k.

Ainda, se A for uma matriz simétrica, então T(k) tende a uma matriz diagonal quando k.

Observação 3.2.2.

Variantes do método QR permitem sua aplicação para matrizes mais gerais. Consulte [5].

Uma forma de eficiente do método QR é chamada de iteração Hessenberg5555endnote: 55Karl Adolf Hessenberg, 1904 - 1959, matemático e engenheiro alemão. Fonte: Wikipédia.-QR. Consiste em inicializar T(0) como uma matriz de Hessenberg superior, i.e. ti,j(0)=0 para i>j+1. A computação de T(0) é feito com matrizes de Householder5656endnote: 56Alston Scott Householder, 1904 - 1993, matemático estadunidense. Fonte: Wikipédia. e a fatoração QR de T(k) utiliza de matrizes de Givens5757endnote: 57James Wallace Givens Jr., 1910 - 1993, matemático estadunidense. Fonte: Wikipédia..

Código 7: Algoritmo da Iteração QR
1import numpy as np
2import numpy.linalg as npla
3
4def qr_iter(A, Q=None, maxiter=10, tol=1e-5):
5    Q = np.eye(A.shape[0]) if Q==None else Q
6    T0 = Q.T @ A @ Q
7    info = -1
8    for k in range(maxiter):
9        Q, R = npla.qr(T0)
10        T = R @ Q
11        if (npla.norm(T-T0) < tol):
12            info = 0
13            break
14        T0 = T
15    return T, info
Observação 3.2.3 (Computação dos autovalores).

Se v é autovetor associado ao autovalor simples λ de A, então

Av =λv (3.38)
(Q(k))TAQ(k)(Q(k))Tv λ(Q(k))Tv (3.39)

Denotando, y=(Q(k))Tv, temos

T(k)y=λy. (3.40)

Com isso, podemos computar y e, então, temos vQ(k)y.

E. 3.2.1.

Use a iteração QR para computar os autovalores da matriz de coeficientes do problema discreto associado ao Exercício 1.1.3.

E. 3.2.2.

Use a iteração QR para computar os autovalores da matriz de coeficientes do problema discreto associado ao Exemplo 1.1.2. Use spla.hessenberg para computar T(0).


Envie seu comentário

As informações preenchidas são enviadas por e-mail para o desenvolvedor do site e tratadas de forma privada. Consulte a Política de Uso de Dados para mais informações. Aproveito para agradecer a todas/os que de forma assídua ou esporádica contribuem enviando correções, sugestões e críticas!