数值分析课程设计.docx
- 文档编号:7032999
- 上传时间:2023-01-16
- 格式:DOCX
- 页数:11
- 大小:169.77KB
数值分析课程设计.docx
《数值分析课程设计.docx》由会员分享,可在线阅读,更多相关《数值分析课程设计.docx(11页珍藏版)》请在冰豆网上搜索。
数值分析课程设计
华北水利水电大学
数值分析上机实验报告
(十)
学院:
数学与信息科学
专业:
信息与计算科学
小组成员(姓名、学号):
刘闯(201216510)
孙志攀(201216511)
日期:
2014年1月1日
课程设计题目
10.设计题目:
Romberg积分法
设计内容:
(1)用几个低阶的Newton-Cotes公式计算积分
的近似值,自己设置不同精度要求,对结果进行比较分析。
(2)用Romberg积分法计算积分
的近似值,自己设置不同精度要求,对结果进行比较分析;与
(1)的结果进行比较分析,谈谈你的体会。
①Cotes公式积分计算MatLab代码如下:
functions=cotes(f,a,b,n)
%f:
ÒªÇóº¯Êý
%a,b:
Çø¼ä
%n:
µÈ·ÖÊý
%µ÷Óøñʽ£º
formatlong%ÉèÖþ«¶È
symst
h=(b-a)/n;%¼ÆËã²½³¤
C=zeros(1,n+1);
%ÇóNewton-CotesϵÊý
j=1;
fork=0:
n
d=1;
J=((-1)^(n-k))/(n*prod(1:
k)*prod(1:
n-k));
fori=0:
n
ifi~=k
d=d*(t-i);
end
end
C(j)=J*int(d,0,n);
j=j+1;
end
%Ç󶨻ý·Ö
s=0;
j=1;
fork=0:
n
s=s+C(j)*feval(f,a+k*h);j=j+1;
end
s=s*(b-a);
%Êä³ö½á¹û
%f=inline('exp(-x.^2)');
%a=0;b=1;n=4;
%cotes(f,a,b,n)
运行结果如下图窗口截图:
流程图如下:
②辛普森(Simpson)积分公式求解MatLab代码如下:
functions=simpson(f,a,b,n)
h=(b-a)/(2*n);
s1=0;
s2=0;
fork=1:
n
x=a+h*(2*k-1);
s1=s1+feval(f,x);
end
fork=1:
(n-1)
x=a+h*2*k;
s2=s2+feval(f,x);
end
s=h*(feval(f,a)+feval(f,b)+4*s1+2*s2)/3;
symsx
f=exp(-x.^2);
%f=inline('exp(-x.^2)')
%a=0;b=1;
%simpson(f,0,1,4)
运行结果如下图窗口截图:
流程图如下:
③梯形公式求解MatLab代码如下:
functions=trap(f,a,b,n)
h=(b-a)/n;
s=0;
fork=1:
(n-1)
x=a+h*k;
s=s+feval(f,x);
end
s=h*(feval(f,a)+feval(f,b))/2+h*s;
symsx
f=exp(-x.^2);
%f=inline('exp(-x.^2)')
%a=0;b=1;
%trap(f,a,b,4)
运行结果如下图窗口截图:
龙贝格(Romberg)计算方法MatLab代码如下:
%Romberg»ý·Ö¡®exp(-x.^2)¡¯
fprintf('ÏÂÃ潫ÓÃRombergËã·¨Çóij¸öº¯Êý´Óaµ½b»ý·ÖÖµµÄ½üËƽ⡣\n')
%ÊäÈë²ÎÊý
symsx
f=input('ÊäÈë±»»ýº¯ÊýµÄ±í´ïʽ:
')
a=input('ÊäÈë»ý·ÖÏÂÏÞ:
')
b=input('ÊäÈë»ý·ÖÉÏÏÞ:
')
epsilon=input('ÊäÈ뾫¶Èeps:
')
%±äÁ¿³õʼ»¯¡£
h=b-a
k=1
T(1,1)=(h/2)*(subs(f,a)+subs(f,b))
%µü´ú¹ý³Ì.
while
(1)
T(k+1,1)=0.5*(T(k,1)+h*sum(subs(f,a+(2*[1:
(2^(k-1))]-1)*h/2)))
form=1:
k
T(k-m+1,m+1)=(4^m*T(k-m+2,m)-T(k-m+1,m))/(4^m-1)
end
ifabs(T(1,k+1)-T(1,k)) break; else h=h/2 k=k+1 end end fprintf('¾«È·ÖµÎª%9.8f¡£\n',T(1,k+1)) 运行结果如下图窗口截图: 流程图如下: 体会和感想: 在实验中体会到编写程序需要仔细,熟悉matlab的使用以及matlab程序设计,熟悉并掌握复化辛普森公式的原理以及所设计的程序,以及龙贝格方法的原理以及所设计的程序。 根据牛顿柯斯特求积分的原理将所求函数的积分区间分为多个小的积分区间,先求出每个小积分区间上的函数值,然后再将每个小区间上的求积结果加起来就是我们所要求的总函数的积分值,当函数区间所分的小区间的个数越多的时候总函数所计算出来的结果就精确,其原因就是所分的区间数越多,计算时每个小区所带来的误差就越小,当将总的积分值加起来的时候所带来的总的误差也就越小,所以最后的结果的精度越高,而用龙贝格求积和牛顿柯斯特也一样是要将总区间分为很多小的相等的区间,只是他们所用的计算原理不一样,当用此方法求积分时,所设的误差限越小,所求得的积分值就越是精确。 理论基础: (参看手写附件)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数值 分析 课程设计
![提示](https://static.bdocx.com/images/bang_tan.gif)