SymPy提供了错误的特征值?

时间:2019-08-07 14:56:44

标签: python anaconda sympy spyder

我在Anaconda / Spyder中使用SymPy,并且eigenvals函数为特定的4x4矩阵提供了错误的特征值。

代码是:

from sympy import *

x = sqrt((sqrt(5)-1)/2)
a = Matrix([[x**2, -x, -x, 1]])
b = Matrix([[-x, -x**2, 1, x]])
c = Matrix([[-x, 1, -x**2, x]])
d = Matrix([[1, x, x, x**2]])

e = zeros(1, 4)
e = e.row_insert(0,a)
e = e.row_insert(1,b)
e = e.row_insert(2,c)
e = e.row_insert(3,d)
e.row_del(4)
e *= x**2

e.eigenvals()

它给出 +/- sqrt(1 +/- 2 * sqrt(9-4 * sqrt(5)))

(对不起,我不能发布图片)

但也可以

lam=symbols('lambda') 
cp= det(e- lam*eye(4))
roots(Poly(cp,lam))

给出正确的答案1和-1,两者都具有多重性2。

0 个答案:

没有答案