用Python生成Chebyshev多项式的系数

2024-10-01 09:17:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图计算Chebyshev多项式的系数。我们只需将k设置为5。到目前为止,我有以下情况:

a = (0,0,0,0,0,1) #selects the 5th Chebyshev polynomial
p = numpy.polynomial.chebyshev.Chebyshev(a) #type here is Chebyshev
cpoly = numpy.polynomial.chebyshev.cheb2poly(p) #trying to convert to Poly
print cpoly.all_coeffs()

在第二行运行之后,我得到了一个Chebyshev类型的对象。但是,第三行无法转换为类型Poly,而转换为类型numpy.ndarray。因此,我得到一个错误消息,说ndarray没有属性all_coeffs。在

有人知道怎么解决这个问题吗?在


Tags: thetonumpy类型情况allselectsndarray
2条回答

@cel在注释中有正确的想法-您需要将切比雪夫多项式的系数传递给^{},而不是对象本身:

import numpy as np

cheb = np.polynomial.chebyshev.Chebyshev((0,0,0,0,0,1))
coef = np.polynomial.chebyshev.cheb2poly(cheb.coef)

print(coef)
# [  0.,   5.,   0., -20.,   0.,  16.]

16x5-20x3+5x。您可以确认这些是正确的系数here。在

要将这些系数转换为Polynomial对象,只需将数组传递给Polynomial构造函数:

^{pr2}$
In [1]: import numpy.polynomial

In [2]: p = numpy.polynomial.Chebyshev.basis(5)

In [3]: p
Out[3]: Chebyshev([ 0.,  0.,  0.,  0.,  0.,  1.], [-1.,  1.], [-1.,  1.])

In [4]: p.convert(kind=numpy.polynomial.Polynomial)
Out[4]: Polynomial([  0.,   5.,   0., -20.,   0.,  16.], [-1.,  1.], [-1.,  1.])

相关问题 更多 >