系数应为整数:syy diophantine方程

时间:2014-03-14 16:08:27

标签: python sympy

我有一个多项式(从矩阵的特征多项式生成),我想解决整数解

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)时,输入多项式应该是整数系数类型。尽管查看了文档,但我还不确定如何使用sympy 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

1 个答案:

答案 0 :(得分:1)

该错误消息显然不正确。问题是diop_linear仅适用于线性不定方程(对于单变量方程不是那么有趣)。如果您只想解决单个变量方程式,只需使用solve