You are on page 1of 45

M todos Matem ticos de Especialidad e a

1/45

Ingeniera El ctrica e

Valores y vectores propios 2


Jos Luis de la Fuente OConnor e
jl.delafuente@iberdrola.es jldelafuente@etsii.upm.es Escuela T cnica Superior de Ingenieros Industriales e Universidad Polit cnica de Madrid e

Ant. Cerrar

2/45

ndice I
1. Introduccion 2. Interpretacion geometrica
3. Propiedades de los subespacios propios 4. Propiedades de los valores propios 5. Tipos de matrices y valores propios 6. Lema de Schur y aplicaciones

7. Localizacion de valores propios

Ant. Cerrar

3/45

8. Obtencion numerica
Metodo de la iteracion de potencia Metodo de la iteracion inversa Iteracion mediante cociente de Rayleigh Deacion Iteracion simultanea Iteracion QR Metodo de Jacobi Comparacion de los metodos

9. Calculo de los valores singulares

Ant. Cerrar

Metodo de la iteracion inversa


4/45

Si en vez del valor propio de mayor magnitud, se necesita el mas pequeno, se puede hacer uso de que los valores propios de A1 son los recprocos de A. El esquema iterativo sera el que sigue.

x0 = punto de partida arbitrario for k = 1, 2, . . . Resolver Ay k = xk1 yk xk = ||y k ||


end Para resolver el sistema de ecuaciones bastara con factorizar la matriz A una sola vez. Se obtiene el valor propio dominante de A1 : el de menor en modulo de A.
Ant. Cerrar

5/45

Ejemplo (continuacion)
Aplicando el metodo de la iteracion inversa al problema que manejamos, se obtienen los resultados de la tabla.
k 0 1 2 3 4 5 6
xT k ||y k ||

0,000 -0,333 -0,600 -0,778 -0,882 -0,939 -0,969

1,0 1,0 1,0 1,0 1,0 1,0 1,0

0,750 0,833 0,900 0,944 0,971 0,985

Converge al valor propio 1 y vector propio [1, 1]T .

Ant. Cerrar

6/45

Un programa de Matlab que implementa el metodo de la iteracion inversa es el que sigue.

function [lambda,V,cnt]= ItInversa(A,x,tol,max1) % Mtodo de la iteracin inversa e o if nargin<3 tol=sqrt(eps); max1=100; end lambda=0;cnt=0;err=1; while cnt<=max1 & err>tol y=A\x; c1=max(abs(y)); y=y/c1; dc=abs(lambda-c1); dv=norm(x-y); err=max(dc,dv); x=y; lambda=c1; cnt=cnt+1; end V=x;
Ant. Cerrar

7/45

Mejora del metodo: desplazamiento


El desplazamiento es particularmente util en el caso de la iteracion inversa. El valor propio de menor magnitud de A I sera , si es el valor propio de A mas proximo a . Con una eleccion apropiada de se puede calcular cualquier valor propio de A que este proximo a esa . Si el desplazamiento esta proximo a un valor propio, la convergencia es muy rapida.

Ant. Cerrar

8/45

Iteracion mediante cociente de Rayleigh


Denici n 1 El cociente de Rayleigh de un vector x R es el escalar o

xT Ax r(x) = T . x x
Dado u un vector propio aproximado de una matriz A Rnn , el determinar la mejor estimacion del correspondiente valor propio se puede considerar como un problema de mnimos cuadrados n 1 como el siguiente:

x Ax. =

Ant. Cerrar

9/45

A partir de las ecuaciones normales de este problema, xT x = xT Ax, la solucion es

xT Ax = T . x x
El cociente de Rayleigh puede utilizarse para acelerar la convergencia de los metodos iterativos que hemos visto, pues en una iteracion k ese cociente da una mejor aproximacion al valor propio que la que se tenga en ese momento.

Ant. Cerrar

El esquema iterativo del metodo de la iteracion inversa con desplazamiento, utilizando como desplazamiento el valor del cociente de Rayleigh, es el que sigue.

10/45

x0 = punto de partida arbitrario for k = 1, 2, . . . xT Axk1 k = k1 xT xk1 k1 Resolver (A k I)y k = xk1 yk xk = ||y k ||
end

El cociente de Rayleigh tambien se puede aplicar a vectores complejos reemplazando el traspuesto de x por su traspuesto conjugado; es decir,

xH Ax . xH x

Ant. Cerrar

