Vous êtes sur la page 1sur 43

ETSII-UPM

Valores y vectores propios


(mtodos numricos)
Mtodos Matemticos de Especialidad
(Mecnica-Mquinas)
Madrid, 7 de octubre de 2008
Javier Garca de Jaln
ETSII - Departamento de Matemtica Aplicada
a la Ingeniera Industrial

Familias de mtodos
ETSII-UPM

Existen muchos mtodos de clculo, pero no existe un mtodo que


sea claramente superior a los dems en todos los casos.
El mtodo a utilizar en un clculo concreto depende de:

Algunas de las familias de mtodos ms importantes:

El tipo de problema y las caractersticas de las matrices (simtricas, definidaspositivas, grandes, pequeas, ...).
Los valores y vectores propios que se deseen calcular. En ciertas ocasiones se
desean calcular todos y en otras slo uno o unos pocos; a veces slo se
necesitan los valores propios, etc.
Mtodos basados en la iteracin de matrices.
Mtodos basados en transformaciones de semejanza.
Mtodos basados en transformaciones de congruencia.
Mtodos basados en la descomposicin QR y LLT.

Se considerarn principalmente matrices reales y simtricas.

Mtodo de la iteracin directa (1/3)


ETSII-UPM

Este mtodo calcula el mayor valor propio en valor absoluto:


1 < 2 < ... < n
El algoritmo bsico es el siguiente:

Se parte de un vector inicial arbitrario de norma unidad: y 0 = 1


Este vector se multiplica por la matriz A y se normaliza, repetidamente:
z1 = Ay 0

y 1 = z1 z1

y1 = 1

z 2 = Ay1

y2 = z2 z2

y2 = 1

...
z m = Ay m 1

ym = zm zm

ym = 1

Se demostrar que el mdulo de zm tiende al mdulo del valor propio n y el


vector ym tiende al vector propio xn.

Una forma de estudiar la convergencia de la iteracin directa

Utilizando la descomposicin espectral de las matrices A y Am:


A = 1P1 + 2 P2 + ... + r Pr , A m = 1m P1 + 2m P2 + ... + rm Pr
el vector resultante de la iteracin m se podr expresar en la forma:
y m = A m y 0 = 1m P1y 0 + 2m P2 y 0 + ... + rm Pr y 0  rm Pr y 0

Mtodo de la iteracin directa (2/3)


ETSII-UPM

Demostracin de la convergencia del mtodo:

La primera transformacin se puede desarrollar en la forma:

y 0 = i xi

z1 = Ay 0 = i Axi = i i xi

y la transformacin m (sin tener en cuenta la normalizacin):


p
p

p
p
p
p
n 1
1
y p = A y 0 = i A xi = i i xi = n 1 x1 + ... + n 1
x n 1 + n x n

Todos los cocientes entre valores propios son <1 y para m suficientemente
elevado y n0, todos los sumandos del parntesis anterior sern despreciables
frente al ltimo. Se podr escribir, para dos resultados consecutivos:
yi( m +1) y m +1
y m  nm n x n
yi( m +1)
n  ( m ) = signo ( m )
m +1
y m +1  n n x n
yi
yi y m

El proceso de normalizacin no cambia en nada la convergencia

El mdulo de zm es precisamente la aproximacin del mdulo de n.


El valor propio se puede estimar tambin mediante el cociente de Rayleigh, en
la forma:
xTi Axi xTi i xi
R ( xi ) = T
= T
= i
xi xi

xi xi

Mtodo de la iteracin directa (3/3)

El mtodo de la iteracin directa exige que n0.

ETSII-UPM

Si n=0 el proceso converge en teora hacia el segundo valor y vector propio


Tambin es posible que los errores de redondeo que s tendrn componentes
segn xn hagan que el proceso converja hacia el mayor valor y vector propio
En la prctica, empezando con un vector aleatorio, esta situacin es posible
pero muy poco probable.

La velocidad de convergencia depende del cociente n/n1


Desviacin de la convergencia a otros valores y vectores propios:

Una vez calculado xn, quitndole al vector inicial y0 su componente segn el


vector propio xn, el proceso converger al par (n1 , xn1).
Para evitar el efecto de los errores de redondeo es conveniente limpiar de
vez en cuando el vector de la componente en xn que haya podido adquirir.
De la misma forma, una vez calculados los dos mayores valores y vectores
propios, puede hacerse que la iteracin directa converja al tercer valor y vector
propio, quitando al vector inicial su componente segn dichos vectores
propios.

Mtodo de la iteracin inversa (1/3)


ETSII-UPM

El mtodo de la iteracin inversa

Converge al menor valor propio y al vector propio correspondiente.


Es similar al mtodo de la iteracin directa, utilizando la resolucin de un
sistema de ecuaciones lineales en lugar del producto de matriz por vector.
La iteracin inversa requiere algunas operaciones ms que la directa, pero
conceptualmente es igual de sencilla. La matriz A se factoriza slo una vez y
en cada paso se hace una sustitucin hacia delante y otra hacia atrs.
Se parte de un vector arbitrario tal que:

y0 = 1

y el proceso se desarrolla del siguiente modo:

Az1 = y 0

y 1 = z1 z1

y1 = 1

Az 2 = y1

y2 = z2 z2

y2 = 1

...
Az m = y m 1

ym = zm zm

ym = 1

Se demuestra que el mdulo de zm converge al inverso del menor valor propio


1 y el vector ym al vector propio correspondiente x1.

Mtodo de la iteracin inversa (2/3)


ETSII-UPM

Demostracin de la convergencia del mtodo

La primera transformacin se puede desarrollar en la forma

y 0 = i xi

z1 = A 1y 0 = i A 1xi = i i1xi

y la transformacin p (sin tener en cuenta la normalizacin)


m
m

1
1
m
m
m
m
y m = A y 0 = i A xi = i i xi = 1 1x1 + 2 x 2 + ... + n x n

