【发布时间】:2015-11-13 14:37:17
【问题描述】:
我正在使用 .eigenvals() 函数计算矩阵的特征值。当我为我的矩阵这样做时,我从未声明过的新变量出现在解决方案中,我不知道它来自哪里,也不希望它发生,但它肯定会影响解决方案。 我有 numpy 和 sympy 的问题。 这是我的同情代码:
from sympy import *
D,Bm,Bp,Bz,l=symbols('D Bm Bp Bz l')
H=Matrix(([D+Bz,Bm,0],[Bp,0,Bm],[0,Bp,D-Bz]))
ev=H.eigenvals()
sol=ev.keys()
print sol[0]
print
print sol[1]
print
print sol[2]
解决方案看起来像这样,里面有一个奇怪的“我”。当我想使用计算出的特征值时,我必须定义“我”是什么,否则它不会解决我的公式。
2*D/3 + (-2*Bm*Bp/3 - Bz**2/3 - D**2/9)/(Bm*Bp*D - 8*D**3/27 + D*(-2*Bm*Bp - Bz**2 + D**2)/3 + sqrt((-2*Bm*Bp/3 - Bz**2/3 - D**2/9)**3 + (2*Bm*Bp*D - 16*D**3/27 + 2*D*(-2*Bm*Bp - Bz**2 + D**2)/3)**2/4))**(1/3) - (Bm*Bp*D - 8*D**3/27 + D*(-2*Bm*Bp - Bz**2 + D**2)/3 + sqrt((-2*Bm*Bp/3 - Bz**2/3 - D**2/9)**3 + (2*Bm*Bp*D - 16*D**3/27 + 2*D*(-2*Bm*Bp - Bz**2 + D**2)/3)**2/4))**(1/3)
2*D/3 + (-2*Bm*Bp/3 - Bz**2/3 - D**2/9)/((-1/2 - sqrt(3)*I/2)*(Bm*Bp*D - 8*D**3/27 + D*(-2*Bm*Bp - Bz**2 + D**2)/3 + sqrt((-2*Bm*Bp/3 - Bz**2/3 - D**2/9)**3 + (2*Bm*Bp*D - 16*D**3/27 + 2*D*(-2*Bm*Bp - Bz**2 + D**2)/3)**2/4))**(1/3)) - (-1/2 - sqrt(3)*I/2)*(Bm*Bp*D - 8*D**3/27 + D*(-2*Bm*Bp - Bz**2 + D**2)/3 + sqrt((-2*Bm*Bp/3 - Bz**2/3 - D**2/9)**3 + (2*Bm*Bp*D - 16*D**3/27 + 2*D*(-2*Bm*Bp - Bz**2 + D**2)/3)**2/4))**(1/3)
2*D/3 + (-2*Bm*Bp/3 - Bz**2/3 - D**2/9)/((-1/2 + sqrt(3)*I/2)*(Bm*Bp*D - 8*D**3/27 + D*(-2*Bm*Bp - Bz**2 + D**2)/3 + sqrt((-2*Bm*Bp/3 - Bz**2/3 - D**2/9)**3 + (2*Bm*Bp*D - 16*D**3/27 + 2*D*(-2*Bm*Bp - Bz**2 + D**2)/3)**2/4))**(1/3)) - (-1/2 + sqrt(3)*I/2)*(Bm*Bp*D - 8*D**3/27 + D*(-2*Bm*Bp - Bz**2 + D**2)/3 + sqrt((-2*Bm*Bp/3 - Bz**2/3 - D**2/9)**3 + (2*Bm*Bp*D - 16*D**3/27 + 2*D*(-2*Bm*Bp - Bz**2 + D**2)/3)**2/4))**(1/3)
我也可以用数字来做,结果是我所有的符号都是数字,但“我”在同一点停留在解决方案中。
有没有人以前见过或知道,python 在这里做什么或者这个“我”代表什么?知道那里发生了什么会很有帮助,因为计算出的特征值并没有像我预期的那样完全表现出来,我把责任归咎于包括“我”在内的那些术语。 提前感谢任何 cmets。
【问题讨论】:
-
“我”可以是identity matrix 吗?
-
我也想过这个问题,但对我来说,特征值中的另一个矩阵没有意义。纠正我,如果我错了,但特征值不应该包含矩阵,只是看它的计算过程是什么样的。
标签: python python-2.7 numpy sympy eigenvalue