解集/解四阶多项式根

时间:2020-11-11 11:20:44

标签: python sympy

我正在尝试sympy并尝试求解四阶多项式x**4+b*x+c=0时得到了意外结果,该四阶多项式x**4-1=0简化为b=0,c=-1时,其根为{−1,1,−?,?}。但这是我从python3.8.1中得到的:

from sympy import *
init_printing()
from sympy import __version__ as sympy_version
sympy_version
>>'1.6.2'
x,b,c,r,r1,e,e1=symbols('x,b,c,r,r1,e,e1')
e=sympify('x**4+b*x+c')
r=solveset(e,'x')
e1=e.subs({b:0,c:-1})
r1=solveset(e1)
r.subs({b:0,c:-1}),r1
>>({0}, {−1,1,−?,?})

为什么求解通用方程式,然后用b和c的值代替会失败?我在做什么错了?

我用python 2.7.5 sympy 0.7.6.1online sympy system得到了相同的结果。

1 个答案:

答案 0 :(得分:0)

根据@Maelstrom和@ Oscar-Benjamin在上述评论中提出的评论和见解,sympy给出的答案是文献中引用的二次方程的通用公式。但是该公式在多项式系数的复杂函数条件下有效。 sympy返回的答案不包括这些条件。我不怀疑sympy这样做有充分的理由,但是我认为答案是不可用的。
碰巧 @staticmethod def hide_keyboard(platform): """ Hides the software keyboard on the device. """ if platform == "Android": driver.hide_keyboard() elif platform == "iOS": driver.find_element_by_name("Done").click() 违反了这些条件,并且通用公式计算得出的数字不是根。
从实际出发,应首先将实际值代入多项式,然后求根。

相关问题