Está en la página 1de 41

Valores y vectores propios

Laboratorio de Matemáticas
Conceptos básicos
‰ v vector propio asociado al valor propio λ
Av= λv
‰ Polinomio característico de la matriz A
p(λ) = det(A- λ I)
‰ Ecuación característica
p(λ) = 0
Resultados de álgebra
Teorema
Si una Matriz A nxn tiene n valores propios
distintos es diagonalizable y sus
correspondientes n vectores propios son
independientes, ∃ S y D:
A = S D S-1
Ak-1 = S Dk-1 S-1
Ejemplo 1: Cadena de Markov
Una máquina se inspecciona cada día para
comprobar si esta funcionando, estropeada
o esta siendo reparada, las probabilidades de
pasar de un estado a otro vienen dadas por:

F E R

F 0.7 0.2 0.1

E 0.2 0 0

R 0.1 0.8 0.9


Proceso matricial recursivo
 Fk   0.7 0.2 0.1 Fk −1 
    
E
 k = 0.2 0 0 E
 k −1 
 R   0.1 0.8 0.9  R 
 k   k −1 

Por recurrencia podemos expresar el estado


de un día cualquiera en función del primer día
del mes:
D2 = A D1
D3 = A D2 = A2 D1
D4 = A D3 = A3 D1
...
Dk = A Dk-1 = Ak-1 D1
Problema de valor propio
 λ1k −1 0 0 
k −1 −1
 k −1
 −1
Dk = SD S D1 = S  0 λ2 0  S D1
 0 0 λk −1 
 3 

c = S − 1 D1 = (c 1, c 2, c 3 )'

 c1 
 
Dk = (λ1 v1 , λ2 v2 , λ3 v3 ) c2  = c1λ1k −1v1 + c2 λk2−1v2 + c3λk3 −1v3
k −1 k −1 k −1

c 
 3
Sistema mecánico de masas y
resortes
x1

m1 m2

k1 k2 k3

x2

Ecuaciones de movimiento para el sistema


m1 &x&1 + (k1 + k 2 ) x1 − k 2 x2 = 0
m2 &x&2 − k 2 x1 + (k 2 + k3 ) x2 = 0
Solución del problema
Si la solución es armónica cada coordenada

xi(t) = Ai sin(wt + φi) i=1,2.

‰ w es una constante que corresponde a la


frecuencia de la oscilación
‰ Ai la amplitud
‰ φi la fase de la oscilación.
Problema de valor propio
‰ Derivando la ecuación del movimiento

xi (t ) = Ai sin( wt + φi )
xi = − w2 Ai sin( wt + φi ) = − w2 xi
&&

‰ Datos del problema


m1= m2=1 kg, k1=5 kN/m, k2=10 kN/m y k3= 15 kN/m

− w 2 x1 + 15 x1 − 10 x2 = 0
− w 2 x2 − 10 x1 + 25 x2 = 0
Expresión matricial
-w2x1 + 15 x1-10 x2 = 0
-w2x2 - 10 x1 +25 x2 = 0

Expresado en notación matricial nos proporciona


un problema de valores propios:

Kx = λ x

 15 −10   x1  2 1
x
  x  = w  x 
 −10 25   2   2
Métodos numéricos para hallar
valores y vectores propios
„ Método de las potencias

„ Método de las potencias inverso

„ Desplazamiento con el método de las

potencias

„ Instrucciones de MATLAB
Método de las potencias
Valores y vectores propios de A

Vector inicial u
Paso 1: Multiplicar A*u.
Paso 2: Normalizar el vector resultante.
Paso 3: Repetir los pasos 1 y 2 hasta que el
cambio en el factor de normalización sea
despreciable.
Método de las potencias
Inicializamos
Matriz
» A=[0.7 0.2 0.1;
0.2 0.0 0;
0.1 0.8 0.9]
Vector
» u=[1, 1, 1]';
Valores propios
» lambda = [];
Contador de iteraciones
» k=1;
Método de las potencias
Proceso
paso 1:
» v=A*u;
paso 2:
» [mx,i] =max(abs(v));
» lambda = [lambda v(i)];
» u = v/v(i);
» k=k+1;
paso 3:
actualiza las instrucciones del paso 1 y paso 2, hasta
llegar al valor propio y su correspondiente vector propio
con la precisión que desees.
Métodos Iterativos
‰ Estimación inicial
x1

‰ Proceso iterativo
x2, x3, ... , xk, ... → x*

‰ Criterio de parada
|xk+1 − xk| < tol ó k ≥ maxiter
Convergencia del método de
las potencias
Si A es diagonalizable y posee un valor propio λi
dominante El método es convergente
Tipos de convergencia

‰Error del paso k


ek = |xk+1 − xk|

‰Convergencia lineal
ek+1 / ek → cte < 1

‰Convergencia cuadrática
ek+1 / ek2 → cte < 1
La instrucción WHILE

no while
condición

instrucción

instrucción

end
Sintaxis de la instrucción
WHILE
„ Bucle controlado por una condición
„ Sintaxis:
while condición
instrucciones
end
„ Las instrucciones se repiten mientras la
condición se verifique.
La instrucción IF
no if condición

instrucción

instrucción

end
Sintaxis de la instrucción IF

„ Bifurcación condicional
„ Sintaxis:
if condición
instrucciones
end
„ Las instrucciones se realizan si la
condición se verifica.
La instrucción IF - ELSE
if condición

no

instrucción instrucción

instrucción instrucción

