
在数值积分推导辛普森公式时就是将函数插值成为多项式形式,原因在于多项式的简洁。任何初等函数都可以用泰勒公式展开成多项式的形式,然后在多项式的基础上作求导运算。也可以用别的插值方法,比如拉格朗日插值,样条插值,埃尔米特插值等等。

如果 作为一组离散数据点给出,则插值会非常有效。通常建议将多项式的阶数应该小于6,以避免振荡。
##python定义多项式就是将多项式系数保存在一个列表中p = a[n]for i in range(1,n+1):p = a[n-i] + p*x
四阶多项式
可写成
令
这里, 一样。对于 次多项式
有以下递推式
两边对 求一阶导,得
对 求二阶导,得
以上过程就体现了多项式的简洁。Python代码:
"""p = a[0] + a[1]*x + a[2]*xˆ2 +...+ a[n]*xˆn计算多项式p的一阶导数dp以及二阶导数ddp"""class Polynomials:def __init__(self, a):self.a = a# 计算多项式的一阶导数dp以及二阶导数ddpdef evalPolynomials(self,x):n = len(self.a) - 1p = self.a[n]dp = 0.0ddp = 0.0for i in range(1,n+1):ddp = ddp*x + 2.0*dpdp = dp*x + pp = p*x + self.a[n-i]return p,dp,ddp### 创建多项式对象px = 1 + x + 2xˆ2 + 3xˆ3 + 4xˆ4px = Polynomials([1,1,2,3,4])## px在x=1处的一阶导数与二阶导数[p0,p1,p2] = px.evalPolynomials(1)print(p0,p1,p2)
★★★★往期相关★★★★