11/45

Ejemplo (continuacion)
Aplicando el metodo de la iteracion de potencia con el cociente de Rayleigh al problema que manejamos, se obtienen los resultados de la tabla.
k 0 1 2 3 4 5 6
xT k ||y k || xT Axk /xT xk k k

0,000 0,333 0,600 0,778 0,882 0,939 0,969

1,0 1,0 1,0 1,0 1,0 1,0 1,0

0,150 1,667 1,800 1,889 1,941 1,970

1,500 1,800 1,941 1,985 1,996 1,999

Observese que las iteraciones convergen mas rapidamente que en los casos anteriores.
Ant. Cerrar

12/45

Utilizando un punto de partida aleatorio, con el mismo problema y el ultimo algoritmo, ocurrira lo que sigue.
k xT k k 0 0,807 0,397 1,896 1 0,924 1,000 1,998 2 1,000 1,000 2,000
u

Ant. Cerrar

El programa de Matlab que implementa el metodo de la iteracion inversa con desplazamiento, usando para este el cociente de Rayleigh es el que sigue (utilizado para el ejemplo anterior).
function [lambda,V,cnt]= ItInvRayleigh(A,x,tol,max1) % Mtodo de la iteracin inversa e o if nargin<3 tol=0.000001; max1=10; end lambda=0;cnt=0;err=1;n=length(A);x=rand(n,1); format long while err>tol sigma=(x*A*x)/(x*x); y=(A-sigma*eye(n))\x; y=y/norm(y,inf); err=norm(abs(y-x),inf); x=y; cnt=cnt+1; end y=A*x; [xk k]=max(abs(x)); lambda=y(k)/x(k); V=x;

13/45

Ant. Cerrar

Deacion
14/45

Idea basica: Calculados un valor y un vector propios mediante la estrategia de la potencia, los demas se pueden obtener mediante deacion: Quitando los conocidos y actuando como cuando, una vez cono cida una de las races, 1 , de un polinomio en , este se divide por 1 , obteniendose otro de grado n 1. Opci n a Si H es una matriz regular de Householder, por ej. tal que o Hx = e1, la transformacion de semejanza que determina H transforma A de la siguiente forma,

HAH

1 bT 0 B

donde B es una matriz de orden n 1 cuyos valores propios son 2 , . . . , n . Despues se trabaja con B para calcular el siguiente valor propio 2 , etc.

Ant. Cerrar

Ademas, si y 2 es un vector propio de B asociado a 2 , el vector


15/45

x2 = H 1

y2

, donde =

b y2 , 2 1

es el vector propio correspondiente a 2 en la matriz original A, supuesto 1 = 2 . Opci n b Alternativamente se podra escoger cualquier u1 tal que o T u1 x1 = 1, lo que hara que la matriz A x1uT tuviese como 1 valores propios 0, 2 , . . . , n . Los posibles vectores u1 seran: u1 = 1x1, si A es simetrica y ||x1||2 = 1. u1 = 1y 1, donde y 1 es el vector propio izquierdo correspondiente; es decir, AT y 1 = 1 y 1 , con y T x1 = 1. 1 T u1 = A ek , si x1 esta normalizado, con ||x1|| = 1, y el componente k -esimo de x1 es 1. Las dicultades numericas de esta forma de actuar segun avanza el proceso son importantes.

Ant. Cerrar

Iteracion simultanea
16/45

Su idea basica para calcular simultaneamente varios valores y vectores propios es muy simple: en vez de usar un unico x0 de partida, utilizar una matriz X 0 , n p, de rango p, y hacer

X k = AX k1.
El esquema del algoritmo es el de la tabla que sigue.

X 0 = matriz n p de rango p for k = 1, 2, . . . X k = AX k1


end

El subespacio Im(X k ) converge al subespacio de los vectores propios de A correspondientes a los p mayores valores propios de A, supuesto

|p| > |p+1|.

Ant. Cerrar

Las importantes dicultades numericas de esta estrategia se soslayan calculando en cada iteracion la factorizacion QR deX k , y ortonormalizando as las columnas de X k . En vez de X k se usara Q como base del subespacio Im(X k ). El esquema resultante metodo de la iteracion ortogonal sera el que sigue. La matriz Qk es n p y Rk , p p.

17/45

X 0 = matriz n p de rango p for k = 1, 2, . . . Calcular la factorizacion QR de X k1 Qk Rk = X k1 X k = AQk


end

