试验二数值积分.doc
文本预览下载声明
佛山科学技术学院
实 验 报 告
课程名称 数值分析
实验项目 数值积分
专业班级 姓 名 学 号
指导教师 陈剑 成 绩 日 期 月 日
一、实验目的
1、理解如何在计算机上使用数值方法计算定积分的近似值;
2、学会复合梯形、复合Simpson和龙贝格求积分公式的编程与应用。
3、探索二重积分在矩形区域的数值积分方法。
二、实验要求
按照题目要求完成实验内容;
写出相应的Matlab 程序;
给出实验结果(可以用表格展示实验结果);
分析和讨论实验结果并提出可能的优化实验。
写出实验报告。
三、实验步骤
1、用不同数值方法计算积分
(1)取不同的步长,分别用复合梯形及复合辛普森求积计算积分,给出误差中关于的函数,并与积分精确值比较两公式的精度。
(2)用龙贝格求积计算完成问题(1)。
2、给出一种求矩形区域上二重积分的复化求积方法,然后计算二重积分,
其中积分区域。
求积公式参考代码:
1、复化梯形求积公式
function I=T_quad(x,y)
% 复化梯形求积公式,其中
% x --- 向量,被积函数自变量的等距节点
% y --- 向量,被积函数在节点处的函数值
n=length(x); m=length(y);
if n~=m
error(The lengths of X and Y must be equal);
return;
end
h=(x(n)-x(1))/(n-1); a=[1 2*ones(1,n-2) 1];
I=h/2*sum(a.*y);
2、复化Simpson求积公式
function I=S_quad(x,y)
% 复化Simpson求积公式,其中
% x --- 向量,被积函数自变量的等距节点
% y --- 向量,被积函数在节点处的函数值
n=length(x); m=length(y);
if n~=m
error(The lengths of X and Y must be equal);
return;
end
if rem(n-1,2)~=0
% 如果n-1不能被2整除,则调用复化梯形公式
warning(给出的点数不适用于Simpson公式,调用梯形公式求积分);
I=T_quad(x,y);
return;
end
N=(n-1)/2; h=(x(n)-x(1))/N; a=zeros(1,n);
%如果等分成N段,且从1开始计算,应该是公式N=(n-1)/2;
for k=1:N
a(2*k-1)=a(2*k-1)+1; a(2*k)=a(2*k)+4; a(2*k+1)=a(2*k+1)+1;
% 如果下标k从1开始计算,则每小段区间的下标应该为1、3、5、7、、、,中间节点
% 的下标分别是2、4、6、、,对应书本P107公式(3.4),它们的系数分别为1,4,1;
end
I=h/6*sum(a.*y);
3、Romberg 求积公式
function I=R_quad_iter(fun, a, b, ep)
% Romberg 求积公式,其中
% fun --- 被积函数,在调用之前需要用inline()函数定义其为内置函数。
% a,b --- 积分区间的端点,要求ab
% ep --- 精度要求,省缺为1e-5
% 注意函数feval() 及函数inline()的使用。
% nargin指设定参数的个数
if nargin 4 ep = 1e-5; end;
m=1; h=b-a;
I=h/2*(feval(fun, a)+feval(fun,b)); T(1,1)=I;
while 1
N=2^(m-1); h=h/2; I=I/2;
for i=1:N
I=I+h*feval(fun,a+(2*i-1)*h);
end
T(m+1,1)=I; M=2*N; k=1;
while M1;
T(m+1,k+1)=(4^k*T(m+1,k)-T(m,k))/(4^k-1);
M=M/2; k=k+1;
end
显示全部