2
n

De nuevo todos los cocientes entre valores propios del parntesis son <1 y para
m suficientemente elevado y 10, todos los sumandos de dicho parntesis
sern despreciables frente al primero:
yi( m ) y m
y m  1 m1x1
yi( m )
1  ( m +1) = signo ( m +1)
( m +1)
yi
1x1
y m +1  1
yi
y m +1
Tampoco aqu la normalizacin afecta a la convergencia. El valor propio se
aproxima mejor (con el doble de cifras exactas que el vector propio)
evalundolo por medio del cociente de Rayleigh:
x1T Ax1
1 = T
x1 x1

Mtodo de la iteracin inversa (3/3)

El mtodo de la iteracin inversa exige que 10:

ETSII-UPM

Se pueden hacer consideraciones anlogas a las de la iteracin directa.


Se puede hacer que el mtodo converja hacia otros valores y vectores propios
quitando al vector inicial sus componentes segn los vectores propios ya
calculados.

La velocidad de convergencia depende del cociente 2/1


Desviacin de la convergencia hacia el valor propio ms cercano a un
nmero dado :

Recurdese que los valores propios de (AI) son i . Si se utiliza la


iteracin inversa con la matriz (AI) el proceso converger hacia el valor
propio ms pequeo en valor absoluto, que ser el ms cercano al valor .
Este mtodo permite calcular valores y vectores propios intermedios sin haber
calculado los que estn por encima (o por debajo).
Recurdese que los signos de los valores propios son los mismos que los de los
pivots en la factorizacin AI=LDLT. Por medio de la factorizacin puede
acotarse un intervalo en el que est el valor propio que se desea calcular.

Mtodo de la iteracin simultnea directa (1/2)


ETSII-UPM

Sea A una matriz nn. Se pueden calcular m vectores y valores


propios simultneamente de la siguiente forma:

Se parte de una matriz Z0 de tamao nm cuyas columnas son vectores


arbitrarios linealmente independientes.
Aplicando el mtodo de ortogonalizacin de Gram-Schmidt a Z0 se obtiene
una matriz Y0 con m columnas ortonormales.
Multiplicando Y0 por la matriz A se calcula Z1=AY0.
Por Gram-Schmidt o por QR se calcula Y1 a partir de Z1.
Se prosigue en la forma descrita y se comprueba que las m columnas de Yi
convergen a los m vectores propios correspondientes a los m mayores valores
propios. Los m valores propios aparecen en Gram-Schmidt o en la matriz R.

Convergencia del mtodo de la iteracin simultnea:

La primera columna de Yi converge al vector propio xn. La segunda columna


convergera tambin a este vector propio, pero por el proceso de
ortogonalizacin aplicado converge hacia xn1, pues se le va quitando su
componente en xn a medida que avanza el proceso.
Algo anlogo ocurre con las restantes columnas de Yi.

Mtodo de la iteracin simultnea directa (2/2)


ETSII-UPM

Mediante la factorizacin QR
el algoritmo bsico puede ser
como sigue:
Y0 R nr ,

Y0T Y0 = I r

while error > tol && nit < nitmax


Z k = AYk 1
[Yk , R k ] = qr ( Z k )
error = ...
nit = nit + 1
end

% con Matlab
Q=eye(n,r); R=eye(r); Z=zeros(size(Q));
vprn=1; vpr=0;
while i<100 & abs((vprn-vpr)/vprn)>error
vpr=vprn;
Z=A*Q;
[Q,R]=qr(Z,0);
vprn=min(diag(R));
i=i+1;
end
if i==100
disp('No ha habido convergencia')
else
disp('Nmero de iteraciones');
disp(i);
disp('Valores propios mximos: ');
disp(diag(R));
end

Mtodo de la iteracin de sub-espacios (1/2)


ETSII-UPM

Est basada en el mtodo de Ritz:

Supngase que se dispone de r vectores ortonormales en Rn que forman las


columnas de una matriz ortogonal Qk1. Multiplicando por la matriz A:
Z k = AQ k 1
Las columnas de Zk se pueden ortogonalizar mediante la factorizacin QR:
[Pk , R k ] = qr ( Z k )
Las columnas de Pk contienen ms informacin que las de Qk1 sobre los
mayores vectores propios de A, pues Qk1 ha sido multiplicada por A y los
vectores correspondientes con los mayores valores propios han aumentado.
El anlisis de Ritz consiste en utilizar el cociente de Rayleigh para tratar de
buscar aproximaciones a los mayores valores propios de A en el sub-espacio
de Rn determinado por las columnas de Pk (x=Pky):

donde,

xT Ax y T PkT APk y y T B k y
R(y ) = T = T T
T
x x
y Pk Pk y
y y

B k = PkT APk

Mtodo de la iteracin de sub-espacios (2/2)


ETSII-UPM

Est basada en el mtodo de Ritz (cont.):

Este cociente de Rayleigh se har estacionario para los valores y vectores


propios de la matriz Bk, que es de un tamao rr. Estos valores y vectores
propios se pueden expresar en la forma:
B k Yk = Yk Dk
Las columnas de Y en Rr se pueden transformar en los correspondientes
valores propios aproximados en Rn por medio de la expresin:
YkT B k Yk = Dk
xi = Pk y i
X = Pk Yk Q k
Las columnas de Qk son ortogonales, pues se verifica:
QTk Q k = YkT PkT Pk Yk = I

Adems son una mejor aproximacin que las de Qk1 a los vectores propios de
A, en virtud de la multiplicacin por A (que amplifica las componentes en los
mayores vectores propios) y del proceso de Ritz seguido.

El mtodo de la iteracin de subespacios converge ms rpidamente


que la iteracin simultnea

La velocidad de convergencia es

n r en lugar de

n r +1

n r

Bases ortonormales
ETSII-UPM

