我试图计算第k次切比雪夫多项式的系数我们把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
。有人知道怎么解决这个问题吗?
最佳答案
@cel在注释中有正确的想法-您需要将chebyshev多项式的系数传递到cheb2poly
,而不是对象本身:
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
构造函数:poly = np.polynomial.Polynomial(coef)