实验报告
实验项目名称数值积分与数值微分实验室数学实验室
所属课程名称数值逼近
实验类型算法设计
实验日期
班级
学号
姓名
成绩
实验概述:
【实验目的及要求】
本次实验的目的是熟练《数值分析》第四章“数值积分与数值微分”的相关内容,掌握复合梯形求积公式、复合辛普森求积公式、龙贝格求积公式以及高斯-勒让德公式。
本次试验要求编写复合梯形求积公式、复合辛普森求积公式、龙贝格求积公式以及高斯-勒让德公式的程序编码,并在MATLAB软件中去实现。
【实验原理】
《数值分析》第四章“数值积分与数值微分”的相关内容,包括:复合梯形求积公式、复合辛普森求积公式、龙贝格求积公式以及高斯-勒让德公式的相应算法和相关性质。
【实验环境】(使用的软硬件)
软件:
MATLAB 2012a
硬件:
电脑型号:联想 Lenovo 昭阳E46A笔记本电脑
操作系统:Windows 8 专业版
处理器:Intel(R)Core(TM)i3 CPU M 350 @2.27GHz 2.27GHz
实验内容:
【实验方案设计】
第一步,将书上关于复合梯形求积公式、复合辛普森求积公式、龙贝格求积公式以及高斯-勒让德公式的内容转化成程序语言,用MATLAB实现;第二步,分别用以上求积公式的程序编码求解不同的问题。
【实验过程】(实验步骤、记录、数据、分析)
实验的主要步骤是:首先分析问题,根据分析设计MATLAB程序,利用程序算出问题答案,分析所得答案结果,再得出最后结论。
实验:用不同数值方法计算积分
(1) 取不同的步长h.分别用复合梯形及复合辛普森求积计算积分,给出误差中关于h的函数,并与积分精确值比较两个公式的精度,是否存在一个最小的h,使得精度不能再被改善?
(2) 用龙贝格求积计算完成问题(1)。
(3)用勒让德多项式确定零点,再代入计算高斯公式,使其精度达到10-4
(1)在MATLAB的Editor中建立一个M-文件,输入程序代码,实现复合梯形求积公式的程序代码如下:
E=t+4/9%复合辛普森误差
end
在command Windows中输入命令:S(10),S(100)以及S(1000),得出的结果为:S(10)
E =
0.005
ans =
-0.4387
>> S(100)
E =
2.4147e-04
ans =
-0.4442
>> S(1000)
E =
9.1563e-06
ans =
-0.4444
总结由结果(1)、(2)可知复合辛普森法求积分精度明显比复合梯形法求积的精度要高,且当步长取不同值时即n越大、h越小时,积分精度越高。
实验结果说明不存在一个最小的h,使得精度不能再被改善。
又两个相应的关于h的
误差(余项)其中η属于a到b。
可知h愈小,余项愈小,从而积分精度越高。
(2)在MATLAB的Editor中建立一个M-文件,输入程序代码,实现龙贝格算法的程序代码如下:
function [q,n]=Roberg(f,a,b)
M=1;
abs0=10;
k=0;
T=zeros(1,1);
h=b-a;
T(1,1)=(h/2)*(subs(f,a)+subs(f,b));
while abs0>0.0001
k=k+1;
h=h/2;
p=0;
for i=1:M
x=a+h*(2*i-1);。