Bases ortonormales en espacios eucldeos

Se dice que un vector w est normalizado cuando cumple: w, w = w = 1


Se dice que una base en un espacio de dimensin n es ortonormal cuando est
formada por n vectores de norma unidad y ortogonales entre s.
Si la base es ortonormal la matriz de Gram es la matriz identidad y el producto
escalar se puede expresar, en forma matricial: x, y = xT y, x, y R n

Coordenadas de un vector en una base ortonormal:

Sea a un vector cualquiera en E y (q1, q2, , qn) los vectores de una base
ortonormal de E. Se desean hallar las componentes i de a expresado en dicha
base ortonormal
El vector a se puede expresar como combinacin lineal de los vectores qi
a = 1q1 + 2q 2 + ... + n q n
Para determinar la componente i basta realizar el producto escalar por qi
qTi a = 1qTi q1 + 2qTi q 2 + ... + nqTi q n = 0 + ... + i qTi q i + ... + 0 = i
y por tanto

a = ( q1T a ) q1 + ( qT2 a ) q 2 + ... + ( qTn a ) q n

y tambin, utilizando formulacin matricial en Rn:


a = 1q1 + 2q 2 + ... + n q n =Q

= QT a

Existencia de bases ortonormales: Gram-Schmidt


ETSII-UPM

Se parte de n vectores (a1, a2, ... an) linealmente independientes y se


trata de hallar a partir de ellos una base ortogonal (q1, q2, ... qn)

El primer vector q1 se puede obtener normalizando a1


a1 = a1
q1 = a1 a1
Los vectores q2 y q3 se obtienen quitando a los vectores a2 y a3 las
componentes segn los q anteriores y normalizando (siempre existe ai 0 )
a2 = a 2 ( q1T a 2 ) q1

q 2 = a2 a2

a3 = a3 ( q1T a3 ) q1 ( qT2 a3 ) q 2

q3 = a3 a3

Existe otra forma de organizar los clculos (Gram-Schmidt modificado)


consistente en quitar la componente segn qi a todos los aj (j=i+1,...,n), tan
pronto como qi ha sido calculado (menores errores numricos):
q1 = a1 a1

a j = a j ( q1T a j ) q1

j = 2,3,..., n

q2 = a2 a2

a j = a j ( qT2 a j ) q 2

j = 3, 4,..., n

a j = a j ( qTi a j ) qi

j = i + 1,..., n

...
qi = ai ai

Obsrvese que en cada qi(ai) slo intervienen a1,..., ai (q1,..., qi).

Interpretacin grfica del mtodo de Gram-Schmidt


ETSII-UPM

a1 = a1

a2 = a2 ( q1T a2 ) q1

q1 = a1 a1

L [ q1 ] = L [ a1 ]

q 2 = a2 a2

a3 = a3 ( q1T a3 ) q1 ( qT2 a3 ) q 2

L [ q1 , q 2 ] = L [ a1 , a2 ]

q 3 = a3 a3

L [ q1 , q 2 , q 3 ] = L [ a1 , a2 , a3 ]

a3 ( q1T a3 ) q1 ( qT2 a3 ) q 2

a3

q3
q1

q2

a1
a2

a 2 ( q1T a 2 ) q1

Matrices ortogonales
ETSII-UPM

Una matriz Q es ortogonal si es cuadrada y sus columnas son ortonormales


entre s:

qTi q j = ij

T
i

qTi q j = 0, i j )

= 1;

Expresando todas estas condiciones de modo matricial

1 0 " 0

q1T
qT2
#
qTn