end
Sintaxis de la instrucción
IF - ELSE
„ Dilema
if condición
instrucciones cierta
else
instrucciones falsa
end
„ Se ejecutan unas u otras instrucciones
según se verifique o no la condición.
Comparaciones y
operaciones lógicas
„ Comparaciones „ Operaciones lógicas
„ Menor <
„ Conjunción &
„ Mayor >
„ Mayor o igual >= „ Disyunción |
„ Menor o igual <= „ O exclusiva xor
„ Igual ==
„ Negación ~
„ Distinto ~=
Algoritmo potencias
Entrada: A, u, tol, maxiter
Salida: lambda, u, k
Proceso:
Inicializar las variables
Mientras no converja o no hayamos llegado a maxiter
Multiplicar A*u.
Normalizar el vector resultante
Calcular el error o incremento
Incrementar el contador de iteraciones
fin mientras
Advertir en caso de no convergencia
Ejemplo
» B=[-4 3 2; 4 1 0; 0 3 -1];
» u=[1 1 1]'; tol =0.001; maxiter=4;,
»[lambda,u,k]=potencias(B,u,tol,maxiter)
Aumenta el número de operaciones hasta obtener la
solución.
Tipo de convergencia
» e = abs(diff(lambda));
» m = length(e);
» r = e(2:m)./e(1:m-1)
Método de las potencias
inverso
λ v.p. de 1/λ v.p. de A
método A-1 mayor menor en
A-1 potencias en valor valor
absoluto absoluto

El vector propio correspondiente es el mismo


A-1v =λi v multiplicando por A
v = λi A v multiplicando por 1/λi
1
v=Av
λi
Ejemplo
Obtención del valor propio menor en valor
absoluto de la matriz A
» A=[.7 .2 .1;.2 0 0;.1 .8 .9];

» u=[1 1 1]'; tol =0.001; maxiter=30;

»[lambda,u,k]=potencias(inv(A),u,tol,maxi
ter);

» 1/lambda(5)
Desplazamiento con el método
de las potencias
λ v.p. de
método A mayor λ+k v.p. de
A potencias en valor A+kI
absoluto
A v.p. cerca de k

A-kI v.p. muy cerca de cero

Inv(A-kI) v.p. dominante

Convergencia rápida con el método de las potencias.


Ejemplo
Obtención del valor propio intermedio entre los
de mayor y menor en valor absoluto de la
matriz A
» d= (1.012 + -0.0317)/2;
» Ad=A-d*eye(3);
» u=[1 1 1]'; tol =0.001;
maxiter=30;
»[lambda,u,k]=potencias(inv(Ad),u,t
ol,maxiter)
» 1/lambda(10)+d
Valores y vectores propios en
MATLAB
‰ Polinomio característico
P = poly (A)

‰ Valores propios
r = roots (P)

‰ Directamente los valores propios


r = eig(A)

‰ Vectores y valores propios


[S, D] = eig(A); A = S D S-1.
Descomposición en valores
singulares de la matriz A


Am×n = U m×m S V
m× n n× n

Con U y V unitarias y S “diagonal” con


elementos no negativos en la diagonal,
σ 1 ≥σ 2 ≥ L≥σ p ≥ 0,

donde p = min(m,n)
Teorema
a) El rango k de A es igual al número de valores
singulares de A diferentes de cero.
b) Si A es una matriz real pxq, de rango k, para
un r < k , la matriz Ar de rango r que hace
mínimo a A − Ar 2
entre todas las matrices pxq, Ar de rango r
viene dada por Ar = σ1u1v1T + σ 2u2v2T + ... + σ rur vrT
y el mínimo es A - Ar 2
= σ r +1
Comprensión de datos
‰ Foto discretizada
 
A= 
 1000×1000

‰ Aproximación de bajo rango


Ar = σ 1u1v1T + σ 2u2 v2T + ... + σ r ur vr T
   
ui =   , vi =   , σ i i = 1,..., r
 1000×1  1000×1
2 × r × 1000 + r elementos

‰ Ahorro r=5, 106 10005 99%


Ejemplo:
2

10

12

14

16

18

20
2 4 6 8 10 12 14 16 18 20

Foto discretizada de una X (20,20)


Foto (matriz e imagen)
function A=fotox
dp=ones(1,20);
d1=ones(1,19);
a=diag(dp)+diag(d1,-1)+diag(d1,1);
b=fliplr(a);
A=max(a,b);
Af=A+1;
image(Af)
colormap flag

» A=fotox;
Obtención de la SVD
» [V,S,U] = svd(A);
» S = diag(S)

σ 1 ≈ 5.8, σ 2 ≈ 5.3 σ 3 ≈ 4.6 σ 4 ≈ 3.6 σ 5 ≈ 2.5


σ 6 ≈ 1.8 σ 7 ≈ 1.4 σ 8 ≈ 1.3 σ 9 ≈ 0.6 σ 10 ≈ 0.3
y los otros σ i ≈ 0
A20×20 : rg ( A) = 10
Aproximación de grado 1
2

10

12

14

16

18

20
2 4 6 8 10 12 14 16 18 20

A1=S(1)*U(:,1)*V(:,1)'
Aproximación de grado 2
2

10

12

14

16

18

20
2 4 6 8 10 12 14 16 18 20

A2=A1+S(2)*U(:,2)*V(:,2)'
Aproximación de grado 3
2

10

12

14

16

18

20
2 4 6 8 10 12 14 16 18 20

A3=A2+S(3)*U(:,3)*V(:,3)'
FIN

También podría gustarte