天天看点

python贝塞尔插值公式_Python实现辛普森公式

在前文提到,推导复杂函数的辛普森数值积分公式时,需要将其通过近似插值成抛物线(多项式)形式,原因是多项式的定积分计算简单。所以可以把这种计算用于近似f(x)的积分。辛普森公式是梯形公式的改进形式。另外,我们还可以通过最小二乘法求函数的近似多项式,这种方法称为高斯积分。

对于辛普森公式,可以发现从第三项开始,奇数项的函数值前面的系数为2,从第二项开始,偶数项的函数值前的系数为4。

python贝塞尔插值公式_Python实现辛普森公式

编程时将其分开。为了方便,σ1和σ2的指标前移1,即

python贝塞尔插值公式_Python实现辛普森公式

python程序

python贝塞尔插值公式_Python实现辛普森公式

对于函数y= 5*x^4 ,划分4个区间,程序计算的结果为

python贝塞尔插值公式_Python实现辛普森公式

辛普森公式的缺点是需要计算很多的函数值。

所幸算法复杂度为 T(n)=O(nlogn),即线性对数时间,可以理解为执行了 n 次对数时间复杂度的操作。

★★★  往期相关  ★★★

数值积分| 辛普森公式

建模| 利用辛普森公式计算湖泊面积

继续阅读