我有一个多项式(由矩阵的特征多项式生成),我想解决整数解
import sympy
from sympy.solvers.diophantine import diop_linear
M = sympy.Matrix([[0,1,1],[1,0,1],[1,1,0]])
p = M.charpoly()这个多项式显然是整数根的因式:
print p.factor()
# (_lambda - 2)*(_lambda + 1)**2但是,在使用diop_linear(p)时,输入多项式应为整数系数类型。尽管查阅了文档,但我不确定如何使用渐近0.75来实现这一点。回溯是:
Traceback (most recent call last):
File "test.py", line 8, in <module>
diop_linear(p)
File "/usr/local/lib/python2.7/dist-packages/sympy/solvers/diophantine.py", line 365, in diop_linear
var, coeff, diop_type = classify_diop(eq)
File "/usr/local/lib/python2.7/dist-packages/sympy/solvers/diophantine.py", line 232, in classify_diop
raise TypeError("Coefficients should be Integers")
TypeError: Coefficients should be Integers发布于 2014-03-28 08:54:56
该错误消息显然是不正确的。问题是,diop_linear只适用于线性丢番图方程(对于单变量方程就不那么有趣了)。如果你只想解一个单变量方程,那就使用solve。
https://stackoverflow.com/questions/22410258
复制相似问题