文档详情

数值分析课程设计baogao..doc

发布:2017-01-10约4.87千字共11页下载文档
文本预览下载声明
数值分析课程设计报告 专业课程设计成绩评定书 指 导 教 师 评 语 成 绩: 指导教师 时 间: 答辩小 组 意 见 设计成绩: 答辩组长: 审定 系主任: 题目用熟悉的计算机语言编程上机完成 的近似值,自己设置不同精度要求,对结果进行比较分析。 (2)用Romberg积分法计算积分的近似值,自己设置不同精度要求,对结果进行比较分析;与(1)的结果进行比较分析,谈谈你的体会。 (3)记,在上面的计算中只取4位有效数字或7位有效数字,计算结果有什么不同。 (4)上面计算精度可达8-20位有效数字吗?若可以请说明实现过程,并举例。 一.摘要:在matlab环境下熟悉Newton-Cotes和Romberg的理论基础对函数求积分,在运行完程序后以及对运行结果做出各方面的分析和比较。 二.实验设计目地 用熟悉的计算机语言编程上机完成Newton-Cotes公式计算积分Romberg积分法计算积分Newton-Cotes和Romberg的理论基础 牛顿柯斯特公式:设将积分区间[a,b]划分为n等份,步长h=(b-a)/n,选取等距节点=a+kh构造出的插值型求积分公式I,称为牛顿—柯斯特(Newton-Cotes)公式,式中称为柯特斯系数,引进变换x=a+th,则有 龙贝格求积公式: (1).梯形法的递推化 设将区间[a,b]分为n等份,共有n+1个分点,如果将求积区间再二分一次,则分点增至2n+1个,我们将二分前后两人积分值联系起来加以考察,注意到每个子区间[]经过二分只增加了一个分点,用复合梯形公式求得该子区间上的积分值为,注意,这里h =(b-a)/n代表二分前的步长,将每个子区间上的积分值相加得,从而利用上式可导出下列递推分式: (2).外推技巧 从梯形公式出发,将区间[a,b]逐次二分可提高求积公式精度,当[a,b]分为n等份I 若记,当区间[a,b]分为2n等份时,则有,并且有I. (3).龙贝格算法 将上述外推技巧得到的公式重新引入记号 等从而可将上述公式定成统一形式 经过m(m=1.2.3……)次加速后,余项便取下列形式: 这方法通常称为理查森外推加速方法。 设以表示二分次后求得的梯形值,且以表示序列{}的m次加速值,则依递推公式可得 公式也称为龙贝格算法,计算过程如下: ⅰ.取k=0,h=b-a,求 令(k记区间[a,b]二分次数) ⅱ.求梯形值,即按递推公式计算 ⅲ.求加速值,按公式a逐个求出T表的第k行其余各元素T(j=1,2,…,k). iv.若|T—T|(预先设定的精度),则终止计算,并取TI;否则令k+1k转(2)继续计算. k h … 0 b-a … 1 ① … 2 ② ③ … 3 ④ ⑤ ⑥ … 4 ⑦ ⑧ ⑨ ⑩ … … T 表 表指出了计算过程,第2列h=给出了子区间长度,i表示第i步外推.可以证明,如果f(x)充分光滑,那么T表每一列的元素及对角线元素均收敛到所要求的积分值I. 四.程序代码及运行结果 牛顿柯斯特求积分: function y=mulNewtonCotes(a,b,m,n) fun=@(x)exp(-x.^2); xk=linspace(a,b,m+1) for i=1:m s(i)=NewtonCotes(fun,xk(i),xk(i+1),n); end y=sum(s); function [y,Ck,Ak]=NewtonCotes(fun,a,b,n) %fun=@(x)exp(-x.^2) if nargin==1 [mm,nn]=size(fun); if mm=8 error end xk=fun(1,:); fk=fun(2,:); a=min(xk); b=max(xk); n=mm-1; end if nargin==4 xk=linspace(a,b,n+1); if isa(fun,func
显示全部
相似文档