首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在python中求Chebyshev多项式的根

在python中求Chebyshev多项式的根
EN

Stack Overflow用户
提问于 2019-12-02 11:12:53
回答 1查看 786关注 0票数 2

我想用Python找到任意阶Chebysev多项式的根。我见过勒让德多项式的相似螺纹。但是,我使用定义为这里的方法构造了多项式

代码语言:javascript
复制
import numpy as np 
import sympy as sp 

f0 = lambda x: chebyt(0,x)
f1 = lambda x: chebyt(1,x)
f2 = lambda x: chebyt(2,x)
f3 = lambda x: chebyt(3,x)
f4 = lambda x: chebyt(4,x)
plot([f0,f1,f2,f3,f4],[-1,1])

我尝试过使用np.roots(f4),但是我收到了以下错误:TypeError: float() argument must be a string or a number, not 'function'。另外,看起来,即使我可以,它也不适用于高阶多项式。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-02 11:50:26

您可以通过使用“基本评估”这里标题下的方法找到Chebyshev多项式的系数,然后在反向列表上使用np.roots生成多项式的根。

使用np.roots(f4)无法工作,因为roots函数只接受多项式系数列表,而不是lambda函数。

代码:

代码语言:javascript
复制
from mpmath import chebyt, chop, taylor
import numpy as np

for n in range(5):
    print(np.roots(chop(taylor(lambda x: chebyt(n, x), 0, n))[::-1]))

输出:

代码语言:javascript
复制
[]
[0.]
[ 0.70710678 -0.70710678]
[ 0.8660254 -0.8660254  0.       ]
[-0.92387953  0.92387953 -0.38268343  0.38268343]

希望这能有所帮助。

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

https://stackoverflow.com/questions/59137742

复制
相关文章

相似问题

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