22/02/2023
En el vasto universo de las matemáticas aplicadas y la ingeniería, pocos conceptos son tan fundamentales y omnipresentes como los valores propios y los vectores propios. Estas entidades matemáticas revelan propiedades intrínsecas de las transformaciones lineales y las matrices, sirviendo como pilares en campos tan diversos como la mecánica cuántica, la estabilidad de sistemas dinámicos, el análisis de datos (especialmente en la reducción de dimensionalidad como el Análisis de Componentes Principales o PCA) y el diseño estructural. Comprender cómo calcularlos e interpretarlos es una habilidad invaluable para cualquier profesional o estudiante. Afortunadamente, herramientas computacionales como MATLAB hacen que este proceso sea no solo accesible sino también eficiente. Este artículo te guiará a través del proceso de cálculo de valores y vectores propios en MATLAB, prestando especial atención a cómo manejar y ordenar los resultados para una interpretación clara y precisa, utilizando ejemplos prácticos que te permitirán dominar esta técnica esencial.
¿Qué son los Valores Propios y Vectores Propios?
Antes de sumergirnos en la sintaxis de MATLAB, es crucial entender qué representan los valores y vectores propios. Imagina que tienes una matriz cuadrada, A, que representa una transformación lineal. Cuando esta transformación actúa sobre un vector, generalmente cambia tanto su magnitud como su dirección. Sin embargo, existen ciertos vectores, llamados vectores propios, que, al ser transformados por la matriz A, solo cambian su magnitud, manteniendo su dirección original (o invirtiéndola). La magnitud por la cual son escalados estos vectores se conoce como el valor propio correspondiente.
Matemáticamente, esta relación se expresa mediante la ecuación fundamental:A * v = λ * v
Donde:
Aes la matriz cuadrada (la transformación lineal).ves el vector propio (el vector cuya dirección no cambia).λ(lambda) es el valor propio (el escalar por el cualves multiplicado).
Los valores propios nos dicen "cuánto" se estira o encoge un vector propio en una dirección particular. Los vectores propios, por su parte, nos indican "en qué direcciones" ocurren estas transformaciones puras de escala. Juntos, proporcionan una especie de "esqueleto" o "base" que revela la naturaleza fundamental de la transformación que la matriz representa. Son cruciales para entender el comportamiento a largo plazo de los sistemas, la estabilidad, las frecuencias de resonancia y las direcciones de máxima variabilidad en conjuntos de datos.
Cálculo Básico con eig en MATLAB
MATLAB, con su robusto conjunto de funciones para álgebra lineal, simplifica enormemente el cálculo de valores y vectores propios. La función principal para esta tarea es eig.
La sintaxis más común para obtener tanto los valores como los vectores propios de una matriz A es:
[V,D] = eig(A)Aquí, V es una matriz cuyas columnas son los vectores propios de A, y D es una matriz diagonal donde los elementos de la diagonal son los valores propios correspondientes. Es importante destacar que los vectores propios en V y los valores propios en D están emparejados por columna: la i-ésima columna de V es el vector propio correspondiente al i-ésimo elemento en la diagonal de D.
Por defecto, la función eig no garantiza que los valores propios (y por ende sus vectores propios correspondientes) se devuelvan en un orden particular, como ascendente o descendente. Esto puede ser un detalle importante a tener en cuenta, especialmente cuando se busca comparar resultados o cuando el orden es relevante para análisis posteriores.
Ejemplo Práctico: Descomposición de una Matriz Mágica
Para ilustrar el uso de eig y cómo manejar el orden de los resultados, utilizaremos una matriz mágica de 5x5 como ejemplo. Una matriz mágica es una matriz cuadrada donde la suma de los números en cada fila, columna y ambas diagonales principales es la misma.
Primero, definimos nuestra matriz A:
A = magic(5)Esto producirá la siguiente matriz:
A =
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9Ahora, calculamos sus valores y vectores propios:
[V,D] = eig(A)MATLAB nos devolverá dos matrices, V (vectores propios) y D (valores propios en la diagonal):
V =
-0.4472 0.0976 -0.6330 0.6780 -0.2619
-0.4472 0.3525 0.5895 0.3223 -0.1732
-0.4472 0.5501 -0.3915 -0.5501 0.3915
-0.4472 -0.3223 0.1732 -0.3525 -0.5895
-0.4472 -0.6780 0.2619 -0.0976 0.6330
D =
65.0000 0 0 0 0
0 -21.2768 0 0 0
0 0 -13.1263 0 0
0 0 0 21.2768 0
0 0 0 0 13.1263Observa la matriz D. Los valores propios (los elementos en la diagonal) no están en orden ascendente ni descendente. Para muchos análisis, tener estos valores ordenados es preferible, y es aquí donde entra en juego el siguiente paso crucial.
Ordenando Valores y Vectores Propios para Mayor Claridad
Dado que eig no garantiza un orden específico, es una buena práctica ordenar los valores propios y, crucialmente, reordenar los vectores propios de manera que sigan la misma secuencia. Esto asegura que la correspondencia entre cada valor propio y su vector propio asociado se mantenga intacta.
El proceso implica tres pasos:
- Extraer los valores propios de la diagonal de
D. - Ordenar estos valores y obtener los índices de permutación.
- Usar estos índices para reordenar tanto la matriz diagonal de valores propios como las columnas de la matriz de vectores propios.
Paso 1 y 2: Extraer y Ordenar los Valores Propios
Para extraer los elementos de la diagonal de D, usamos la función diag. Luego, para ordenarlos en orden ascendente y obtener los índices que nos dicen cómo se reordenaron, usamos la función sort.
[d,ind] = sort(diag(D))Aquí, d contendrá los valores propios ordenados, y ind será un vector de índices que nos indica la posición original de cada valor propio en D antes de ser ordenado.
d =
-21.2768
-13.1263
13.1263
21.2768
65.0000
ind =
2
3
5
4
1Como puedes ver, d ahora tiene los valores propios en orden ascendente. El vector ind nos dice, por ejemplo, que el primer valor en d (-21.2768) estaba originalmente en la posición 2 de la diagonal de D, el segundo en la posición 3, y así sucesivamente.
Paso 3: Reordenar la Matriz de Valores Propios y la Matriz de Vectores Propios
Ahora, usaremos el vector ind para reordenar las matrices D y V. Para D, dado que es una matriz diagonal, necesitamos reordenar tanto las filas como las columnas para mantener la estructura diagonal y la correspondencia. Para V, solo necesitamos reordenar las columnas, ya que cada columna es un vector propio.
Reordenando D:
Ds = D(ind,ind)Ds =
-21.2768 0 0 0 0
0 -13.1263 0 0 0
0 0 13.1263 0 0
0 0 0 21.2768 0
0 0 0 0 65.0000Ahora, la matriz Ds tiene los valores propios en su diagonal principal en orden ascendente.
Reordenando V:
Vs = V(:,ind)Vs =
0.0976 -0.6330 -0.2619 0.6780 -0.4472
0.3525 0.5895 -0.1732 0.3223 -0.4472
0.5501 -0.3915 0.3915 -0.5501 -0.4472
-0.3223 0.1732 -0.5895 -0.3525 -0.4472
-0.6780 0.2619 0.6330 -0.0976 -0.4472La matriz Vs ahora tiene sus columnas (los vectores propios) reordenadas de tal manera que cada columna i de Vs corresponde al valor propio Ds(i,i). Este paso es esencial para mantener la integridad de la descomposición.
Verificación de la Descomposición de Valores Propios
Una vez que hemos calculado y, opcionalmente, ordenado los valores y vectores propios, es una buena práctica verificar que la descomposición sea correcta. La relación fundamentalA * v = λ * v puede extenderse a las matrices completas de la siguiente manera:A * V = V * D
Esto significa que si multiplicamos la matriz original A por la matriz de vectores propios V, el resultado debe ser igual a la multiplicación de la matriz de vectores propios V por la matriz diagonal de valores propios D. En un entorno de cálculo real, debido a los errores de redondeo de punto flotante, no esperamos una igualdad perfecta, sino que la diferencia sea insignificante.
Podemos verificar esto calculando la norma de la diferencia entre ambos lados de la ecuación, tanto para los resultados originales como para los ordenados:
e1 = norm(AV - VD);
e2 = norm(AVs - VsDs);
e = abs(e1 - e2)El valor de e debería ser extremadamente pequeño, cercano a cero, lo que confirma que tanto la descomposición original como la reordenada son numéricamente equivalentes y correctas. Esto nos da la confianza de que nuestros cálculos son válidos.
Aplicaciones y Consideraciones Adicionales
La capacidad de calcular valores y vectores propios es una piedra angular en muchas disciplinas. Aquí te presentamos algunas de sus aplicaciones más destacadas:
- Análisis de Componentes Principales (PCA): En el aprendizaje automático y la estadística, los valores propios representan la varianza a lo largo de las direcciones de los vectores propios (componentes principales), permitiendo la reducción de dimensionalidad y la extracción de características.
- Estabilidad de Sistemas: En ingeniería de control, los valores propios de la matriz de estados de un sistema dinámico determinan su estabilidad.
- Mecánica Cuántica: Los valores propios corresponden a los niveles de energía de un sistema, y los vectores propios a los estados cuánticos.
- Análisis de Vibraciones: En ingeniería mecánica, los valores propios pueden representar las frecuencias naturales de vibración de una estructura, y los vectores propios, las formas de modo correspondientes.
- Grafos y Redes: En la teoría de grafos, los valores y vectores propios de la matriz de adyacencia o Laplaciana revelan propiedades estructurales de la red.
Consideraciones importantes:
- Valores Propios Complejos: Para matrices no simétricas, los valores y vectores propios pueden ser números complejos. MATLAB los manejará automáticamente.
- Vectores Propios Normalizados: Por defecto, MATLAB normaliza los vectores propios de modo que su norma euclidiana sea 1. Esto es una convención, y un vector propio sigue siendo válido si se escala por cualquier factor no nulo.
- Matrices Singulares: Si una matriz es singular (determinante cero), tendrá al menos un valor propio de cero.
- Función
eigs: Para matrices muy grandes y dispersas (sparse), o cuando solo se necesitan unos pocos valores y vectores propios específicos (por ejemplo, los más grandes o los más pequeños), la funcióneigses más eficiente queeig.
Preguntas Frecuentes (FAQ)
- ¿Siempre se pueden calcular valores y vectores propios para cualquier matriz?
- No, solo para matrices cuadradas. Para matrices no cuadradas, conceptos relacionados como la Descomposición en Valores Singulares (SVD) son los análogos.
- ¿Por qué los vectores propios de mi resultado difieren de los de otro software o ejemplo?
- Los vectores propios son únicos hasta un factor escalar. Es decir, si 'v' es un vector propio, 'cv' (donde 'c' es cualquier escalar no cero) también lo es. MATLAB normaliza los vectores propios para que su magnitud sea 1, pero la dirección es lo que importa. Además, el orden de los vectores y valores propios puede variar si no se ordenan explícitamente.
- ¿Qué significa un valor propio de cero?
- Un valor propio de cero indica que la matriz es singular, es decir, no invertible. Esto significa que la transformación lineal mapea al menos una dirección (el vector propio asociado) al vector cero.
- ¿Pueden ser los valores propios números complejos?
- Sí, absolutamente. Si una matriz no es simétrica o hermitiana, sus valores propios pueden ser números complejos. MATLAB los calculará y mostrará correctamente.
- ¿Cuál es la diferencia entre
eig(A)yeigs(A)? eig(A)calcula *todos los valores y vectores propios de una matriz densa.eigs(A)es una función más especializada y eficiente para matrices dispersas (sparse) o cuando solo se necesitan un subconjunto de los valores propios (por ejemplo, los k valores propios más grandes o más pequeños). Para la mayoría de las matrices densas de tamaño moderado,eiges suficiente.
El cálculo de valores y vectores propios es una habilidad fundamental en el arsenal de cualquier persona que trabaje con matemáticas, ingeniería, física o ciencia de datos. MATLAB, con su función eig, proporciona una forma potente y sencilla de realizar estas computaciones. Dominar no solo el cálculo, sino también la interpretación y el ordenamiento de los resultados, como hemos visto con el ejemplo de la matriz mágica, es esencial para extraer información significativa y aplicar estos conceptos de manera efectiva en problemas del mundo real. Con esta guía, esperamos que te sientas más seguro al abordar tus propios análisis de valores y vectores propios en MATLAB.

Si quieres conocer otros artículos parecidos a Cálculo y Ordenamiento de Valores Propios en MATLAB puedes visitar la categoría Matemáticas.
