请运行以下代码
from sympy.solvers import solve
from sympy import Symbol
x = Symbol('x')
R2 = solve(-109*x**5/3870720+4157*x**4/1935360-3607*x**3/69120+23069*x**2/60480+5491*x/2520+38-67,x)
print R2
代码的输出是
[2*CRootOf(109*x**5 - 4157*x**4 + 50498*x**3 - 184552*x**2 - 527136*x + 3507840, 0), 2*CRootOf(109*x**5 - 4157*x**4 + 50498*x**3 - 184552*x**2 - 527136*x + 3507840, 1), 2*CRootOf(109*x**5 - 4157*x**4 + 50498*x**3 - 184552*x**2 - 527136*x + 3507840, 2), 2*CRootOf(109*x**5 - 4157*x**4 + 50498*x**3 - 184552*x**2 - 527136*x + 3507840, 3), 2*CRootOf(109*x**5 - 4157*x**4 + 50498*x**3 - 184552*x**2 - 527136*x + 3507840, 4)]
有人能解释一下答案代表什么,以及如何以常规形式得到输出,即如果答案是0.1,0.2,0.3,0.1,0.4
,sympy通常会将答案输出为[0.1,0.2,0.3,0.1,0.4]
要获得答案中的数值近似值,可以使用N()。因为有多个解决方案,所以可以循环查看列表。我用了一个更简单的公式,因为你用了一段时间。。。在
试试这个:
【编辑】:如下面的注释所述,五阶方程只有在将sympy升级(我的例子是升级到1.0)后才能求解。在
SymPy的
solve
只给出符号解。CRootOf
是一种表示根不能用根表示的多项式根的方法。如果您只对数值解感兴趣,您可以对@tfv建议的每个项使用N
,或者使用nsolve
,它可以数值求解方程。一般来说,如果只关心数值解,符号solve
可能会有点过火。在相关问题 更多 >
编程相关推荐