10 votos

Encontrar las raíces de un polinomio utilizando su matriz acompañante

Me gustaría encontrar las raíces de un polinomio utilizando su matriz compañera.

El polinomio es ${p(x) = x^4-10x^2+9}$

La matriz de acompañamiento $M$ es

$M={\left[ \begin{array}{cccc} 0 & 0 & 0 & -9 \\ 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 10 \\ 0 & 0 & 1 & 0 \end{array} \right]}$

Un teorema dice que los valores propios de $M$ son las raíces de $p(x)$ . He intentado encontrar el polinomio característico de $M$ pero resultó ser $p(x)$ . ¿Qué debo hacer para obtener los valores propios de $M$ ?

1 votos

Nota $p(x) = x^4-10x^2+9 = x^4-10x^2+25 - 16 = (x^2 -5)^2 - 4^2 = ((x^2 - 5)-4)((x^2-5)+4) = (x^2 -9)(x^2-1) = (x-3)(x+3)(x-1)(x+1)$ por lo que los ceros de $p$ son $\pm1, \pm 3$ . Tal vez ya lo sabías y sólo quieres averiguar la maquinaria de la matriz compañera, pero son los ceros para quien quiera comprobar su respuesta.

2 votos

No sé de dónde ha salido, pero yo diría que es un problema bastante absurdo. El punto, supongo, es que el cálculo de los valores propios es una buena manera de encontrar las raíces de los polinomios (porque el software para encontrar los valores propios está ampliamente disponible y muy bien desarrollado - ver paquetes como Linpack, etc.) Eso es todo muy válido. Pero, entonces, en este caso, encontrar los valores propios es más difícil que encontrar las raíces. Hubiera sido mucho mejor elegir un polinomio cuyas raíces no sean tan obvias.

6voto

Git Gud Puntos 26292

Desde $p(x)$ es bicadrática, entonces si $\alpha$ es raíz, se deduce que $-\alpha$ también es una raíz.

Mirando $M$ puedes notar que si sumas las entradas de cada columna, siempre obtendrás $1$ . Esto implica $1$ es un valor propio. (¿Sabes por qué?).

Ahora tienes dos raíces.

Continúa con la división larga para encontrar las raíces restantes.

Si quieres utilizar la matriz para encontrar todos los valores propios, recuerda que $\det (M)$ es el producto de todos los valores propios. Se puede calcular fácilmente $\det (M)$ a través de la expansión a lo largo de la cuarta columna para encontrar $\det (M)=9$ .

Utiliza de nuevo la primera frase de mi respuesta para encontrar los otros valores propios.

0 votos

Muy bien -- esto da una heurística de cómo uno podría abordar el problema sin software numérico.

2voto

Ron Gordon Puntos 96158

No es de extrañar que hayas obtenido la ecuación característica de la matriz compañera, porque la ecuación proviene de esa matriz precisa.

Si quiere encontrar las raíces de un polinomio utilizando una matriz compañera, utilizaría uno de los métodos numéricos especializados para calcular el valor propio de una matriz. Estos métodos no utilizan el polinomio característico y se adaptan a la simetría de la matriz. Véase, por ejemplo, Recetas numéricas (el enlace va al Método Householder, que no es aplicable a tu matriz, pero te da la idea general de lo que implica).

Normalmente, se utiliza un paquete para hallar los valores propios numéricamente porque, en general, estas rutinas son muy complejas y no merece la pena intentar averiguarlas por uno mismo. LINPACK, Matlab, Mathematica, etc., todos tienen estas rutinas para matrices generales.

2voto

mathreadler Puntos 3517

Existen métodos numéricos para encontrar los valores propios de las matrices que utilizan la multiplicación matriz-vector. La multiplicación matriz-vector es muy rápida si la matriz es dispersa, como ocurre en este caso.

Un método popular es el método de potencia . A grandes rasgos, tomando un vector aleatorio $\bf r$ y calculando ${\bf M}^k{\bf r}$ y ${\bf M}^{k+1}{\bf r}$ para un gran $k$ . Entonces las "partes" de $\bf r$ correspondiente al mayor vector propio debería crecer más rápido (exponencialmente más rápido con $k$ ) de manera que por división elemental de esos dos vectores podemos calcular el valor propio correspondiente a ese vector. Entonces, existen formas de "eliminar" o factorizar secuencialmente partes de un eigespacio.

Así que un método que haga esto podría ser algo así como

  1. Generar $\bf r$ de una distribución aleatoria.
  2. Calcular ${\bf M}^k{\bf r}$ y ${\bf M}^{k+1}{\bf r}$ y dividirlos por elementos para obtener el mayor valor propio.
  3. Factorizar el par valor propio-evector propio por algún método.
  4. Haz un bucle desde el 1 con un nuevo vector aleatorio para obtener el segundo valor propio más grande y así sucesivamente hasta que tengas todos los que quieras.

Una forma de hacer el paso de factorización se describe en "Matrix Analysis" de Horn y Johnson. No tengo el libro a mano en este momento, pero puedo añadir un número de página más tarde si estás interesado.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X