(q q

q1 q 2

" qn

0 1 " 0
#

# % #

T
bien: Q Q = I

0 0 " 1

Propiedades (se pueden demostrar como ejercicio):

Se verifica que la inversa es igual a la traspuesta QT=Q1


El determinante de una matriz ortogonal es +1 1
Las matrices ortogonales conservan el producto escalar, y por tanto conservan
distancias y ngulos
Casos particulares: matrices de permutacin, de rotacin y de reflexin
Cualquier matriz ortogonal es el producto de una reflexin por una rotacin
Las matrices rectangulares de columnas ortogonales, aunque cumplan QTQ=I, no son
ortogonales pues QQTI . En este caso QT no es la inversa de Q, sino la inversa por la
izquierda.

Factorizacin QR por Gram-Schmidt (1/4)


ETSII-UPM

Se trata de pasar de una matriz cuadrada A, de tamao nn y cuyas


columnas son independientes, a una matriz ortogonal Q:
A = [a1 a 2 " a n ]

Q = [q1 q 2 " q n ]

Teniendo en cuenta que, segn el mtodo de Gram-Schmidt, cada


vector ai slo tiene componentes en los i primeros vectores q

( )
= (q a )q + (q a )q
= (q a )q + (q a )q + (q a )q

a1 = q1T a1 q1
a2
a3

T
1

T
1

T
2

T
2

T
3

Las matrices A y Q se relacionan a travs de una matriz triangular


superior R, que es cuadrada nn e invertible:

[a1

a 2 " a n ] = [q1 q 2

q1T a1 q1T a 2

T
q
0
2 a2
" qn ]
#
#

0
0

" q1T a n

T
" q2 an
%
#

T
" q n a n

A = QR

Factorizacin QR por Gram-Schmidt (2/4)


ETSII-UPM

Factorizacin QR de matrices rectangulares:

Considrese una matriz rectangular A, de tamao mn (m>n). Se puede


obtener una matriz Q, tambin mn, cuyas columnas son ortonormales y
generan el mismo subespacio de Rm que las de A.
Las frmulas anteriores se aplican tambin en este caso. La matriz Q es mn,
pero la matriz R es cuadrada nn. A esta factorizacin se le llama
factorizacin QR incompleta, porque las columnas de Q no constituyen una
base completa de Rm (en este caso Q no es una matriz ortogonal).
La factorizacin QR completa obtiene una matriz Q ortonormal (mm) y
aade a la matriz R tantas filas de ceros como columnas se han aadido a Q:

[a1

a 2 " a n ] = [q1 q 2 " q n

q n +1 " q m ] q1T a1 q1T a 2

T
q
0
2 a2

#
#

0
0
R
0
0

#
#
0
0
0

" q1T a n

" qT2 a n
%
#

" qTn a n
"
0

%
#
"
0

Factorizacin QR por Gram-Schmidt (3/4)


ETSII-UPM

La factorizacin QR se puede utilizar para resolver sistemas de


ecuaciones
Rx = y
Ax = b

A = QR

QRx = b

T
y =Q b x
Qy = b

En el caso de las ecuaciones normales propias del mtodo de los


mnimos cuadrados (se vern posteriormente)
Ax = b

A T Ax = A T b

A = QR

R T QT QRx = R T QT b

y como Q es ortogonal y R triangular superior e invertible, la


ecuacin final es muy fcil de resolver:
R T Rx = R T QT b

Rx = QT b

Conclusin: si se dispone de una base ortogonal Q para el espacio de


columnas de A, los sistemas de ecuaciones resultantes son muy
fciles de resolver

Factorizacin QR por Gram-Schmidt (4/4)


ETSII-UPM
% fichero QR4.m
% Factorizacin QR (G.-S. modificado)
% Golub&Van Loan pp. 231-32
clear all
m=400; n=m; A=rand(m,n);
Q=zeros(m,n); R=zeros(n,n);
Q=A;
tic
for k=1:n
% Norma de la columna k
R(k,k)=norm(Q(:,k));
% Se normaliza la columna k
Q(:,k)=Q(:,k)/R(k,k);
% Se elimina la columna k de las
%
siguientes columnas
for j=k+1:n
R(k,j)=Q(:,k)'*Q(:,j);
Q(:,j)=Q(:,j)-Q(:,k)*R(k,j);
end
end
toc
% comprobacin A=Q*R
Anew=Q*R;
disp('Gram-Schmidt modificado');
disp(norm(A-Anew,1));
disp('Ya he terminado');

q1 = a1 a1

a j = a j ( q1T a j ) q1

j = 2,3,..., n

q2 = a2 a2

a j = a j ( qT2 a j ) q 2

j = 3, 4,..., n

a j = a j ( qTi a j ) qi

j = i + 1,..., n

...
qi = ai ai

[a1

a2 " an ] =

= [q1 q 2 " q n ]

q1T a1 q1T a 2

T
0
q
2 a2

#
#

0
0

" q1T a n

" qT2 a n
%
#

T
" q n a n

Transformaciones de Householder (1/4)


ETSII-UPM

Las matrices de reflexin (simetra) de Householder se definen en la forma:


vvT
H =I2 T
o bien
H = I 2uuT
u =1
v v
donde v es un vector cualquiera. La matriz de Householder define una reflexin
respecto al hiperplano perpendicular al vector v.
Las matrices de Householder son simtricas y ortogonales:
HT H = ( I 2uuT )( I 2uuT ) = I 4uuT + 4uuT uuT = I
Como son ortogonales, conservan ngulos y distancias, y por eso son muy estables
en su aplicacin numrica.
Una segunda reflexin conduce
a la situacin original:
b
2
1
H =I
H =H
La matriz de reflexin se puede
Pb
obtener a partir de la matriz de
v
proyeccin, teniendo en cuenta
(2PI)b
que la reflexin ms el original es
Hb
igual a dos veces la proyeccin:
H = I 2P

Transformaciones de Householder (2/4)


ETSII-UPM

Aplicacin de las matrices de Householder

Se suelen utilizar para anular todos los elementos de un vector excepto el primero, es
decir, para alinearlo con el vector e1.
Supngase un vector cualquiera x. El vector v se define en la forma

e1T {1 0 " 0}

v = x x e1

El producto por la matriz H hace ceros todos los elementos de x excepto el 1

Hx = x e1

Demostracin:

2 ( x x e1 ) x

vv
vv x
Hx = I 2 T x = x 2 T = x ( x x e1 )
=
T
T
v
v
v
v

( x x e1 ) ( x x e1 )
T

= x ( x x e1 )

2xT x 2 x x1
x x 2 x x1 + x
T

= x ( x x e1 ) = x e1

En el clculo del vector v deben evitarse restas que puedan disminuir la precisin. As,
cuando x1>0, el clculo de v1 se puede hacer en la forma:

v1 = x1 x =

x12 x
x1 + x

( x22 + ... + xn2 )


x1 + x

Transformaciones de Householder (3/4)


ETSII-UPM

Las matrices de Householder

Se pueden utilizar para hacer ceros debajo de la diagonal, en forma anloga al


mtodo de Gauss
1 "
0 "

vvT
U1 = H1 = I 2 T ; v = x x e1
U1 A = 0 "
A
v v

# # # % #
1 = x
0 "

La segunda trasformacin es similar, pero de tamao n1

1 0 0 " 0
0

U 2 = 0
H2

1
0
2

U 2 U1 A = 0 0

#
#
0 0

"
"
"
%
"

Cada transformacin conserva los ceros de las anteriores


Esta transformacin es ms estable que la de Gauss, aunque ms costosa

Transformaciones de Householder (4/4)

ETSII-UPM

Funcin de Matlab para calcular el vector v y el factor

Se toma v(1)=1 para que v se pueda almacenar en lugar de los ceros introducidos.

% clculo del vector de Householder


% Golub & Van Loan, pg. 210
function [v,beta] = householder(x)
n=length(x);
% mdulo de x (sin primera componente)
s=x(2:n)'*x(2:n);
v=[1,x(2:n)']';
if s==0
% los elementos x(2), ... x(n) son cero
beta=0
else
% mdulo de x
mx=sqrt(x(1)^2+s);
if x(1)<=0
v(1)=x(1)-mx;
else
v(1)=-s/(x(1)+mx);
end
beta=2*v(1)^2/(s+v(1)^2);
v=v/v(1);
end

v = x x e1
e1T {1 0 " 0}
Si x1 > 0
v1 =

( x22 + ... + xn2 )


x1 + x

H = I vvT ;

v = v / v1

2
vT v

Aplicacin a la factorizacin QR
ETSII-UPM

La factorizacin QR puede hacerse por medio de las transformaciones de


Householder de modo ms estable que con Gram-Schmidt

Pre-multiplicando por matrices de Householder se pueden hacer ceros en todas las


columnas por debajo de la diagonal principal:

U n1...U 2 U1A = R

Pre-multiplicando por las inversas de las matrices unitarias Ui y teniendo en cuenta que
el producto de matrices ortogonales es tambin ortogonal:

A = U11U 21...U n11R = U1 U 2 ...U n 1R QR

No es necesario formar explcitamente las matrices Ui y menos an realizar los


productos de matrices que aparecen en las expresiones anteriores.
Si la matriz A es rectangular (m>n) se obtiene la factorizacin QR completa.

Almacenamiento de las matrices de Householder:

No hace falta almacenar las matrices de Householder: basta almacenar el vector v. Si se


hace v1=1, el vector v puede almacenarse en la posicin de los ceros introducidos en A.
El producto de una matriz de Householder por una matriz A se puede hacer sin tener
que formar las matrices H U explcitamente:

vvT
H = I 2 T = I vvT
v v

HA = A vv A = A v ( A v )
T

Matrices de rotacin de Givens


ETSII-UPM

Son rotaciones planas 2-D que se aplican a matrices nn

1
#

G ij A = #
0

#
0

Se utilizan para hacer cero un elemento determinado (i,j) de una matriz A


Gij es una matriz idntica a I, excepto gii=gjj=cos, gji=gij=sen
Al pre-multiplicar por Gij se combinan filas, y al post-multiplicar columnas
a11
" 0 " 0 " 0

#
% #
#
#

cai1 sa j1
" c " s " 0

#
A
=
# % #
#

sa + ca
" s " c " 0
j1
i1

#
# % #
#

" 0 " 0 " 1


an1

"
%
"

a1i
#
caii sa ji
#

"

saii + ca ji

"

#
ani

a1 j
a1n
"

#
#

" caij sa jj " cain sa jn

%
#
#

" saij + ca jj " sain + ca jn

#
%
#

anj
ann
"
"

"

saii + ca ji = 0
aii
c=
aii2 + a 2ji
s=

a ji
aii2 + a 2ji

Las matrices de Givens se pueden utilizar para triangularizar una matriz A de


modo semejante a como se hace en el mtodo de eliminacin de Gauss
Haciendo ceros por columnas, de izquierda a derecha, los ceros anteriores se
conservan y la matriz A se triangulariza con un n finito de operaciones
Las matrices de Givens son ortogonales y su producto tambin lo es. La
factorizacin de A ser del tipo A=QR
La factorizacin de Givens es ms costosa en operaciones que la de Gauss. Es
preferible a Householder cuando hay que hacer ceros selectivamente.

Mtodos de transformacin (1/2)


ETSII-UPM

Todos los mtodos de clculo de valores y vectores propios son


iterativos y pueden necesitar un considerable esfuerzo de clculo.
Las transformaciones de semejanza conservan los valores propios.
Si una transformacin de semejanza convierte una matriz en
diagonal, los valores propios son los elementos de la diagonal:

Existen transformaciones de semejanza que con un nmero finito de


operaciones transforman una matriz en otra ms sencilla:

No existe ninguna transformacin de semejanza general que diagonalice


una matriz con un nmero finito de operaciones aritmticas.
Hay transformaciones que hacen cada vez ms pequeos los elementos de
fuera de la diagonal, pero hacen falta infinitos pasos para hacerlos cero.

Existen transformaciones que convierten una matriz a la forma de


Hessenberg, que es una matriz triangular superior con una sub-diagonal.
Si la matriz es simtrica se puede transformar en una matriz tridiagonal
Estas transformaciones se suelen aplicar como paso previo para abaratar el
coste del proceso iterativo posterior.

Las transformaciones ms utilizadas son Givens y Householder.

Mtodos de transformacin (2/2)


ETSII-UPM

Es importante distinguir entre:

Aplicacin de las matrices de Givens y Householder para la factorizacin QR.


Aplicacin de Givens y Householder en las transformaciones de semejanza.

En las factorizaciones A=QR:

La matriz A se premultiplica por matrices H G de modo que se convierte en


triangular superior:
G n , n 1 "G n 2 "G 32G n1 "G 31G 21A = R
U n 1 " U 2 U1A = R

A = G T21G T31 "G Tn1G T32 "G Tn 2 "G Tn , n 1R = QR


A = U1U 2 " U n 1R = QR

El objetivo es hacer ceros debajo de la diagonal. Cada transformacin respeta


los ceros de las pre-multiplicaciones anteriores.

En las transformaciones de semejanza ortogonales B=QTAQ:

La matriz se pre- y postmultiplica por una matriz y su traspuesta.


Los ceros deben ser el resultado de ambas operaciones y no de una sola
Es imposible diagonalizar la matriz A o reducirla a forma triangular con un
nmero finito de transformaciones.
Con un n finito de transformaciones slo se puede reducir la matriz a forma
de Hessemberg o a forma tridiagonal (si la matriz A es simtrica).

Transformacin de Householder (1/2)


ETSII-UPM

Expresiones de la matriz de Householder:


vvT
H = I 2 T = I vvT
v v

HA = A vvT A = A v ( AT v )

Caractersticas:

wT

A diferencia de la factorizacin QR, en que se


multiplicaba slo por la izquierda, aqu se aplican
como transformaciones de semejanza.
Para no destruir los ceros anteriores slo se
hacen ceros debajo de la subdiagonal.
Si la matriz es simtrica se transforma en
tridiagonal. Si no lo es toma la forma de Hessenberg.

0
U1 =
#

0 " 0

Para matrices no simtricas: reduccin a la forma de Hessenberg.


*

H
U1 AU1 = 0

0
0

*
*
*
*
*

*
*
*
*
*

*
*
*
*
*

*
*
*

*
*

*
*

H
H
H
al final: U 3 U 2 U1 AU1 U 2 U 3 = 0

0
0

*
*
*
0
0

*
*
*
*
0

*
*
*
*
*

*
*
*

*
*

Transformacin de Householder (2/2)


ETSII-UPM

Para matrices no simtricas:

La multiplicacin por la izquierda se define para hacer ceros debajo de la


subdiagonal.
La multiplicacin por la derecha con la misma matriz que por la izquierda lo
ms que consigue es no destruir los ceros hechos anteriormente.

Para matrices simtricas: reduccin a forma tridiagonal simtrica

Por simetra, la multiplicacin por la derecha hace los mismos ceros en una fila
que la multiplicacin por la izquierda en una columna, adems de respetar los
ceros anteriores.
Se puede aprovechar la simetra para almacenar el resultado en dos vectores y
para reducir las operaciones aritmticas:
*

H
U1 AU1 = 0

0
0

*
*
*
*

0
*
*
*
*

0
*
*
*
*

0
*
*

*
*

*
*

H
H
H
al final: U 3 U 2 U1 AU1 U 2 U 3 = 0

0
0

*
*
*
0
0

0
*
*
*
0

0
0
*
*
*

0
0
0

*
*

Transformaciones de Givens
ETSII-UPM

Transformaciones de Givens:

A diferencia de las transformaciones de Householder, las transformaciones de


Givens hacen un slo cero en cada transformacin.
Se utilizan cuando es necesario hacer ceros selectivamente, por ejemplo
cuando la matriz de partida es ya tridiagonal o tiene la forma de Hessenberg.

Expresiones de las matrices de Givens (en factorizaciones):

Para hacer un cero en un vector de dimensin 2:


c s xi yi
s c x = y

k k

c xi s xk = yi

s xi + c xk = 0

c=

xi
x +x
2
i

2
k

s=

xk
xi2 + xk2

Cualquier expresin de c y s que cumplan c2+s2=1 es vlida.


La matriz de rotacin de Givens (c y s) se puede almacenar en funcin de un
solo parmetro (r):

% para calcular r
if c==0
r=1;
elseif abs(s)<abs(c) r=sign(c)*s/2;
else
r=sign(s)*2/c;
end

% para recuperar c y s
if r==1
s=1; c=0;
elseif abs(r)<1 s=2*r; c=sqr(1-s^2);
else
c=2/r; s=sqr(1-c^2);
end

Mtodo de Jacobi (1/3)


ETSII-UPM

Este mtodo est basado en la aplicacin de una transformacin de


semejanza constituida por rotaciones de Givens, aplicadas por la
izquierda y por la derecha, que hacen cero un elemento (dos con
simetra) de fuera de la diagonal.

Las matrices de rotacin plana tienen la forma:


cos sen c s
c cos s sen
G=
=

sen cos s c
En el caso de matrices nn, si se desea hacer cero el elemento (i, j):

1
#

A = G T AG = G T A #
0

#
0

" 0 " 0
% #
#
" c " s
# % #
" s " c
#
#
" 0 " 0

" 0
#
" 0

#
" 0

% #
" 1

aii = aii c 2 + 2aij cs + a jj s 2


ajj = aii s 2 2aij cs + a jj c 2
aij = ( a jj aii ) sc + aij ( c 2 s 2 ) = 0
aik = aik c + a jk s
ajk = aik s + a jk c

Columna i: aki = aik c + akj s


Columna j: akj = aki s + akj c
Fila i:
Fila j:

k i, j

Mtodo de Jacobi (2/3)

Clculo de los valores de c y s (si aii = a jj = 4)


si aii a jj
t 2 + 2tr 1 = 0

ETSII-UPM

2aij
1
2sc
2t
tan 2 =
= 2 2=
r
aii a jj c s 1 t 2

si
t
tan

la
raz
ms
pequea
para
que
<
<

4
4

t = r 1 + r 2

c = 1 1+ t2

s = t c

Convergencia del mtodo de Jacobi:

La suma de los cuadrados de los elementos de la matriz se conserva (la raz de


esta suma es la norma de Frobenius): A, A = traza ( AT A )

( aik ) + ( ajk ) = ( aik c + a jk s ) + ( aik s + a jk c ) = aik2 ( c 2 + s 2 ) + a 2jk ( c 2 + s 2 ) = aik2 + a 2jk


2

k i, j

Eso es vlido tambin para los 4 elementos que estn en las filas y columnas i
y j. Sin embargo, dos de estos elementos se han hecho cero, luego los
cuadrados de los dos nuevos elementos de la diagonal igualan a los cuadrados
de los cuatro elementos anteriores:

( aii

+ ( ajj ) = ( aii ) + ( a jj ) + 2 ( aij )


2

Si la suma los cuadrados de todos los elementos se conserva y la suma de los


cuadrados de los elementos de la diagonal aumenta, los elementos de fuera de
la diagonal se tienen que ir haciendo cada vez ms pequeos.

Mtodo de Jacobi (3/3)


ETSII-UPM

Aplicacin prctica del mtodo de Jacobi: 2 variantes principales:

Jacobi clsico: en cada paso se hace cero el mayor elemento en valor absoluto
de fuera de la diagonal principal. La matriz tiende a una matriz diagonal cuyos
elementos sern los valores propios. Tericamente este mtodo converge de
modo lineal, pero en la prctica se tiende a obtener convergencia cuadrtica
cuando el nmero de iteraciones alcanza un cierto valor. Esta variante se
utiliza cuando los clculos se hacen manualmente.
Jacobi cclico: se aplican sucesivamente las transformaciones de Jacobi
mediante barridos por filas para anular sucesivamente todos los elementos de
fuera de la diagonal (exceptuando quizs los que son cero o casi cero). Dado el
coste relativamente elevado que tiene el calcular el mximo elemento en cada
paso, esta variante es sensiblemente ms rpida si los clculos se realizan con
un ordenador. El mtodo de Jacobi cclico tiene convergencia cuadrtica.

En la siguiente transparencia se presenta una implementacin del


mtodo de Jacobi cclico con Matlab.

Algoritmo del mtodo de Jacobi cclico


ETSII-UPM
n=4;
% se forma una matriz simtrica
A=rand(n); A=A'*A; B=A;
% clculo de la norma de Frobenius
fr=norm(A,'fro');
froff=norm(A-diag(diag(A)),'fro');
err=1e-05; % error en la convergencia de la
norma de Frobenius
while froff > err
for j=2:n
for i=1:j-1
[c,s]=jacobi(A(j,j),A(i,i),A(i,j));
% producto [c,s;-s,c]'*A*[c,s;-s,c]
fj=A(j,:); fi=A(i,:);
A(j,:)=c*fj-s*fi;
A(i,:)=s*fj+c*fi;
cj=A(:,j); ci=A(:,i);
A(:,j)=c*cj-s*ci;
A(:,i)=s*cj+c*ci;
end
end
froff=norm(A-diag(diag(A)),'fro');
end % while

function [c,s]=jacobi(app,aqq,apq)
if apq==0
c=1; s=0;
else
r=(aqq-app)/(2*apq);
if r>0
t=1/(r+sqrt(1+r^2));
else
t=-1/(-r+sqrt(1+r^2));
end
c=1/sqrt(1+t^2);
s=t*c;
end

Mtodo QR (1/3)
ETSII-UPM

En muchos casos es el mtodo ms eficiente.


Publicado originalmente por Francis en 1961.
Se parte de una matriz A0=A a la que se aplica la factorizacin QR;
se obtiene una nueva matriz A1 multiplicando los factores en orden
inverso (A1=RQ); luego esta matriz A1 se vuelve a factorizar, etc.
Algoritmo:
A Q0R 0

A1 = R 0Q 0

A1 Q1R1

A 2 = R1Q1

A2 Q2R 2

( A=Q R Q Q = Q A Q )
(A = Q Q A Q Q )

Ai Qi R i

( A = Q Q ...Q

1
0
T
1

T
0

T
0

"
A i = R i 1Qi 1

T
T
T
A
Q
...
Q
Q
i 1 i i 1
i0 )
1

Las matrices Ai son matrices semejantes, que conservan por tanto los
valores propios de A.
Se comprueba (y se puede demostrar) que la matriz Ai tiende a una
matriz diagonal cuyos elementos son los valores propios de A.

Mtodo QR (2/3)
ETSII-UPM

Mejoras sobre el algoritmo bsico:

Se utiliza desplazamiento de valores propios para mejorar la convergencia:


Ak k I Qk R k
(valores propios k )
A k +1 = R k Q k + k I
Tambin de esta forma, la matriz Ak+1 es semejante a Ak
QTk A k Q k = QTk ( Q k R k + k I ) Q k = R k Q k + k I = A k +1
Si el valor se hace igual a ak(n,n), este elemento es el primero que tiende a
un valor propio. Se puede obtener convergencia cuadrtica, o incluso cbica
si la matriz es simtrica:
*

*
Ak
0

* * *
* * *

0 k
* *

si << 1, k  k

Una vez obtenido un valor propio (cuando es muy pequeo) se vuelve a


aplicar el mtodo a la matriz que resulta de suprimir la ltima fila y columna:

Mtodo QR (3/3)
ETSII-UPM

El mtodo QR no se suele aplicar directamente:

Es mejor reducir previamente la matriz a forma de Hessenberg o tridiagonal


por medio de transformaciones de Householder.
Las factorizaciones AiQiRi y los productos Ai+1=RiQi conservan la forma de
Hessenberg o tridiagonal de la matriz inicial.

Para hacer la factorizacin QR de una matriz tridiagonal o de


Hessenberg se suelen utilizar rotaciones planas (Givens):
c s
s c

G 21A 0 = 0 0

# #
0 0

0 " 0 a11

0 " 0 a21
1 " 0 0

# % # #
0 " 1 0

* * " * a11
* * " * 0

* * " * = 0

# # % # #
0 0 " * 0

* * " *
* * " *
* * " *

# # % #
0 0 " *

= sa11 + ca21 = 0
a21
tan =

a21
a11

De forma anloga G32 har cero el elemento (3,2) y as con todos los
elementos de la subdiagonal. La matriz Q es el producto de todas estas Gij.
Si la matriz A es tridiagonal, las rotaciones para hacer cero la subdiagonal
aaden otra diagonal por encima. Sin embargo al hacer posteriormente el
producto A=R*Q se recupera la forma tridiagonal inicial.

Implementacin del mtodo QR


ETSII-UPM
n=4; A=rand(n); A=A'*A; err=1e-08;
function T=tridiag(A)
T=tridiag(A); T0=T; ro=zeros(n,1);
m=size(A,1); n=size(A,2);
for i=1:n-1
if m==n
nn=n-i+1;
if n>=3
while abs(T(nn,nn-1)) > ...
for k=1:n-2
err*(abs(T(nn-1,nn-1))+abs(T(nn,nn)))
[v,beta(k)]=
householder(A(k+1:n,k));
alfa=T(nn,nn);
p=beta(k)*A(k+1:n,k+1:n)*v;
T(1:nn,1:nn)=T(1:nn,1:nn)-alfa*eye(nn);
w=p-(beta(k)*p'*v/2)*v;
for k=1:nn-1 % QR de T por Givens
A(k+1,k)=norm(A(k+1:n,k),2);
[c,s,ro(k+1)]=givens2(T(k,k),T(k+1,k));
A(k,k+1)=A(k+1,k);
m=min(k+2,nn);
A(k,k+2:n)=0; A(k+2:n,k)=0;
% T tiene dos supra-diagonales
A(k+1:n,k+1:n)=A(k+1:n,k+1:n)-...
T(k:k+1,k:m)=[c,s;-s,c]'*T(k:k+1,k:m);
v*w'-w*v';
end % for en k
end
% se aplican a T las rotaciones almacenadas
T=A;
for k=1:nn-1
else n>=3
rro=ro(k+1);
T=A;
if rro==1 cc=0; ss=1;
end
else
% m==n
elseif abs(rro)<1
disp('La matriz no es cuadrada');
ss=2*rro; cc=sqrt(1-ss^2);
T=[];
else cc=2/rro; ss=sqrt(1-cc^2);
end
end
T(1:k+1,k:k+1)=T(1:k+1,k:k+1)*[cc,ss;-ss,cc];
end
T(1:nn,1:nn)=T(1:nn,1:nn)+alfa*eye(nn);
end %while
end % for en i

Mtodo basado en la ley de inercia


ETSII-UPM

Fundamento terico

Est basado en la ley de inercia de Sylvester, que establece que las


transformaciones de congruencia conservan los signos de los valores propios.
La factorizacin de una matriz simtrica en la forma A=LDLT, donde la matriz
diagonal D contiene los pivots de la eliminacin de Gauss, es una
trasformacin de congruencia

Para calcular los valores propios se puede seguir el siguiente


procedimiento de clculo:

Determinando el nmero de pivots negativos de la factorizacin LDLT de


AaI=LDLT se puede saber cuantos valores propios hay menores que a.
Anlogamente, el nmero de pivots negativos de AbI=LDLT indica cuntos
valores propios hay menores que b (b>a).
A partir de los resultados anteriores se puede saber cuntos valores propios de
A estn comprendidos entre a y b.
Identificando un intervalo en el que hay un solo valor propio, puede aplicarse
la iteracin inversa con un desplazamiento igual al valor medio de dicho
intervalo y la iteracin converger hacia el valor propio identificado.
Si previamente la matriz se tridiagonaliza o se reduce a la forma de
Hessenberg, los clculos son mucho ms rpidos.

Clculo prctico de la SVD (1/3)


ETSII-UPM

Aunque la SVD de una matriz rectangular A se puede calcular a


partir de los vectores propios de las matrices simtricas ATA y AAT,
es mucho ms eficiente utilizar mtodos alternativos.
Clculo prctico de la SVD para una matriz A, de tamao mn (mn)

De forma anloga a las transformaciones de semejanza, que reducen a forma


de Hessenberg o tridiagonal antes de calcular los valores y vectores propios,
aqu es til reducir A a forma bidiagonal mediante un pre- y un post-producto
por matrices ortogonales.
* * 0 0 0
Las matrices UB y VB, de tamao mm y nn

respectivamente, se suelen calcular como


0 * * 0 0
0 0 * * 0
matrices de Householder:

T
U B AVB = B = 0 0 0 * *
U B = U1U 2 " U n VB = V1V2 " Vn 2
0 0 0 0 *
Los vectores de Householder v se pueden ir

guardando en las posiciones de los ceros que


0 0 0 0 0

van introduciendo.
0 0 0 0 0
2
3
Hacen falta (4mn 4n /3) flops.

Clculo prctico de la SVD (2/3)


ETSII-UPM

Clculo prctico de la SVD (cont.):

Cuando m>>n es ms rpido convertir A en


0
triangular superior antes de bidiagonalizar.
0
Se puede utilizar la factorizacin QR.
R1
T
Q A = = 0
Ahora se bidiagonaliza la matriz R1 como:
0
T
0
U R R1VR = B1

0
donde tanto UR como VR son nn. La matriz

B1 es nn y bidiagonal.
0
La bidiagonalizacin de A y la SVD de B
permiten obtener la SVD de A:
U R B1VRT
R1
U R
T
A = Q = Q
Q
B
V
=
1 R;

0
0


0

U R
UB Q
0

* * * *

* * * *
0 * * *

0 0 * *
0 0 0 *

0 0 0 0

0 0 0 0

V VR

y por otra parte se calcula (de modo iterativo):


B1 = U b DVbT

De las expresiones anteriores se concluye, para la SVD de A (A=UDVT):


U R
T
T
T
T
A = U B B1VR = U B U bDVb VR = UDV , U U B U b = Q U b , V VR Vb
0

Clculo prctico de la SVD (3/3)


ETSII-UPM

SVD de una matriz bidiagonal B, de tamao nn:

Se puede aplicar el mtodo QR con desplazamiento a la matriz T=BTB.


Tambin se pueden aplicar una serie (tericamente infinita) de rotaciones de
Givens a B para hacerla diagonal:

0
0

0 0 0
0
0 0 0 0
+ 0 0
0 0 0
0 0 BG + 0 0 G B 0 0 0 BG 0 0 0 G B 0
13
32
12
21
0 0 0 0 0 0 0 0 0 + 0 0 0

0 0
0
0
0
0
0
0
0
0
0

0 0 0

0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
BG 24

G 43B
BG35
G54B
0 0 0 0 0 + 0 0 0 0 0 0
0 0 +
0 0 0
0 0 0
0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 +

0 0
+ 0
0

Se comprueba que los elementos de la supra-diagonal tienden a cero (desde el


n1 hasta el primero) y los de la diagonal a los valores singulares.
La convergencia puede ser acelerada utilizando desplazamiento.

Vous aimerez peut-être aussi