辛普森(Simpson)公式是牛顿-科特斯公式当n=2时的情形,也称为三点公式。利用区间二等分的三个点来进行积分插值。其科特斯系数分别为1/6,4/6,1/6。
设拟柱体的高(两底面α,β间的距离)为H,如果用平行于底面的平面γ去截该图形,所得到的截面面积是平面γ与平面α之间距离h的不超过3次的函数,那么该拟柱体的体积V为
V = H (S_1 + 4S_0 + S_2) /6.
式中,S_1和S_2是两底面的面积,S_0是中截面的面积(即平面γ与平面α之间距离h=H/2时得到的截面的面积)。
复化辛普森公式是复化求积公式的一种。复化求积公式是一类重要的求积公式,指将求积区间分为m个子区间,对每个子区间应用同一求积公式,所得到的复合数值积分公式。
数值积分的计算方法很多,牛顿科特斯方法、龙贝格方法、高斯方法等,其中牛顿科特斯方法是利用插值多项式构造函数积分,但其高阶方法没有收敛性保证,在实际中很少用到。
1、初始化a、b、n。
2、当n是偶数时,计算h=、x(2k-1)、x(2k)。
3、利用辛普森公式计算f(x)的积分。
4、直接利用matlab内部金令quadl进行积分。
如果数值积分的话,使用辛普森方法,利用MATLAB编写程序如下:function [I] = Simpson(f,a,b)
%功能:求已知数据复合辛普森法的近似积分
%输入参数 f:被积分函数;例 'sin(x)'
%a:积分下限;
%b:积分上限;
%输出参数I:复合辛普森法的近似积分
%
n = 0% 初始化 分割块数
I = 0% 初始化 积分
I1 = 0% 临时 积分
I2 = 0.001% 临时 积分
while abs(I2-I1)>0.00001
n = n + 1
h = (b-a)/n % 初始化 步长
I1 = I2
I2 = 0
for i = 0:n-1
x1 = a + h*i% 子区间左端点
x2 = x1 + h% 子区间右端点
I2 = I2 + (h/6)*( subs( sym(f), findsym(sym(f)),x1 ) ...
+ 4*subs( sym(f), findsym(sym(f)), (x1+x2)/2 ) ...
+ subs( sym(f), findsym(sym(f)), x2 ) )
end
end
I = I2
I = vpa(I,6)%设置变量值的精度为小数点后第五位
最后调用该函数
[I] = Simpson(‘sin(x)’, 0, 2*pi)
就可以得到答案
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)