首页 > 代码库 > 复合梯形公式与复合辛普森公式求积分
复合梯形公式与复合辛普森公式求积分
一 实验目的
1. 掌握复合梯形公式与复合辛普森公式的基本思想。
2. 编程实现用复合梯形公式与复合辛普森公式求积分。
3. 熟悉matlab软件的使用。
二 实验内容
1、用复合梯形公式计算积分 I=4/(1+x2)dx ,求它0到1的积分。精确度为10-5.(0.00001)
,精确到
●1 计算公式
h=(b-a)/n
h=h/2[(f(x0)+f(x1))+(f(x1)+f(x2))+(f(x2)+f(x3)+...+(f(xn-1)+f(xn)]
l1 算法分析
En=h2/12[f‘(b)-f‘(a)]
将区间[a,b]等分成n个小区间,在小区间上分别应用低次积分公式来构造公式,通过for循环来实现,分的越细,越接近实际结果,精确度越高。
l2 源程序
function f1=fun4(x) %原函数
f1=4/(1+x^2);
function ff=fun2(x) %函数对x求导
ff=-8*x/((1+x^2)^2);
function f=tixing(a,b) %a,b是区间
a=0;b=1;
disp(‘******复合梯形公式******‘)
h=0.008; %h表示区间被等分成若干份后,每两个数的间距
m=(a:h:b); %形成一维矩阵,每两个数间的间隔是h
n=length(m); %求上矩阵的长度,即元素个数
for i=1:n-1
D(i)=fun4(m(i))+fun4(m(i+1));
end
R=h/2*sum(D); %积分结果
E=-(h^2)*(fun2(b)-fun2(a))/12; %余项,即精度
t=pi-R;
[R;E;t]
实验结果讨论和分析
通过对h的值的改变,发现h值越小,即等分的区间越小,结果越精确,精确度越高。通过手算得到积分结果为π,实验结果为3.14158198692313,结果正确,可见复合梯形公式的精确度较高,运算次数为125.
2、用复合辛普森公式计算积分I=4/(1+x2)dx ,求它0到1的积分。精确度为10-5.(0.00001)
l5 计算公式
h=(b-a)/2n=(xi+1-xi)/2 ;(i=0,1,…n-1)
S=h/3[f(xi)+4f(xi+1/2)+f(xi+1)] (i=0,1,…n-1)
l6 算法分析
复合辛普森公式来求积分是将区间等分为2n份,在每两个相邻的数间再取中间值,利用for循环实现辛普森公式。该公式等分的份数更多,是的精度也更高。
l7 源程序
function f1=fun4(x)
f1=4/(1+x^2); %公式f(x)
function f=xinpusen(a,b) %a,b分别为区间的端点值
a=0;b=1;
disp(‘******复合辛普森形公式******‘)
h1=0.25; %h表示区间被等分成若干份后,每两个相邻数的间距
m=(a:h1:b);
h=h1/2;
n=length(m);
for i=1:n-1
Z(i)=(m(i)+m(i+1))/2;
D(i)=fun4(m(i))+fun4(m(i+1))+4*fun4(Z(i));
end
R=h/3*sum(D);
t=pi-R; %精度
[R;t]
l9 实验结果讨论和分析
从计算结果可以看到,复合辛普森你公式结果更接近精确解,精确度更高,而且运算次数只有40次,大大减少了运算次数,比复合梯形公式收敛性高。
三 本次实验总结
在本次实验过程中,我掌握了复合梯形公式与复合辛普森公式的基本算法与思想,通过编程来实现用复合梯形公式与复合辛普森公式求积分。而且通过上机实验,可以看到复合辛普森公式得到的结果更加精确,运算次数比较少。同时对matlab的使用也更加熟练,对其中常用语句运用更自如。