Valores y vectores propios
Se denominan valores propios o raíces características de una matriz cuadrada A, a los valores de λ tales que.
Desarrollando el determinante tenemos un polinomio de grado n en λ. Trataremos de encontrar los coeficientes del polinomio y luego, aplicaremos un método de hallar las raíces del polinomio.
Una vez hallados los valores propios, para hallar el vector propio X correspondiente al valor propio λ es necesario resolver el sistema homogéneo
donde el vector X es Siempre podemos tomar x1 como 1, y hallar las otras n-1 incógnitas. De las n ecuaciones podemos tomar n-1, y resolver el sistema lineal.
El polinomio característico
Dada una matriz cuadrada A de dimensión n. El polinomio característico de la matriz es
Los coeficientes se hallan mediante las siguientes relaciones:
(1)
Los valores s1, s2, ... sn son las trazas de las potencias de la matriz cuadrada A.
La aplicación de este método no reviste dificultad, se calculan:
- Las potencias de la matriz A y la traza de cada una de ellas,
- Los coeficientes pi del polinomio característico
- Los valores propios o las raíces del polinomio mediante el comando roots
- Conocidos los valores propios se calculan los vectores propios
Hallar el polinomio característico de la matriz
El desarrollo del determinante secular mediante el método de Leverrier conduce a la ecuación
Conocidos los coeficientes del polinomio característico, se determinan las raíces por algún procedimiento numérico, el mejor procedimiento es utilizar la función MATLAB roots que veremos con más detalle en el capítulo raíces de una ecuación.
Vectores propios
Conocidos los valores propios de una matriz simétrica A, se pueden calcular el vector propio X correspondiente a cada valor propio λ.
AX=λX
mediante el siguiente procedimiento. Supongamos una matriz simétrica A de dimensión 4.
Conocido el valor propio λ, tenemos un sistema de ecuaciones homogéneo de 4 ecuaciones con 4 incógnitas. Le damos a x1 el valor arbitrario de 1 y lo convertimos en el sistema de tres ecuaciones con tres incógnitas
El método Leverrier
A la función
La matriz
V de los vectores propios, cada vector propio correspondiente a un valor propio es un vector columnaLa matriz diagonal
D que contiene los valores propios en las columnas ordenados, de modo que al valor propio λi que se guarda en el elemento diagonalD(i,i) le corresponde el vector columnai de la matriz cuadradaV(1:n,i)
La función
- Calcula los valores propios
Calcula las potencias de la matriz
A y sus trazas guardándolas en el vectors .Calcula
n coeficientes del polinomio característico de acuerdo con las fórmulas (1) y los guarda en el vectorp . Se ha de tener en cuenta que el coeficiente que falta es el de mayor grado y vale 1. El vector de los coeficientes del polinomio característico es el vector ampliado[1, p] cuyo primer término es 1 y a continuación el resto de los coeficienetes calculados.Calcula las raíces del polinomio, que son los valores propios empleando la función MATLAB
roots , a la cual se le pasa el vector de los coeficientes y devuelve el vector (columna) de las raíces.Creamos una matriz
D de dimensiónn en cuya diagonal principal guardamos los valores propios, D(i,i)=λi
- Calcula el vector propio para cada uno de los valores propios.
Extraemos de la matriz
A la submatrizA(2:n,2:n) y creamos otra matrizB de dimensiónn-1 . Los elementos de la diagonal de la matizB , valen B(i,i)=A(i,i)-λiExtraemos los elementos 2..n de la primera columna de la matriz
A del siguiente modo,A(2:n,1) , los cambiamos de signo y los asignamos al vectorC de dimensiónn-1 .Los
n-1 elementos del vector popio correspondiente al valor propio λi se obtienen resolviendo un sistema de n-1 ecuaciones con n-1 incógnitas, mediante el operador división por la izquierda\ tal como hemos visto en la página Vectores y matrices.El vector propio
S correspondiente al valor propio λi está formado por la unidad y los n-1 valores que hemos obtenido al resolver el sistema lineal de n-1 ecuaciones con n-1 incógnitas.El vector propio
S se normaliza (su módulo es la unidad). Recuérdese que el cuadrado del módulo de un vector es el producto escalar de dicho vector consigo mismo.El vector propio
S correspondiente al valor propio λi es la columnai de la matrizV .V(1:n,i)=S/norm(S) . La función MATLABnorm calcula el módulo de un vector.
Finalmente, comprobamos que los resultados son correctos realizando el producto
V×D×V-1
cuyo resultado es la matriz original
function [V,D]=leverrier(A) %V vectores propios en columnas % D valores propios en la diagonal de la matriz n=length(A); %dimensión de la matriz p=zeros(1,n); %reserva memoria para n elementos s=zeros(n,1); B=zeros(n); %reserva memoria para la matriz cuadrada de dimensión n for i=1:n B=A^i; %potencia de la matriz A %calcula la traza de las sucesivas potencias de la matriz A s(i)=trace(B); end %calcula los coeficientes del polinomio característico p(1)=-s(1); for i=2:n p(i)=-s(i)/i; for j=1:i-1 p(i)=p(i)-p(j)*s(i-j)/i; end end %raíces del polinomio característico raiz=roots([1 p]); %Los valores propios aparecen en la diagonal de la matriz D D=diag(raiz); %Vectores propios para cada valor propio C=-1.*A(2:n,1); %columna de A V=zeros(n); S=zeros(n,1); %vector propio for i=1:length(D) B=A(2:n,2:n)-D(i,i)*eye(n-1); %submatriz de A S=[1 (B\C)']; % vectores propios normalizados %cada vector propio es una columna de V V(1:n,i)=S/norm(S); end end
Probamos la función
>> A=[1 2 3 4; 2 1 2 3; 3 2 1 2; 4 3 2 1] A = 1 2 3 4 2 1 2 3 3 2 1 2 4 3 2 1 >> [V,D]=leverrier(A) V = 0.5468 0.6533 0.4483 0.2706 0.4483 0.2706 -0.5468 -0.6533 0.4483 -0.2706 -0.5468 0.6533 0.5468 -0.6533 0.4483 -0.2706 D = 9.0990 0 0 0 0 -3.4142 0 0 0 0 -1.0990 0 0 0 0 -0.5858 >> V*D*inv(V) ans = 1.0000 2.0000 3.0000 4.0000 2.0000 1.0000 2.0000 3.0000 3.0000 2.0000 1.0000 2.0000 4.0000 3.0000 2.0000 1.0000
La función eig
MATLAB dispone de la función
>> A=[1 2 3 4; 2 1 2 3; 3 2 1 2; 4 3 2 1] A = 1 2 3 4 2 1 2 3 3 2 1 2 4 3 2 1 >> [V,D]=eig(A) V = 0.6533 -0.4483 0.2706 0.5468 0.2706 0.5468 -0.6533 0.4483 -0.2706 0.5468 0.6533 0.4483 -0.6533 -0.4483 -0.2706 0.5468 D = -3.4142 0 0 0 0 -1.0990 0 0 0 0 -0.5858 0 0 0 0 9.0990
Ejercicio: Calcular los vectores propios y los valores propios de las matrices