寻找切比雪夫的根&x27;python中的s多项式

寻找切比雪夫的根&x27;python中的s多项式,python,numpy,sympy,polynomials,mpmath,Python,Numpy,Sympy,Polynomials,Mpmath,我想用Python求任意阶切比雪夫多项式的根。我见过勒让德多项式。然而,我已经使用定义为的方法构造了多项式 我尝试使用np.roots(f4),但收到以下错误:TypeError:float()参数必须是字符串或数字,而不是“函数”。此外,即使我可以,它也不适用于高阶多项式 您可以通过使用“基本评估”标题下的方法查找切比雪夫多项式的系数,然后在反向列表中使用生成多项式的根来完成此操作 使用np.roots(f4)不起作用,因为roots函数只接受多项式系数列表,而不是lambda函数 代码: f

我想用Python求任意阶切比雪夫多项式的根。我见过勒让德多项式。然而,我已经使用定义为的方法构造了多项式


我尝试使用
np.roots(f4)
,但收到以下错误:
TypeError:float()参数必须是字符串或数字,而不是“函数”
。此外,即使我可以,它也不适用于高阶多项式

您可以通过使用“基本评估”标题下的方法查找切比雪夫多项式的系数,然后在反向列表中使用生成多项式的根来完成此操作

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

代码:

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]))
[]
[0.]
[ 0.70710678 -0.70710678]
[ 0.8660254 -0.8660254  0.       ]
[-0.92387953  0.92387953 -0.38268343  0.38268343]
输出:

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]))
[]
[0.]
[ 0.70710678 -0.70710678]
[ 0.8660254 -0.8660254  0.       ]
[-0.92387953  0.92387953 -0.38268343  0.38268343]

希望这会有帮助。

确实有帮助。这就是我需要的。然而,正如在本链接中所指出的,似乎高阶多项式的根可能会失效。你能给我一些建议吗?抱歉,这方面不是我的强项-你可能会有更好的时间询问math.SE。