Se puede comprobar que las iteraciones convergen a una matriz triangular en bloques en la que el primer bloque sera triangular si los modulos de los distintos valores propios de A son distintos.

Ant. Cerrar

18/45

La version en Matlab para calcular los 5 valores propios mas importantes de una matriz generada aleatoriamente es el que sigue.
function [i,r]=ValItOrt(A) % r mximos valores propios por iteracin ortogonal a o n=length(A); r=5; tol=1e-06; A=A*A; B=A; i=0; disp(Mtodo de la iteracin ortogonal QR); e o Q=eye(n,r); R=eye(r); Z=zeros(size(Q)); vprn=1; vpr=0; err=1; while i<200 & err>tol vpr=vprn; Z=A*Q; [Q,R]=qr(Z,0); vprn=min(diag(R)); i=i+1; err=abs((vprn-vpr)/vprn); end if i==100 disp(No ha habido convergencia); else disp(Valores propios mximos: ); a end format long r=diag(R) disp(Valores calculados con eig()); disp(-sort(eig(-B)));

Ant. Cerrar

Si se ejecuta este archivo, se obtienen los resultados que siguen.


>> [i,r]=ValItOrt(a) Mtodo de la iteracin ortogonal QR e o Valores propios mximos: a r = 1.0e+002 * 1.04491609655094 0.04617888873738 0.03715854886704 0.03626236219115 0.02565733377033 Valores calculados con eig() 1.0e+002 * 1.04491609655094 0.04617888873738 0.03715864118473 0.03626227210019 0.02565762257408 0.02459086560907 0.02227113766204 0.01897771907175 0.01823167147015 0.01050117260179 0.00898193588574 0.00691201946434 0.00517201234107 0.00335425439442 0.00262229621638 0.00168109615293 0.00058498291002 0.00056899283926 0.00019955545195 0.00010655004923

19/45

Ant. Cerrar

20/45

Iteracion QR
Si en la iteracion ortogonal p = n, se pueden calcular todos los valores propios de A, as como los correspondientes vectores propios.

Si se parte de X 0 = I , las matrices Ak = QH AQk k


generadas por el metodo de la iteracion ortogonal convergeran a una matriz triangular, o triangular por bloques, en la que esten todos los valores propios de A. El metodo de la iteracion QR realiza el calculo de las matrices Ak sin realizar explcitamente el producto de matrices anterior.
Ant. Cerrar

Partiendo de A0 = A, en la iteracion numero k se calcula la factorizacion QR de Ak1 ,es decir,

21/45

Qk Rk = Ak1.
A partir de aqu,

Ak = QH Ak1Qk = QH (Qk Rk ) Qk = Rk Qk , k k
por lo que cualquier Ak se puede obtener a partir del calculo del producto inverso Rk Qk . 1. Los coecientes en la diagonal principal de Ak , o en los bloques diagonales, convergen a los valores propios de A. 2. Las columnas de Qk forman una base ortonormal del subespacio Im(Ak ). 3. Si A es simetrica, las iteraciones conservan la simetra y Ak converge a una matriz triangular y simetrica: por consiguiente diagonal.

Ant. Cerrar

22/45

Iteracion QR con desplazamiento


La velocidad de convergencia se puede aumentar si se incorporan los desplazamientos:

Qk Rk = Ak1 k I Ak = Rk Qk + k I,
donde k es una aproximacion de un valor propio.

Como desplazamiento se puede tomar el valor del coeciente ak1 nn de Ak1 , que debera ser una buena aproximacion de n .
Si el bloque diagonal 2 2 mas abajo no es diagonal (lo que indica la existencia de valores propios complejos), habra que calcular los valores propios de esa submatriz para aplicar el desplazamiento correspondiente.
Ant. Cerrar

El siguiente programa de Matlab implementa el metodo de la iteracion QR con desplazamiento para matrices simetricas.

23/45

function [lambda]= IteracionQR(A,tol) % Mtodo de la iteracin QR con desplazamiento e o if nargin<2 tol=sqrt(eps)*norm(A); end lambda=0;n=length(A); for k=n:-1:2 while norm(A(k,1:k-1),inf) > tol sigma=A(k,k); [Q,R]=qr(A(1:k,1:k)-sigma*eye(k,k)); A(1:k,1:k)=R*Q+sigma*eye(k,k); end end lambda=diag(A);
Ant. Cerrar

