为什么在计算转换矩阵时会得到复数 - Sympy

时间:2017-05-05 22:36:31

标签: python matrix transition sympy

我正在使用Sympy来计算转发矩阵。但它对我来说效果不佳。

我的矩阵里面有复杂的数字。我不想有复杂的数字。我该如何摆脱它们?我也试图显示一个小数。你可以看到,根本没有成功。

这是我的代码

from sympy import *
t= symbols('t', real=True)
K = 1
J = 5
A = Matrix([[0, 1], [-K/J, 0]])
T, D = A.diagonalize()
PHI = T*exp(D*t)*T.inv()
print(pretty(N(PHI, 1)))
print(pretty(D)) 

1 个答案:

答案 0 :(得分:0)

原因是因为矩阵A具有复杂的特征值。这是一个示范例子。假设-K/J = 4

然后

>> A = [0 1; -4 0]
A =

   0   1
  -4   0

>> eig(A)
ans =

   0.0000 + 2.0000i
   0.0000 - 2.0000i