5.2: Encontrar vectores propios numéricamente
( \newcommand{\kernel}{\mathrm{null}\,}\)
Cuando se presenta con una matriz cuadradaA, hemos encontrado típicamente sus valores propios como las raíces del polinomio característicodet(A−λI)=0 y los vectores propios asociados como el espacio nuloNul(A−λI). Desafortunadamente, este enfoque no es práctico cuando estamos trabajando con matrices grandes. En primer lugar, encontrar el polinomio característico de una matriz grande requiere un cálculo considerable, al igual que encontrar las raíces de ese polinomio. Segundo, encontrar el espacio nulo de una matriz singular está plagado de problemas numéricos, como veremos en la actividad de vista previa.
En esta sección, exploraremos una técnica llamada método power que encuentra aproximaciones numéricas a los autovalores y vectores propios de una matriz cuadrada. En términos generales, este método es como se encuentran los vectores propios en aplicaciones informáticas prácticas.
Vista previa Actividad 5.2.1.
Recordemos algunas observaciones anteriores sobre los valores propios y los vectores propios.
- ¿Cómo se relacionan los valores propios y los vectores propios asociadosA con los deA−1?
- ¿Cómo se relacionan los valores propios y los vectores propios asociadosA con los deA−3I?
- Siλ es un valor propio deA, lo que podemos decir sobre las posiciones de pivote deA−λI?
- Supongamos queA=[0.80.40.20.6]. Explicar cómo sabemos que1 es un valor propio deA y luego explicar por qué el siguiente cálculo de Sage es incorrecto.
- Supongamos quex0=[10], y definimos una secuenciaxk+1=Axk; en otras palabras,xk=Akx0. ¿qué pasa axk medida quek crece cada vez más grande?
- Explicar cómo los valores propios deA son responsables del comportamiento señalado en la pregunta anterior.
El método de potencia
Nuestro objetivo es encontrar una técnica que produzca aproximaciones numéricas a los autovalores y vectores propios asociados de una matrizA. Comenzamos por buscar el valor propio que tenga el mayor valor absoluto. A esto lo llamamos el valor propio dominante.
Empecemos por la matriz estocástica positivaA=[0.80.40.20.6]. Pasamos bastante tiempo estudiando este tipo de matriz en la Sección 4.5; en particular, vimos que cualquier cadena de Markov convergerá al vector de estado estacionario único. Reformulemos esta afirmación en términos de los vectores propios deA.
En este caso, tenemos valores propiosλ1=1 yλ2=0.4, y vectores propios asociadosv1=[21] yv2=[−11].
Supongamos que comenzamos con el vector
y encuentra
y así sucesivamente. El punto es que los poderes0.4k se hacen cada vez más pequeños ak medida que crece para quexk≈13v1 cuandok sea grande. kA medida que crece, la contribución del vector propiov2 a los vectoresxk se vuelve cada vez más insignificante. Por lo tanto, los vectoresxk se acercan cada vez más a un vector en el espacio propioE1. Si no conocíamos el autovectorv1, podríamos encontrar un vector base para de estaE1 manera.
Veamos ahora la matrizA=[2112], que tiene valores propios y y vectores propios asociadosλ1=3λ2=1v1=[11] yv2=[−11]. Una vez más, comencemos con el vectorx0=[10]=12v1−12v2 para que
Como muestra la figura, los vectoresxk se estiran por un factor de3 en lav1 dirección y no en absoluto en lav2 dirección. En consecuencia, los vectoresxk se vuelven cada vez más largos, pero su dirección se acerca a la dirección del autovectorv1=[11] asociado al autovalor dominante.
Para encontrar un vector propio asociado al valor propio dominante, evitaremos que la longitud de los vectoresxk crezca arbitrariamente grande multiplicándose por una constante normalizadora apropiada. Hay varias formas de hacerlo; describiremos una forma sencilla. Dado el vectorxk, identificamos su componente que tiene el mayor valor absoluto y lo llamamos A continuaciónmk. definimos¯xk=1mkxk, lo que significa que el componente de¯xk tener el mayor valor absoluto es1.
Por ejemplo, comenzando conx0=[10], encontramosx1=Ax0=[21]. El componente dex1 tener el mayor valor absoluto esm1=2 así que multiplicamos por1m1=12 para obtener¯x1=[112]. Entoncesx2=A¯x1=[522]. Ahora el componente que tiene el mayor valor absoluto esm2=52 así que multiplicamos por25 para obtener ¯x2=[145].
La secuencia resultante de vectores¯xk se muestra en la figura. Observe cómo los vectores¯xk ahora se acercan al autovectorv1. De esta manera, encontramos el autovectorv=[11] de la matrizA. Este es el método de potencia para encontrar un autovector asociado al autovalor dominante de una matriz.
Actividad 5.2.2.
Comencemos considerando la matrizA=[0.50.20.40.7] y el vector inicialx0=[10].
- Calcular el vectorx1=Ax0.
- Encuentram1, el componente dex1 que tiene el mayor valor absoluto. Entonces formulario¯x1=1m1x1. Observe que el componente que tiene el mayor valor absoluto de¯x1 es1.
- Encuentra el vectorx2=A¯x1. Identificar el componentem2 dex2 tener el mayor valor absoluto. Luego forma¯x2=1m2¯x1 para obtener un vector en el que el componente con el mayor valor absoluto es1.
- La celda de Sage a continuación define una función que implementa el método power. Defina la matrizA y el vector inicialx0 a continuación. La
potencia de comando (A, x0, N)
imprimirá el multiplicadorm y los vectores¯xk paraN los pasos del método de potencia.¿Cómo identifica este cálculo un vector propio de la matriz?A?
- ¿Cuál es el valor propio correspondiente de este vector propio?
- ¿Cómo nosmk dicen los valores de los multiplicadores el valor propio asociado al vector propio que hemos encontrado?
- Consideremos ahora la matrizA=[−5.15.7−3.84.4]. Utilice el método power para encontrar el valor propio dominanteA y un autovector asociado.
Observe que el método power nos da no sólo un autovectorv sino también su propio valor asociado. Al igual que en la actividad, consideremos la matrizA=[−5.15.7−3.84.4], que tiene eigenvectorv=[32]. El primer componente tiene el mayor valor absoluto así que multiplicamos por13 para obtener¯v=[123]. CuandoA, multiplicamos por tenemosA¯v=[−1.30−0.86]. Observe que el primer componente todavía tiene el mayor valor absoluto por lo que el multiplicadorm=−1.3 es el valor propioλ correspondiente al vector propio. Esto demuestra el hecho de que los multiplicadores semk acercan al valor propioλ que tiene el mayor valor absoluto.
Observe que el método power requiere que escojamos un vector inicialx0. Para la mayoría de las elecciones, este método encontrará el valor propio que tiene el mayor valor absoluto. Sin embargo, una desafortunada elección dex0 puede que no. Por ejemplo, si hubiéramos elegidox0=v2 en nuestro ejemplo anterior, los vectores en la secuencia noxk=Akx0=λk2v2 detectarán el autovectorv1. Sin embargo, suele suceder que nuestra suposición inicialx0 tiene alguna contribución dev1 que nos permite encontrarla.
El método del poder, como se presenta aquí, fallará para ciertas matrices desafortunadas. Esto se examina en el Ejercicio 5.2.4.5 junto con un medio para mejorar el método de potencia para trabajar para todas las matrices.
Encontrar otros valores propios
El método power da una técnica para encontrar el valor propio dominante de una matriz. Podemos modificar el método para encontrar los otros valores propios también.
Actividad 5.2.3.
La clave para encontrar el valor propio deA tener el valor absoluto más pequeño es señalar que los vectores propios deA son los mismos que los deA−1.
- Siv es un vector propio deA con vector propio asociadoλ, explicar por quév es un vector propio deA−1 con autovalor asociadoλ−1.
- Explicar por qué el valor propio deA tener el valor absoluto más pequeño es el recíproco del valor propio dominante deA−1.
- Explicar cómo utilizar el método de poder aplicadoA−1 para encontrar el valor propio deA tener el valor absoluto más pequeño.
- Si aplicamos el método power aA−1, comenzamos con un vector inicialx0 y generamos la secuencia Noxk+1=A−1xk. es computacionalmente eficiente computarA−1, sin embargo, así que en su lugar resolvemos la ecuaciónAxk+1=xk. Explicar por qué unaLU factorización deA es útil para implementar el método de potencia aplicado aA−1.
- La siguiente celda de Sage define un comando llamado
inverse_power
que aplica el método power a EsA−1. decir,inverse_power (A, x0, N)
imprime los vectoresxk, dondexk+1=A−1xk, y multiplicadores1mk, que se aproximan al valor propio deA. Utilícelo para encontrar el valor propio deA=[−5.15.7−3.84.4] tener el valor absoluto más pequeño. - El método de potencia inversa sólo funciona siA es invertible. Si noA es invertible, ¿cuál es su valor propio teniendo el valor absoluto más pequeño?
- Utilice el método power y el método de power inverso para encontrar los valores propios y los vectores propios asociados de la matrizA=[−0.23−2.33−1.161.08].
Con el método power y el método de power inverso, ahora podemos encontrar los valores propios de una matrizA que tiene los valores absolutos más grandes y más pequeños. Con una modificación más, podemos encontrar todos los valores propios deA.
Actividad 5.2.4.
Recuerda que el valor absoluto de un número nos dice a qué distancia se encuentra ese número0 en la recta numérica real. Por lo tanto, podemos pensar que el método de potencia inversa nos dice el valor propio más cercano a0.
- Siv es un valor propio deA con el valor propio asociadoλ, explicar por quév es un vector propio deA−sI dondes es algún escalar.
- ¿Cuál es el valor propio deA−sI asociado al vector propiov?
- Explicar por qué el valor propio deA más cercano as es el valor propio deA−sI más cercano a0.
- Explicar por qué aplicar el método de potencia inversaA−sI para dar el valor propio deA más cercano as.
- Considerar la matrizA=[3.61.64.07.61.62.24.44.13.94.39.00.67.64.10.65.0]. Si usamos el método power y el método de power inverso, encontramos dos valores propios,λ1=16.35 yλ2=0.75. Viendo estos valores propios en una recta numérica, sabemos que los otros valores propios se encuentran en el rango entre−λ1 yλ1, como sombreados en la Figura 5.2.1.
Figura 5.2.1. El rango de valores propios deA. La celda de Sage a continuación tiene una función
find_closest_eigenvalue (A, s, x, N)
que implementaN pasos del método de potencia inversa usando la matrizA−sI y un vector inicialx. Esta función imprime aproximaciones a los autovalores y vectores propios deA. Al intentar diferentes valores en las regiones grises de la línea numérica, encuentre los otros dos valores propios deA. - Escribir una lista de los cuatro valores propios deA en orden creciente.
Claramente existen restricciones sobre las matrices a las que se aplica esta técnica. Hemos estado haciendo la suposición leve de que los valores propios deA son reales y distintos. SiA tiene valores propios repetidos o complejos, será necesario utilizar alguna otra técnica.
Resumen
Hemos explorado el método power como una herramienta para aproximar numéricamente los valores propios y los vectores propios de una matriz.
- Después de elegir un vector inicialx0, definimos la secuenciaxk+1=Axk. Comok se vuelve cada vez más grande, la dirección de los vectores se aproximaxk cada vez más a la dirección del espacio propio correspondiente al valor propioλ1 que tiene el mayor valor absoluto.
- Normalizamos los vectoresxk multiplicando por1mk, dóndemk está el componente que tiene el mayor valor absoluto. De esta manera, los vectores se¯xk acercan a un vector propio asociado aλ1. Los multiplicadores semk acercan al valor propioλ1.
- Para encontrar el valor propio que tiene el valor absoluto más pequeño, aplicamos el método power usando la matrizA−1.
- Para encontrar el valor propio más cercano a algún números, aplicamos el método power usando la matriz(A−sI)−1.
Ejercicios 5.2.4Ejercicios
Esta celda Sage tiene los comandos power
, inverse_power
y find_closest_eigenvalue
que hemos desarrollado en esta sección. Después de evaluar esta celda, estos comandos estarán disponibles en cualquier otra celda de esta página.
Supongamos queA es una matriz que tiene valores propios−3,−0.2,1, y4.
- ¿Cuáles son los valores propios deA−1?
- ¿Cuáles son los valores propios deA+7I?
Utilice los comandos power
, inverse_power
y find_closest_eigenvalue
para aproximar los valores propios y los vectores propios asociados de las siguientes matrices.
- A=[−2−2−8−2].
- A=[0.60.70.50.2].
- A=[1.9−16.0−13.027.0−2.420.34.6−17.7−0.51−11.7−1.413.1−2.115.36.9−20.5].
Utiliza las técnicas que hemos visto en esta sección para encontrar los valores propios de la matriz
Considerar la matrizA=[0−1−40].
- Describir lo que sucede si aplicamos el método de potencia y el método de potencia inversa usando el vector inicialx0=[10].
- Encuentra los valores propios de esta matriz y explica este comportamiento observado.
- ¿Cómo podemos aplicar las técnicas de esta sección para encontrar los valores propios deA?
Hemos visto que la matrizA=[1221] tiene valores propiosλ1=3λ2=−1 y vectores propios asociadosv1=[11] yv2=[−11].
- Describir lo que sucede cuando aplicamos el método de potencia inversa usando el vector inicialx0=[10].
- Explique por qué sucede esto y brinde un contraste con cómo suele funcionar el método de poder.
- ¿Cómo podemos modificar el método de poder para dar el valor propio dominante en este caso?
Supongamos queA es una2×2 matriz con valores propios4−3 y y queB es una2×2 matriz con valores propios4 y1. si aplicamos el método power para encontrar el valor propio dominante de estas matrices con el mismo grado de precisión, qué matriz requieren más pasos en el algoritmo? Explica tu respuesta.
Supongamos que aplicamos el método power a la matrizA con un vector inicialx0 y encontramos el valor propioλ=3 y el autovectorv. Supongamos que luego aplicamos el método power nuevamente con un vector inicial diferente y encontramos el mismo valor propioλ=3 pero un vector propio diferente w.¿Qué podemos concluir sobre la matrizA en este caso?
El método de poder que hemos desarrollado sólo funciona si la matriz tiene valores propios reales. Supongamos queA es una2×2 matriz que tiene un valor propio complejoλ=2+3i. ¿Qué pasaría si aplicamos el método power aA?
Considerar la matrizA=[1101].
- Encuentra los valores propios y los vectores propios asociados deA.
- Hacer una predicción sobre lo que sucede si aplicamos el método power y el método de power inverso para encontrar valores propios deA.
- Verifica tu predicción usando Sage.