Transformaciones preliminares
La factorizacion QR de una matriz n n que hay que realizar en cada iteracion del metodo anterior requiere O(n3 ) operaciones. Se podran reducir mucho si la matriz de partida fuese lo mas parecida posible a una triangular. Denici n 2 Una matriz de Hessenberg es una matriz triangular excepto o por una subdiagonal inmediatamente adyacente a la diagonal principal.

24/45

@ @

@ @ @ @ @ @
Ant. Cerrar

Cualquier matriz se puede reducir a la forma de Hessenberg mediante transformaciones ortogonales: por ejemplo de Householder. Si la matriz original es simetrica, la de Hessenberg obtenida sera tridiagonal. La forma de Hessenberg se conserva durante las iteraciones de un procedimiento QR. Ventajas de transformar a Hessenberg: El trabajo por iteracion del metodo QR se reduce a O(n2), en vez de 3 O(n ), para una matriz general, o O(n) para una matriz simetrica. Se necesitaran menos iteraciones por tratarse de una matriz casi triangular (o diagonal) desde el principio.

25/45

Si hay elementos distintos de cero en la subdiagonal, la matriz de


Hessenberg es triangular en bloques y podra trocearse en pequenos subproblemas.
Ant. Cerrar

26/45

Teniendo en cuenta estas consideraciones, el metodo se implementa en dos fases: matriz simetrica 1a fase

tridiagonal o

2a fase diagonal

matriz general

1a fase Hessenberg 2a fase triangular

El trabajo necesario para implementar todo el proceso iterativo el preliminar y el iterativo se indica en la tabla que sigue. Matriz simetrica Matriz general

4 3 n para valores propios solo 10n3 para valores propios solo 3 9n3 valores y vectores propios 25n3 valores y vectores propios
Ant. Cerrar

27/45

De esta tabla cabe apuntar las siguientes consideraciones: Para matrices grandes, el metodo es prohibitivo. Si solo se necesitan unos pocos valores y vectores propios, especialmente para n grandes, el metodo no saca partido de ello.

Requiere mucha memoria de ordenador, aunque la matriz sea


grande y dispersa.

Las transformaciones de semejanza introducen muchos elementos


no nulos por lo que se destruye la estructura de dispersidad.

Ant. Cerrar

28/45

function D=It_QR_2(A,epsilon) %Input Iteracin QR de una matriz simtrica o e % tridiagonal [n,n]=size(A); B=house(A); m=n; D=zeros(n,1); while (m>1) while (abs(B(m,m-1))>=epsilon) %Calcular desplazamiento S=eig(B(m-1:m,m-1:m)); [j,k]=min([abs(B(m,m)*[1 1]-S)]); [Q,U]=qr(B-S(k)*eye(m)); B=U*Q+S(k)*eye(m); end A(1:m,1:m)=B; m=m-1; B=A(1:m,1:m); end D=sort(diag(A));

function T=house (A) [n,n]=size(A); for k=1:n-2 s=norm(A(k+1:n,k)); if (A(k+1,k)<0) s=-s; end r=sqrt(2*s*(A(k+1,k)+s)); W(1:k)=zeros(1,k); W(k+1)=(A(k+1,k)+s)/r; W(k+2:n)=A(k+2:n,k)/r; V(1:k)=zeros(1,k); V(k+1:n)=A(k+1:n,k+1:n)*W(k+1:n); c=W(k+1:n)*V(k+1:n); Q(1:k)=zeros(1,k); Q(k+1:n)=V(k+1:n)-c*W(k+1:n); A(k+2:n,k)=zeros(n-k-1,1); A(k,k+2:n)=zeros(1,n-k-1); A(k+1,k)=-s; A(k,k+1)=-s; A(k+1:n,k+1:n)=A(k+1:n,k+1:n) ... -2*W(k+1:n)*Q(k+1:n)-2*Q(k+1:n)*W(k+1:n); end T=A;

Ant. Cerrar

La ejecucion de este programa para una matriz 10 10, simetrica, generada aleatoriamente es la que sigue.
29/45 >> It_QR_2(A1) ans = 0.01431999891591 0.04920529275253 0.17542171790536 0.28137578750760 0.53137970612468 0.66204600561851 1.31506994446549 1.90188902890340 2.24267984943143 24.95918482130558 >> eig(A1) ans = 0.01431999891591 0.04920529275254 0.17542171790536 0.28137578750761 0.53137970612468 0.66204600561851 1.31506994446549 1.90188902890340 2.24267984943143 24.95918482130557 >>

