我试图用python插值一个通用多项式,只是为了更好地理解这个理论。我在numpy中看到了一些关于使用切比雪夫多项式的库的内容,我开发了以下代码:
# f(x) = -3 + 2x^2 - x^3 + x^4
f = lambda x: -3 + 2*x**2 - x**3 + x**4
pcoeffs = [-3, 0, 2, -1, 1]
ccoeffs = np.polynomial.chebyshev.poly2cheb(pcoeffs)
fpoly = np.polynomial.Polynomial(pcoeffs)
fcheb = np.polynomial.Chebyshev(ccoeffs)
我知道切比雪夫多项式是基于切比雪夫点的多项式,计算如下:
我用这些点来计算多项式,公式如下:
哪里:
-ak是在定义之前在切比雪夫点上计算的函数,如果我是正确的,我可以用“np.多项式.切比雪夫(CCOEFS)”找到这个函数
现在,运行前面的代码,我得到以下输出:
现在我有一些问题:
我上面写的是什么,对吗?
如何找到ti(x)的值?
如何在python中用绘图表示切比雪夫多项式?
提前谢谢!
1条答案
按热度按时间emeijp431#
我相信你写的是对的。
如果我理解正确的话,你想计算以t_i为基础显示的多项式。如果是这样的话,你可以在某个值上调用多项式。
fcheb(0) --> -3
. 如果你真的想知道,例如。T_10(np.pi)
是吗np.polynomial.Chebyshev.basis(10)(np.pi)
.这是多项式的并排图。请注意,我稍微调整了你的第二个多项式,以看到这两个,而不是让它们完全相同。
你真的应该试试
np.polynomial.chebyshev.chebfit
如果你想了解切比雪夫多项式插值。