Valores y vectores propios - personales.upv.espersonales.upv.es/jromero1/valores y vect.pdf · 15...

41
Valores y vectores propios Laboratorio de Matemáticas

Transcript of Valores y vectores propios - personales.upv.espersonales.upv.es/jromero1/valores y vect.pdf · 15...

Valores y vectores propios

Laboratorio de Matemáticas

Conceptos básicos

v vector propio asociado al valor propio λ

A v = λ vPolinomio característico de la matriz A

p(λ) = det(A- λ I)Ecuación característica

p(λ) = 0

Resultados de álgebra

TeoremaSi una Matriz A nxn tiene n valores propios

distintos es diagonalizable y sus

correspondientes n vectores propios son

independientes,A = S D S-1

Ak-1 = S Dk-1 S-1

S y D:∃

Ejemplo 1: Cadena de MarkovUna máquina se inspecciona cada día para comprobar si esta funcionando, estropeadao esta siendo reparada, las probabilidades de pasar de un estado a otro vienen dadas por:

0.90.80.1R

000.2E

0.10.20.7F

REF

Proceso matricial recursivo1

1

1

0.7 0.2 0.10.2 0 00.1 0.8 0.9

k k

k k

k k

F FE ER R

=

Por recurrencia podemos expresar el estado de un día cualquiera en función del primer día del mes:

D2 = A D1D3 = A D2 = A2 D1D4 = A D3 = A3 D1

...Dk = A Dk-1 = Ak-1 D1

Problema de valor propio

11

13

12

11

111

000000

DSSDSSDDk

k

k

kk

−−

==λ

λλ

( )'cc 32,111

,cDSc == −

31

3321

2211

11

3

2

1

31

321

211

1 ),,( vcvcvcccc

vvvD kkkkkkk

−−−−−− ++=

= λλλλλλ

Sistema mecánico de masas y resortes

x1

m1 m2

x2

k1 k2 k3

Ecuaciones de movimiento para el sistema

0)(0)(

2321222

2212111

=++−=−++

xkkxkxmxkxkkxm

&&

&&

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ónAi la amplitud φi la fase de la oscilación.

Problema de valor propioDerivando la ecuación del movimiento

2 2sin( )i i i ix w A wt w xφ= − + = −&&( ) sin( )i i ix t A wt φ= +

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

21 1 215 10 0w x x x− + − =

22 1 210 25 0w x x x− − + =

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λ=

1 12

2 2

15 1010 25

x xw

x x−

= −

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 potenciasInicializamos

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 potenciasProceso 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 λ idominante 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

whilecondición

instrucción

instrucción

end

no

Sintaxis de la instrucción WHILE

Bucle controlado por una condición

Sintaxis:while condición

instruccionesend

Las instrucciones se repiten mientras la condición se verifique.

La instrucción IF

if condición

instrucción

instrucción

end

no

Sintaxis de la instrucción IF

Bifurcación condicionalSintaxis:

if condicióninstrucciones

endLas instrucciones se realizan si la condición se verifica.

La instrucción IF - ELSE

if condición

instrucción

instrucción

end

síno

instrucción

instrucción

Sintaxis de la instrucción IF - ELSE

Dilemaif condición

instrucciones ciertaelse

instrucciones falsaend

Se ejecutan unas u otras instrucciones según se verifique o no la condición.

Comparaciones y operaciones lógicas

Comparaciones Menor <Mayor >Mayor o igual >=Menor o igual <=Igual ==Distinto ~=

Operaciones lógicas

Conjunción &

Disyunción |

O exclusiva xor

Negación ~

Algoritmo potenciasEntrada: A, u, tol, maxiterSalida: lambda, u, kProceso:

Inicializar las variablesMientras no converja o no hayamos llegado a maxiter

Multiplicar A*u.Normalizar el vector resultante Calcular el error o incrementoIncrementar el contador de iteraciones

fin mientrasAdvertir 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

A-1

λ v.p. de A-1 mayor en valor absoluto

1/λ v.p. de A menor en valor absoluto

método potencias

El vector propio correspondiente es el mismo

A-1v =λ i v multiplicando por Av = λ i A v multiplicando por 1/λ i

v = A v 1

EjemploObtenció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,maxiter);

» 1/lambda(5)

Desplazamiento con el método de las potencias

Aλ v.p. de A mayor en valor absoluto

λ+k v.p. de A+kI

método potencias

λ+k v.p. de A+kI

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.

EjemploObtenció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,tol,maxiter) » 1/lambda(10)+d

Valores y vectores propios en MATLAB

Polinomio característicoP = poly (A)

Valores propiosr = roots (P)

Directamente los valores propiosr = eig(A)

Vectores y valores propios[S, D] = eig(A); A = S D S-1.

Descomposición en valores singulares de la matriz A

m n m m m n n nA U S V ∗× × × ×=

Con U y V unitarias y S “diagonal” con

elementos no negativos en la diagonal,

donde p = min(m,n)

,0σσσ 21 ≥≥≥≥ pL

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

entre todas las matrices pxq, Ar de rango r viene dada por 1 1 1 2 2 2 ... T T T

r r r rA u v u v u vσ σ σ= + + +

2rA A−

12y el mínimo es - r rA A σ +=

Comprensión de datosFoto discretizada

1000 1000

=

Aproximación de bajo rango 1 1 1 2 2 2 ... T T T

r r r rA u v u v u vσ σ σ= + + +

1000 1 1000 1

, , 1,...,i i iu v i rσ× ×

= = =

2 1000 elementos r r× × +

Ahorro r=5, 106 10005 99%

Ejemplo:

2 4 6 8 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=fotoxdp=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 2 3 4 5

6 7 8 9 10

i

5.8, 5.3 4.6 3.6 2.5 1.8 1.4 1.3 0.6 0.3 y los otros 0

σ σ σ σ σ

σ σ σ σ σ

σ

≈ ≈ ≈ ≈ ≈

≈ ≈ ≈ ≈ ≈

20 20 : ( ) 10A rg A× =

Aproximación de grado 1

2 4 6 8 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

A2=A1+S(2)*U(:,2)*V(:,2)'

2 4 6 8 10 12 14 16 18 20

2

4

6

8

10

12

14

16

18

20

Aproximación de grado 3

2 4 6 8 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