Ant. Cerrar

Metodo de Jacobi
30/45

El de Jacobi es uno de los metodos mas antiguos para el calculo de los valores propios de una matriz simetrica o compleja hermtica. Utiliza transformaciones de semejanza basadas en rotaciones sobre planos (como las de Givens, recordemos) para hacer cero pares de elementos simetricos de la matriz. Partiendo de A0 , cada iteracion tiene la forma

Ak+1 = J T Ak J k , k
donde cada matriz J k se escoge de tal manera que, por ejemplo,

J T AJ = =
sea diagonal.

c s s c

a b b d

c s s c

c2a 2csb + s2d c2b + cs(a d) s2b c2b + cs(a d) s2b c2d + 2csb + s2a
Ant. Cerrar

Para ello:
31/45

Haciendo c2b + cs(a d) s2b = 0


y dividiendo ambos lados por c2 b, se obtiene que

s (a d) s2 1+ 2 = 0. c b c
Haciendo t = s/c se obtiene la ecuacion cuadratica

1+t

(a d) t2 = 0 b

Obtenida t se calculan c = 1/ 1 + t2 y s = c t.
Aplicando sistematicamente estas transformaciones se va consiguiendo que todos los coecientes de la matriz que no estan en la diagonal principal se hagan cero o casi cero (dentro de la tolerancia mq. ). a

en t, la tangente del angulo de rotacion.

Ant. Cerrar

32/45

Existen dos formas de implementar el metodo: Clasico En cada paso se hace cero el mayor elemento en valor absoluto que no este en la diagonal principal. La velocidad de convergencia es lineal aunque en la practica tiende a la cuadratica. Cclico Se hacen barridos por las para anular sucesivamente todos los elementos fuera de la diagonal. Tiene convergencia cuadratica. Al metodo de Jacobi lo superan en prestaciones otros de los expuestos. Es difcil generalizar para matrices no simetricas.
Ant. Cerrar

Ejemplo
33/45

Sea

1 0 2 A0 = 0 2 1 . 2 1 1
Apliquemos el metodo de Jacobi. Anulemos inicialmente los coecientes (1, 3) y (3, 1). Para ello, apliquemosles la rotacion

0,707 0 0,707 0 J0 = 0 1 0,707 0 0,707


obteniendose

A1 =

J T A0 J 0 0

3 0,707 0 = 0,707 2 0,707 . 0 0,707 1

Ant. Cerrar

A continuacion, anulemos (1, 2) y (2, 1) mediante la rotacion

0,888 0,460 0 J 1 = 0,460 0,888 0 0 0 1


obteniendose

34/45

A2 =

J T A1 J 1 1

3,366 0 0,325 = 0 1,634 0,628 . 0,325 0,628 1

Luego, anulamos el (3, 2) y el (2, 3) usando la rotacion

1 0 0 J 2 = 0 0,975 0,226 0 0,226 0,975


para obtener

A3 =

J T A2 J 2 2

3,366 0,0735 0,317 . 0 = 0,0735 1,780 0,317 0 1,145

Ant. Cerrar

35/45

Comenzando un nuevo barrido, hagamos cero los coecientes (1, 3) y (3, 1). Usaremos la rotacion

0,998 0 0,070 0 J3 = 0 1 0,070 0 0,998


obteniendose

A4 =

J T A3 J 3 3

3,388 0,0733 0 = 0,0733 1,780 0,0051 . 0 0,0051 1,167

El proceso continuara hasta llegar a conseguir los valores propios deseados.

Ant. Cerrar

function [V,D]=Jacobi_val_1(A) % Clculo de valores y vectores propios de una matriz simtrica a e tol=sqrt(eps); D=A; [n,n]=size(A); V=eye(n); state=1; %Calcular fila p y columna q del elemento de mayor valor % no en la diagonal de A [m1 p]=max(abs(D-diag(diag(D)))); [m2 q]=max(m1); p=p(q); while (state==1) %Se hacen cero Dpq y Dqp t=D(p,q)/(D(q,q)-D(p,p)); c=1/sqrt(t2+1); s=c*t; J=[c s;-s c]; D([p q],:)=J*D([p q],:); D(:,[p q])=D(:,[p q])*J; V(:,[p q])=V(:,[p q])*J; [m1 p]=max(abs(D-diag(diag(D)))); [m2 q]=max(m1); p=p(q); if (abs(D(p,q))<tol*sqrt(sum(diag(D).2)/n)) state=0; end end D=sort(diag(D));

