Pregunta

Me estoy haciendo un vector Eigen-mal (también controladas por la ejecución de varias veces para estar seguro) cuando estoy usando matrix.eig(). La matriz es:

1.2290 1.2168 2.8760 2.6370 2.2949 2.6402
1.2168 0.9476 2.5179 2.1737 1.9795 2.2828
2.8760 2.5179 8.8114 8.6530 7.3910 8.1058
2.6370 2.1737 8.6530 7.6366 6.9503 7.6743
2.2949 1.9795 7.3910 6.9503 6.2722 7.3441 
2.6402 2.2828 8.1058 7.6743 7.3441 7.6870

La función devuelve los vectores propios:

-0.1698  0.6764  0.1442 -0.6929 -0.1069  0.0365
-0.1460  0.6478  0.1926  0.6898  0.0483 -0.2094
-0.5239  0.0780 -0.5236  0.1621 -0.2244  0.6072
-0.4906 -0.0758 -0.4573 -0.1279  0.2842 -0.6688
-0.4428 -0.2770  0.4307  0.0226 -0.6959 -0.2383
-0.4884 -0.1852  0.5228 -0.0312  0.6089  0.2865

Matlab da la siguiente eigen-vector para la misma entrada:

0.1698 -0.6762 -0.1439  0.6931  0.1069  0.0365
0.1460 -0.6481 -0.1926 -0.6895 -0.0483 -0.2094
0.5237 -0.0780  0.5233 -0.1622  0.2238  0.6077
0.4907  0.0758  0.4577  0.1278 -0.2840 -0.6686
0.4425  0.2766 -0.4298 -0.0227  0.6968 -0.2384
0.4888  0.1854 -0.5236  0.0313 -0.6082  0.2857

Los eigen-valores para MATLAB y JAMA son coincidentes sino vectores propios de los primeros 5 columnas están invertidas en signo y sólo la última columna es exacta.

¿Hay algún problema en el tipo de entrada que Jama.Matrix.EigenvalueDecomposition.eig() acepte o cualquier otro problema con el mismo? Por favor, dime cómo puedo solucionar el error. Gracias de antemano.

¿Fue útil?

Solución

No hay error aquí, ambos resultados son correctos - como es cualquier otro momento escalares de los vectores propios.

Hay un número infinito de vectores propios que funcionan - es sólo convención de que la mayoría de los programas de software informan los vectores que tienen longitud de uno. Eso Jama informa vectores propios iguales a -1 veces los de Matlab es probablemente sólo un artefacto del algoritmo que utilizaban.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top