首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >求多项式函数Python Sympy的根

求多项式函数Python Sympy的根
EN

Stack Overflow用户
提问于 2021-03-22 19:24:34
回答 1查看 345关注 0票数 0

我试着找一个多项式函数的根,并使用下面的代码:

代码语言:javascript
复制
import sympy
from sympy import Poly, roots
g=sympy.var("x")
p = Poly(x**25-96*x**12-4*x**3+2, gen=g)
print(roots(p))

我不知道为什么它不能工作。如果我使用一个更简单的多项式函数,比如x**2-1,它就能工作

EN

回答 1

Stack Overflow用户

发布于 2021-03-23 00:46:43

roots函数用于以符号方式计算根。由于Abel-Ruffini定理,通常不可能计算5次或更高阶多项式的根。SymPy的RootOf可以象征性地表示这些根,例如:

代码语言:javascript
复制
In [7]: r = RootOf(x**25-96*x**12-4*x**3+2, 0)

In [8]: r
Out[8]: 
       ⎛ 25       12      3       ⎞
CRootOf⎝x   - 96⋅x   - 4⋅x  + 2, 0⎠

In [9]: r.evalf()
Out[9]: -0.763733782729520

如果您只需要根的数值近似值,那么可以使用nroots方法合理有效地计算它们:

代码语言:javascript
复制
In [10]: Poly(x**25-96*x**12-4*x**3+2, x).nroots()
Out[10]: 
[-0.76373378272952, 0.670586457724312, 1.42079389150078, -1.37945211815055 - 0.340175934440882⋅ⅈ, -1.37945211815055 + 0.34017593
4440882⋅ⅈ, -1.06319298080894 - 0.941998724697874⋅ⅈ, -1.06319298080894 + 0.941998724697874⋅ⅈ, -0.611146252548878 - 0.404661250727
9⋅ⅈ, -0.611146252548878 + 0.4046612507279⋅ⅈ, -0.503926321737819 - 1.32829285156355⋅ⅈ, -0.503926321737819 + 1.32829285156355⋅ⅈ, -
0.335293228608336 - 0.580740856215139⋅ⅈ, -0.335293228608336 + 0.580740856215139⋅ⅈ, -0.0448923539768514 - 0.73158885083763⋅ⅈ, -0.
0448923539768514 + 0.73158885083763⋅ⅈ, 0.171380585123656 - 1.41042748193864⋅ⅈ, 0.171380585123656 + 1.41042748193864⋅ⅈ, 0.3818668
72385803 - 0.66145201247479⋅ⅈ, 0.381866872385803 + 0.66145201247479⋅ⅈ, 0.656038617401695 - 0.326927596015531⋅ⅈ, 0.65603861740169
5 + 0.326927596015531⋅ⅈ, 0.807048139834163 - 1.16893577654226⋅ⅈ, 0.807048139834163 + 1.16893577654226⋅ⅈ, 1.25774575783827 - 0.66
0302613302175⋅ⅈ, 1.25774575783827 + 0.660302613302175⋅ⅈ]

https://docs.sympy.org/latest/modules/polys/reference.html#sympy.polys.rootoftools.ComplexRootOf

https://docs.sympy.org/latest/modules/polys/reference.html#sympy.polys.polytools.nroots

https://en.wikipedia.org/wiki/Abel%E2%80%93Ruffini_theorem

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66745103

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档