7/24/2019 Semana 14 An
1/24
Solucin sistemas lineales
Mtodos iterativos no estacionarios
Catalina Domnguez,
Universidad del Norte
Maestra en matemticas
Semestre II de 2015
Semana 14
Pgina 1 Semana 14 5 de Noviembre de 2015 Domnguez
7/24/2019 Semana 14 An
2/24
Calculo de valores propios: Mtodo QR (bsico)
Schur descomposicin
DadaA Cnn, existe una matrizUunitaria tal que
U1AU=UHAU =
1 b12 b1n0 2 b2n.
.. .
. .
.
..0 0 n
=T
dondei son los valores propios deA
T yUno son necesariamente nicas. El calculo paran 5no puedecalcularse de una manera directa, por eso se recurre a tcnicas itera-
tivas para su calculo.
Pgina 2 Semana 14 5 de Noviembre de 2015 Domnguez
7/24/2019 Semana 14 An
3/24
Idea
El problema se reduce a encontrar una matriz ortogonal Q Rnn
(QTQ= I), de manera
T =QTAQ
siendoTuna matriz triangular superior.
ayuda: principio teorico
Dada A Rnn y Q Rnn una matriz ortogonal (QTQ = I),entonces, si
B =QTAQ
se puede descomponer como
B= QR
dondeR es una matriz triangular superior y Quna matriz ortogonal.
Pgina 3 Semana 14 5 de Noviembre de 2015 Domnguez
7/24/2019 Semana 14 An
4/24
Mtodo Iterativo QR (bsico)
DadaA Rnn, y una matrizortogonal Q0 R
nn,
se calcula
T0=QT0 AQ0,
se encuentraQ1,R1 tal que
T0=Q1R1.
Tomamos
T1=R1Q1 =QT1 Q1R1Q1
=QT
1 T0Q1=QT
1 QT
0 AQ0Q1= (Q0Q1)
TAQ0Q1.,
se encuentraQ2,R2 tal que
T1=
Q2
R2
.
...
Tomamos
T2=R2Q2=QT2 Q2R2Q2
=QT2 T1Q2
= (Q0Q1Q2)TAQ0Q1Q2
En general, se determina Qk y
Rk de manera que
Tk1=QkRk
y se define
Tk =RkQk
= (Q0Q1 Qk)TAQ0Q1 Qk.
Si k entonces Tk Tdonde T es matriz triangular
superior.
Pgina 4 Semana 14 5 de Noviembre de 2015 Domnguez
7/24/2019 Semana 14 An
5/24
Mtodo Iterativo QR (bsico)
SeaA Rnn, dada una matriz ortogonalQ0 Rnn
se calculaT0=Q
T
0AQ0
Parak = 1, . . . ,hasta la convergencia DadaTk1, determinarQk,Rk tal queTk1=QkRk = tomamos Tk =RkQk
Observaciones
1 Se debe establecer un mtodo para encontrar la descomposicin
QkRk deTk1.2 Tk yA son matrices semejantes, es decir, tienen los mismos
valores propios.3 SiA tiene valores propios reales (de modulo distintos),Tk
converge a una matriz triangular superior.
4 SiAtienes valores propios complejos,Tk no converge a una
matriz triangular superior.Pgina 5 Semana 14 5 de Noviembre de 2015 Domnguez
7/24/2019 Semana 14 An
6/24
Dado un conjunto de vectores l.i
x1, . . . ,xn, es posible generar
vectores mutuamente ortogonales
q1, . . . ,qnmediante
q1= x1
q2= x2 proyq1x2q1
= x2 q1 x2
q1 q1q1
qk+1= xk+1 k
i=1
qi xk+1qi qi
qi
Denotando a a1, . . . ,an los vectores
columna deA, tomamos
q
1=
a1
a1,
qk+1= qk+1
qk+1
qk+1= ak+1 k
i=1 (qj ,ak+1)qj
A se descompone en A = QR. Puesto que Q1 = QT, la matrizRpuede calcularse fcilmente,
R= QTA
Pgina 6 Semana 14 5 de Noviembre de 2015 Domnguez
7/24/2019 Semana 14 An
7/24
Teorema: Descomposicin (triangulacin) de Schur
Dada una matrizA Rnn, entonces existe una matriz ortogonal Qtal que
QTAQ=
R11 R12 R1m
0 R22 R2m...
. . .
0 0 Rmm
=T
dondeRiicorresponde a cualquiera de los siguientes casos: un numero real
o una matriz2 2con dos valores propios complejos(conjugados)
AdemsQ= lim
kQ0Q1 Qk
siendoQk la matriz ortogonal generada en el k-esimo paso de la fac-
torizacinQR.
Pgina 7 Semana 14 5 de Noviembre de 2015 Domnguez
7/24/2019 Semana 14 An
8/24
function [ EI,V,normT,i] = QRiteracion( A, nmax, tol)
% Realiza la iteracion QR para calculo de los vectores propios
% de una matriz A
T = A ; % en este caso Q_0 = I
V = eye(size(A,1));
iter = 0;
while normT>tol && iter< nmax
iter = iter+1;[Q,R] = qr(T);
T = R*Q;
V = V*Q;
normT = norm(tril(T,-1),fro);
end
EI = diag(T);end
Pgina 8 Semana 14 5 de Noviembre de 2015 Domnguez
7/24/2019 Semana 14 An
9/24
Modificacin Factorizacin QR: Hessenberg Matrices
FactorizacionQR
n3 ciclos
Hessenberg FactorizacionQR
n2 ciclos
Matriz de Hessenberg
SeaB una matrizn ntal que
bij = 0 1 j i 2, i= 3, . . . , n
es decir, en la parte triangular inferior deB es cero, excepto posible-
mente los elementos de primera subdiagonal.
Pgina 9 Semana 14 5 de Noviembre de 2015 Domnguez
7/24/2019 Semana 14 An
10/24
Modificacin Factorizacin QR: Hessenberg Matrices
TransformarA Cnn en una matriz de Hessenberg
B =QHAQ
dondeQ = Hn
2 H1yHi son matrices de Householder.
Para matriz de Hessenberg, el polinomio caracterstico y su respectiva
derivada en un punto c C puede calcularse fcilmente si calcular los
coeficientes del polinomio (mtodo de Hyman).
Pgina 10 Semana 14 5 de Noviembre de 2015 Domnguez
M i d H h ld
7/24/2019 Semana 14 An
11/24
Matrices de Householder
Para v= x x2em definamos P =I 2vvT
v2,
1 Dado x Rn, y=Pxes la reflexin de xcon respecto al hiperplano= span{v}.
2 Ptransforma
x
a un vector nulo excepto en unam
-esima componenteEjemplo
Para x= [1, 1, 1, 1]T ym = 3
v=
11
11
, P =12
1 1 1 11 1 1 1
1 1 1 11 1 1 1
, Px=
0020
Pgina 11 Semana 14 5 de Noviembre de 2015 Domnguez
M t i d H h ld
7/24/2019 Semana 14 An
12/24
Matrices de Householder
Dado x Rn, tenemos
P(k) = Ik 0
0 R(nk) , R(nk) =Ink 2
w(k)w
(k)T
w2
,
w(k) = x(nk) x(nk) e
(nk)1 ,donde x
(nk) Rnk es el vectorformado por las ultimasn kcomponentes de x.
e(nk)1 es el primer vector unitario de R
nk
y=P(k)x, con yj =
xj sij = 1, . . . , k
x(nk) sij =k
0 sij =k + 2, . . . , n .
k = 2, x=
12
134
, P(2) =
1 0 0 0 00 1 0 0 00 0 0.1961 0.5883 0.78450 0 0.5883 0.7106 0.38590 0 0.7845
0.3859 0.4855
, y =
12
2600
Pgina 12 Semana 14 5 de Noviembre de 2015 Domnguez
7/24/2019 Semana 14 An
13/24
Reduccin a una matriz de Hessenberg
Dada una matriz A Rnn, reducir A a una matriz de Hessenbergmediante el producto de matrices de HouseholderP(1)P(2) . . . P (n2).
En pasok-simo consiste en calcularP(k), la cual anula las componentes
k+ 2, . . . , nde lak-esima columna deA
Sin = 5el proceso de reduccin consiste en
P(1)
0
0 0
P(2)
0
0 0 0 0
P(3)
0
0 0 0 0 0
Pgina 13 Semana 14 5 de Noviembre de 2015 Domnguez
Mt d de H eh lde
7/24/2019 Semana 14 An
14/24
Mtodo de Householder
DadaA Rnn
1 A(0):=A
2 Parak = 1, . . . , n 2 A(k) =P
T(k)A(k1)P(k) donde
P(k) =
Ik 00 R(n
k)
, R(nk) =Ink 2
w(k)
w(k)T
w(k)2 ,
w(k) = x(nk)x(nk) e
(nk)1 , x: k-esimo vector columna deA
(k1
Observaciones
1 Al realizar el productoPT(k)A(k1), las primerask filas no varan.
2 Al realizar el productoPT(k)A(k1)P(k), las primerask columnasno varan.
3 SiA Rnn es simtrica, entoncesA(k) =PT(k)A(k1)P(k)
tambin lo es, y por tantoHdebe ser tridiagonal.Pgina 14 Semana 14 5 de Noviembre de 2015 Domnguez
7/24/2019 Semana 14 An
15/24
Ejemplo
A= 4 2 2 12 3 1 12 1 3 11 1 1 2
Matrices reduccin
w(1)=
12
1
, P1 =
1 0 0 00 0.6 0.6 0.30 0.6 0.3 0.60 0.3 0.6 0.6
A1 =
4 3 0 03 2 3 10 3 1 10 1.8 1 1
, A2=
4 3 0 03 2 3.16 0.00 3.16 1.4 0.20 0 0.2 1.4
Pgina 15 Semana 14 5 de Noviembre de 2015 Domnguez
7/24/2019 Semana 14 An
16/24
function [H,Q] = RedHouseholder(A)
% Dada una matriz A, determina la reduccion de A
% a una matriz de Hessenberg superior H, usando
% matrices de Householder.
n = size(A,1);
Q = eye(n);
for k=1:n-2
P = zeros(n,n);
P(1:k,1:k) = eye(k);x = A(k+1:end,k);
w = x-norm(x)*eye(n-k,1);
W = w*w;
P(k+1:end,k+1:end) = eye(n-k)- 2/norm(w)^2*W;
H = P*A*P;
A = H ;Q = Q*P;
end
end
Pgina 16 Semana 14 5 de Noviembre de 2015 Domnguez
7/24/2019 Semana 14 An
17/24
Fact. QR de una matriz de Hessenberg usando matrices de rotacin
Dada una matrizA Rn es posible factorizarAmediante
H=QTAQ, Q= P(1)P(2) . . . P (n2)
donde P(k) es una matriz de Householder, y H es una matriz de
Hessenberg superior.
Tenemos queA y Hson matrices semejantes, es decir, stas
poseen los mismos valores propios.
Encontrar los valores propios deHes ms fcil de hallar que los
deA. Al obtenerHes posible aplicar distintos mtodos paraencontrar los valores propios, entre ellos, descomposicin QR
mediante matrices de rotacin.
Pgina 17 Semana 14 5 de Noviembre de 2015 Domnguez
D i i QR M t i d R t i
7/24/2019 Semana 14 An
18/24
Descomposicin QR: Matrices de Rotacin
G(j, k, )THanula la componentehk,j deH.
G(j, k, ) =filaj
filak
columnaj columna k
1. . .
cos() sin().. .
sin() cos(). . .
1
Sihk,j = 0 cos() = 1, sin = 0;
Si |hk,j | > |hj,j |
= hj,jhk,j
sin() = 11+2
cos =sin();
|hj,j | > |hk,j |
= hk,jhj,j
cos() = 11+2
sin() =cos();
Pgina 18 Semana 14 5 de Noviembre de 2015 Domnguez
7/24/2019 Semana 14 An
19/24
Fact. QR mediante matrices de rotacin
Objetivo: Para una matriz de Hessenberg H, encontrar una matriz
triangular superiorR, tal que
H=Q R, siendoQ una matriz ortogonal.
Estrategia:Anular las componentes(j + 1, j)de Hmediante el pro-ducto de matrices de rotacinG(j, j+ 1, )hasta obtener una matriz
triangular superiorR,
GT(n1) GT(2)G
T(1)
QT
H=R
donde
G(m) =G(m, m+ 1, ).
Pgina 19 Semana 14 5 de Noviembre de 2015 Domnguez
1 2 1 1
7/24/2019 Semana 14 An
20/24
Ejemplo: H =
1 2 1 12 3 1 00 1 2 00 0 3 1
G(1)=
0.44 0.89 0 00.89 0.44 0 0
0 0 1 00 0 0 1
, G(1)TH=
2.23 1.78 0.44 0.440 3.13 1.34 0.890 1 2 00 0 3 1
G(2)=
1 0 0 0
0 0.95 0.30 00 0.30 0.95 00 0 0 1
, GT(2)GT(1)H=
2.23 1.78 0.44 0.440 3.28 1.88 0.850 0 1.49 0.270 0 3 1
G(3)=
1 0 0 00 1 0 00 0 0.44 0.890 0 0.89 0.44
, GT(3)GT(2)GT(1)H=
2.23 1.78 0.44 0.440 3.28 1.88 0.850 0 3.35 0.770 0 0 0.69
R
Q= G(1)G(2)G(3), QT =GT(3)G
T
(2)GT
(3)
Observe que el calculo de G(m)anula la componente(m + 1, m)de lamatrizG(m
1)H
Pgina 20 Semana 14 5 de Noviembre de 2015 Domnguez
7/24/2019 Semana 14 An
21/24
Mtodo QR usando matrices de rotacin y de Hessenberg
Dada una matrizA Rnn
1 Se calcula una matriz de Hessenberg superiorHusando
matrices de Householder
H=QTAQ, dondeQ =P(1)P(2) P(n2)
2 Se realiza descomposicin QR usando matrices de rotacin:
1 DadoH(0)=H
2 Parak = 1hasta nmax
1 Calcular Q(k)y R(k)tal que H(k1) = Q(k)R(k) usando
matrices de rotacin.
2 H(k) = R(k)Q(k)3 parar si
H(k)es triangular superior
H(k)es de bloque triangular superior.
Pgina 21 Semana 14 5 de Noviembre de 2015 Domnguez
function G MatrizRotacion(A j n)
7/24/2019 Semana 14 An
22/24
function G = MatrizRotacion(A,j,n)
% Calcula una matriz de rotacion para anular la componente
% (j+1,j) de una matriz de Hessenberg A
G = eye(n);
xj = A(j,j);xk = A(j+1,j);
if xk==0
c=1;
s=0;
elseif abs(xk) >= abs(xj)t = xj/xk;
s= 1/sqrt(1+t^2);
c = s*t;
elseif abs(xj) > abs(xk)
t = xk/xj;
c = 1/sqrt(1+t^2);s = c*t;
end
G(j:j+1,j:j+1) =[c -s; s c];
end
Pgina 22 Semana 14 5 de Noviembre de 2015 Domnguez
function [EI,H, R] = QRRotacion(H,nmax,tol)
7/24/2019 Semana 14 An
23/24
% Determina la descomposicion Schur usando
% matrices de Hessenberg. En la descomposicion QR utiliza
% matrices de rotacion.
n = size(H,1);
[H,Q] = RedHouseholder(H); % Reduccion matriz de Hessenberg
iter =0;
while normH< tol && iter
7/24/2019 Semana 14 An
24/24
p p g
Mtodo de Hyme
Calculo de races del polinomio caracterstico
Pgina 24 Semana 14 5 de Noviembre de 2015 Domnguez