Я пытаюсь вычислить собственные векторы многих матриц 3x3, используя python.Мой код на python основан на коде из Mathematica, который использует функцию Eigenvector [].Я попытался использовать функцию eig () от numpy и scipy, и в большинстве случаев собственные векторы, вычисленные в mathematica и python, идентичны.Однако есть несколько случаев, когда собственные векторы, вычисленные в python, противоположны по знаку тем, которые вычисляются в mathematica.
Я уже пытался использовать numpy и scipy для вычисления собственных векторов, которые приводят к одной и той же проблеме.
Код Python
_, evec = eig(COVMATRIX)
Код Mathematica
evec = Eigenvectors[COVMATRIX]
Обратите внимание, что в Mathematica собственные векторы расположены вдоль строк, тогда как в Python собственные векторы расположены вдоль столбцов в матрице.,
Учитывая
COVMATRIX = [[2.9296875e-07, 0.0, 2.09676562e-10],
[0.0, 2.9296875e-07, 1.5842226562e-09],
[2.09676562e-10, 1.58422265e-09, 5.85710e-11]]
Собственные векторы от Python:
[[-7.15807155e-04, 9.91354763e-01, -1.31206788e-01],
[-5.40831983e-03, -1.31208740e-01, -9.91340011e-01],
[9.99985119e-01, 2.21572611e-13, -5.45548378e-03]]
Собственные векторы от Mathematica:
{{-0.131207, -0.99134, -0.00545548},
{0.991355, -0.131209, 2.6987*10^-13},
{-0.000715807, -0.00540832, 0.999985}}
В этом случае собственные векторыто же самое между mathematica и python, но ...
Учитывая
COVMATRIX = [[2.9296875e-07, 0.0, 6.3368875e-10],
[0.0, 2.9296875e-07, 1.113615625e-09],
[6.3368875e-10, 1.113615625e-09, 5.0957159954e-11]]
Собственные векторы от Python
[[ 2.16330513e-03, 8.69137041e-01, 4.94566602e-01],
[ 3.80169349e-03, -4.94571334e-01, 8.69128726e-01],
[-9.99990434e-01, 1.11146084e-12, 4.37410133e-03]]
Но собственные векторы от Python противоположны по знакуСобственные векторы в Mathematica, которые ниже
{{-0.494567, -0.869129, -0.0043741},
{0.869137, -0.494571, 1.08198*10^-12},
{-0.00216331, -0.00380169, 0.99999}}