- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE
PAGE 2
数值积分的Matlab的实现
一、课题名称
选用复合梯形公式,复合Simpson公式,Romberg算法,计算
(1)I =
(2)I =
(3)I =
(4) I =
二、要求
1、编制数值积分算法的程序;
2、分别用两种算法计算同一个积分,并比较其结果;
3、分别取不同步长,试比较计算结果(如n = 10, 20等);
4、﹡给定精度要求,试用变步长算法,确定最佳步长﹡。
三、目的和意义
1、深刻认识数值积分法的意义;
2、明确数值积分精度与步长的关系;
3、根据定积分的计算方法,可以考虑二重积分的计算问题。
四、内容
1、复合梯形公式:
复合Simpson公式:
3、Romberg公式:
五、Matlab编程:
将以下程序录入Matlab的Editor窗口中,保存为*.m函数文件。
1、复合梯形公式编程如下:
function [I,step] = CombineTraprl(f,a,b,eps)
%f 被积函数
%a,b 积分上下限
%eps 精度
%I 积分结果
%step 积分的子区间数
if(nargin ==3)
eps=1.0e-4;
end
n=1;
h=(b-a)/2;
I1=0;
I2=(subs(sym(f),findsym(sym(f)),a)+subs(sym(f),findsym(sym(f)),b))/h;
while abs(I2-I1)eps
n=n+1;
h=(b-a)/n;
I1=I2;
I2=0;
for i=0:n-1
x=a+h*i;
x1=x+h;
I2=I2+(h/2)*(subs(sym(f),findsym(sym(f)),x)+subs(sym(f),findsym(sym(f)),x1));
end
end
I=I2;
step=n;
2、复化Simpson公式编程如下:
function [I step]= Simpson(f,a,b,eps)
% f为函数,
% a为积分上限,
% b为积分下限,
% eps为积分精度
% step为划分区间个数
if(nargin==3)
eps=1.0e-4;
end
n=2;
h=(b-a)/2;
I1=2;
I2=(subs(sym(f),findsym(sym(f)),a)+subs(sym(f),findsym(sym(f)),b))/h;
while abs(I2-I1)eps
n=n+1;
h=(b-a)/n;
I1=I2;
I2=0;
for i=0:n-1
x=a+h*i;
x1=x+h;
I2=I2+(h/6)*(subs(sym(f),findsym(sym(f)),x)+...
4*subs(sym(f),findsym(sym(f)),(x+x1)/2)+...
subs(sym(f),findsym(sym(f)),x1));%公式
end
I=I2;
step=n;
end
3、龙贝格求积公式编程如下:
function [I,step]=Roberg(f,a,b,eps)
if(nargin==3)
eps=1.0e-4;
end;
M=1;
tol=10;
k=0;
T=zeros(1,1);
h=b-a;
T(1,1)=(h/2)*(subs(sym(f),findsym(sym(f)),a)+subs(sym(f),findsym(sym(f)),b));
while toleps
k=k+1;
h=h/2;
Q=0;
for i=1:M
x=a+h*(2*i-1);
Q=Q+subs(sym(f),findsym(sym(f)),x);
end
T(k+1,1)=T(k,1)/2+h*Q;
M=2*M;
for j=1:k
T(k+1,j+1)=T(k+1,j)+(T(k+1,j)-T(k,j))/(4^j-1);
end
tol=abs(T(k+1,j+1)-T(k,j));
end
I=T(k+1,k+1);
step=k;
六、运行程序:
1、I =
1.1用复合梯形求积公式:
在Matlab的Command Window中键入如下内容:
CombineTrapr
文档评论(0)