36/45

Ant. Cerrar

37/45

Si usamos el programa para resolver el ejemplo hecho a mano, se obtiene la salida que sigue.
[v d]=Jacobi_val_1(Aeje) v = 0.73923873953921 -0.42713229146437 0.23319197840754 0.88765033546558 -0.63178128111781 -0.17214786532587 d = -0.70927535943692 1.80606343352537 3.90321192591156

0.52065736483112 0.39711255728600 0.75578933922945

Como se puede ver, con las pocas iteraciones que hacamos a mano la aproximacion a los valores propios reales es muy rapida.

Ant. Cerrar

38/45

Comparacion de los metodos


Calculo de todos los valores propios y vectores propios
Matrices generales reales o complejas. Reduccion preliminar a forma de Hessenberg seguida de iteracion QR. Matrices reales simetricas o complejas hermticas. Reduccion preliminar a matriz tridiagonal seguida de iteracion QR.

Ant. Cerrar

39/45

Calculo de algunos valores y vectores propios


Matrices simetricas de tamano moderado. Reduccion preliminar a matriz tridiagonal seguida de iteracion inversa. Matrices de gran tamano. Metodo con iteracion de Arnoldi para matrices generales. Lanczos para matrices simetricas o complejas hermticas. Tambien algunas veces iteracion simultanea ortogonal.

Ant. Cerrar

40/45

ndice I
1. Introduccion 2. Interpretacion geometrica
3. Propiedades de los subespacios propios 4. Propiedades de los valores propios 5. Tipos de matrices y valores propios 6. Lema de Schur y aplicaciones

7. Localizacion de valores propios 8. Obtencion numerica 9. Calculo de los valores singulares


Ant. Cerrar

41/45

Calculo de los valores singulares


El calculo de los valores singulares de una matriz recordemos: races T cuadradas no negativas de los valores propios de A A se puede llevar a cabo a partir de las ideas expuestas hasta este punto. No obstante existen algoritmos muy ecaces especcos basados en iteraciones QR directamente en la matriz A.

Algoritmo de Golub y Reinsch. Primera fase


Consiste en reducir la matriz A a una triangular superior bidiagonal mediante transformaciones ortogonales de Householder.
Ant. Cerrar

42/45

Es decir, hacer

QT AB = B = B
donde

B1 0

B=

d1 f2 d2

0 0

f3 ... ... ... f , n dn

(1)

QB = Q1 Qn Rmm y B = 1 n2 Rnn.
Ant. Cerrar

43/45

El esquema que se seguira con una matriz A64 sera el de la gura.

0 0 0 0 Q 0 0 0 1 1 2 - 0 - 0 Q- 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Q 0 0 Q 0 0 - 0 0 - 0 0 - 0 0 2 3 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0000 00 000 0000

Ant. Cerrar

44/45

Segunda fase
Una vez bidiagonalizada la matriz A, se hacen cero los elementos que no estan en la diagonal principal mediante un algoritmo que obtenga

QT B 1S = = diag(1, . . . , n), S
donde QS Rnn y S Rnn son matrices ortogonales. La descomposicion en valores singulares de la matriz A sera

A=U

V T, 0

donde U = QB diag(QS , I mn ) y V = B S .
Ant. Cerrar

lculo prctico = U B VSVD=(3). . . , de la , k 1, 2, B


Ese algoritmo procede iterativamente haciendo
k+1 T k k k

ETSII-UPM

45/45

donde U y V k bidiagonal B, de tamao tal forma que VD de una kmatrizson matrices ortogonales, denn:

puede B k . l m Se = kaplicar el mtodo QR con desplazamiento a la matriz T=BTB. Tambin se pueden aplicar una serie (tericamente infinita) de rotaciones de El esquema que se sigue es este. Givens a B para hacerla diagonal:
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 G 21B BG13 G32B 0 12 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 0 + 0 0 0

Se comprueba que los elementosno nulos encima de la diagonal principal el Se verica que los elementos de la supra-diagonal tienden a cero (desde tienden el primero) y los de la diagonal a los el primero) y los n-1 hastaa hacerse cero (desde el n-1 hasta valores singulares.de la diagonal a los valores singulares como se quiere. La convergencia puede ser acelerada utilizando desplazamiento.

Ant. Cerrar

You might also like