复合辛普森公式
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验5 复合辛普森公式
李涛 201226100108 计自1201
一、实验目的
● 用复合辛普森公式计算积分
dx x ⎰
+48
2cos 1,使误差不超过-4
10(注意所给积分特点,
做出相应的处理后再计算)
二、实验步骤 1.算法原理
复合辛普森原理:
将区间],[b a 划分为n 等分,在每个子区间[]1,+k k x x 上采用辛普森公式,若记
,2
1
21h x x k k +
=+则得 ● ∑⎰
-===
1
)()(n k b
a
dx x f dx x f I
● ).()]()(4)([61
21f R x f x f x f h n n k k k k +++=∑-=+
记
● ∑-=+++=1
1)]()(4)([6n k k k k n x f x f x f h S
● ],)()(2)(4)([6101
1
21∑∑-=-=++++=n k n k k k b f x f x f a f h
称为复合辛普森求积公式,其余项为
● .),(),()2(180)(10
1)
4(4∑-=+∈-
=-=n k k k k k n n x x f h h S I f R ηη
于是当],[)(4
b a C x f ∈时,与复合梯形公式相似有 ● ),(),()2
(180)()
4(4b a f h a b S I f R n n ∈--
=-=ηη 易知误差阶为4
h ,收敛性是显然的,实际上,只要],[)(b a C x f ∈则可得到收敛性,即 ● ⎰
=
∞
→b
a
n n dx x f S )(lim
此外,由于n S 中求积公系数均为正数,故知辛普森公式计算稳定。
2.算法步骤
复合辛普森:
首先将区间],[b a 划分为n 等分,在每个子区间[]1,+k k x x 上采用辛普森公式,若记
,2
1
21h x x k k +
=+则得
∑-=+++=1021)]()(4)([6n k k k k n x f x f x f h S ])()(2)(4)([6101
1
21∑∑-=-=++++=n k n k k k b f x f x f a f h
算法过程:
这里将辛普森公式写为Sn()函数,然后在Solve()函数里依次计算S1,S2,S4,S6.......当相邻的精度小于eps 时退出循环,则S2n 保存结果。
三.程序代码
#include
return sqrt(1+cos(x)*cos(x)); }//被积函数
double Sn(double a,double b,double n){ double h=(a+b)/(2*n); double sum=0;
for(int k=1;k<=n;k++){ sum+=2*f(a+(2*k-1)*h); sum+=f(a+2*k*h); }
sum=(sum*2+f(a)-f(b))*h/3;
return sum;
}//辛普森公式
double Solve(double a,double b){
int i=1;
double S1n=Sn(a,b,i);
double S2n=Sn(a,b,2*i);
while(fabs(S1n-S2n)>eps){
cout<<"n = "<