我是第一次使用Sympy库。我需要提取特征多项式的所有系数以便后续使用。 例如,我的代码如下:
import sympy as sp
M = sp.Matrix([[0, 0, 0, 1, 0, 1], [0, 0, 0, 0, 1, 0], [0, 1, 0, 1, 0, -1], [1, 0, -1, 0, 1, 0], [0, 0, 0, 1, 0, 0], [-1, 0, 1, 0, 0, 0]])
lamda = symbols('lamda')
p = M.charpoly(lamda)
print(p)
print(p.coeffs())
这将输出:
PurePoly(lamda**6 + lamda**4 - lamda**2, lamda, domain='ZZ')
[1, 1, -1]
然而,我需要 [1, 0, 1, 0, 1, 0, 0],其中包括零系数的Lamda指数4、3、1和0项。通常,我会使用for循环遍历方程式,以查看哪些项丢失,以便将零插入到系数数组中的适当位置。但是,当我尝试这样做时,我收到了一个错误,说PurePoly类型不支持索引。因此,我想知道是否有人知道如何使sympy包含零或者自己怎么做?我最终需要将此代码合并到许多矩阵的循环中,因此无法手动完成。谢谢。
help(p)
并搜索coeff
(输入/coeff
)。这将帮助你找到不仅方法名称中提到“coeff”的方法,还有文档字符串中提到它的方法。 - asmeurer