####
实 验 报 告
课程名称数值分析实验项目名称数值积分实验类型上机实验学时班级学号姓名指导教师实验室名称实验时间2014.11.19实验成绩预习部分实验过程
表现实验报告
部分总成绩教师签字日期
实验三 数值积分
一.数值积分的基本思想
1.复合梯形公式:Tn=2;
2.复合辛普森公式:Sn=[f(a)+f(b)+2+4];
以上两种算法都是将a-b之间分成多个小区间(n),则h=(b-a)/n,xk=a+kh, xk+1/2=a+(k+1/2)h,利用梯形求积根据两公式便可。
3.龙贝格算法:在指定区间内将步长依次二分的过程中运用如下公式
(1)Sn=T2n-Tn
(2)Cn=S2n-Sn
(3)Rn=C2n-Cn4
T =T - T,k = 1,2,…
二、计算流程图
1、复合梯形和复合辛普森算法框图:
下图是龙贝格算法框图:
自适应辛普森积分算法流程框图:
二.实验题目及实验目的
实验题目:用不同数值方法计算积分 = -。
(1)取不同的步长h。分别用复合梯形及复合辛普森求积计算积分,给出误差中关于h的函数,并与积分精确值比较两个公式的精度,是否存在一个最小的h,使得精度不能再被改善?
(2)用龙贝格求积计算完成问题(1)。
(3)用自适应辛普森积分,使其精度达到10。
实验目的:
了解并掌握matlab软件的基本编程、操作方法;
初步了解matlab中的部分函数,熟悉循环语句的使用;
通过上机进一步领悟用复合梯形、复合辛普森公式,以及用龙贝格求积
方法计算积分的原理。
三.实验手段:
指操作环境和平台:win7系统下MATLAB R2009a
程序语言:一种类似C语言的程序语言,但比C语言要宽松得多,非常方便。
四.程序
①复合梯形求积程序
function t=TiXing_quad(a,b,.h)
format long
x=a:h:b;
y=sqrt(x).*log(x);
y(1)=0;
t=0;
for k=1:(b-a)/h,
t= t+y(k)+y(k+1);
end
t=t*h/2;
②复合辛普森求积程序
function s=Simpson_quad(a,b,h)
format long
x=a:h:b;
y=sqrt(x).*log(x);
z=sqrt(x+h/2).*log(x+h/2);
y(1)=0;
s=0;
for k=1:(b-a)/h,
s= s+y(k)+y(k+1)+4*z(k);
end
s=s*h./6;
③龙贝格求积程序
function [q,R]=Romberg(a,b,eps)
h=b-a;
R(1,1)=h*(0+sqrt(b).*log(b))/2;
M=1;
J=0;
err=1;
while err>eps
J=J+1;
h=h/2;
S=0;
for p=1:M
x=a+h*(2*p-1);
S=S+sqrt(x).*log(x);
end
R(J+1,1)=R(J,1)/2+h*S;
M=2*M;
for k=1:J
R(J+1,k+1)=R(J+1,k)+(R(J+1,k)-R(J,k))/(4^k-1);
end
err=abs(R(J+1,J)-R(J+1,J+1));
end
q=R(J+1,J+1);
控制台输入代码:
(1)
>> a=0;
>> b=1;
>> h=0.2;
>> t=TiXing_quad(a,b,h)
>> s=Simpson_quad(a,b,h)
>> h=0.02;
>> t=TiXing_quad(a,b,h)
>> s=Simpson_quad(a,b,h)
>> h=0.002;
>> t=TiXing_quad(a,b,h)
>> s=Simpson_quad(a,b,h)
(2)
>> a=0;
>> b=1;
>> eps=10^-8;
>> [quad,R]=Romberg(a,b,eps)
(3)
>> a=0;
>> b=1;
>> eps=10^-4;
>> q=ZiShiYingSimpson('sqrt(x).*log(x)',a,b,eps)
实验结果比较与分析
(1)
h = 0.2时,结果如下:
h = 0.02时,结果如下:
h = 0.002时;得到的结果如下:
由结果(1)可知对于同一步长h,复合辛普森法求积分精度明显比复合梯形法求积的精度要高,且当步长取不