数值分析 复化求积 龙贝格 实验报告

2020-06-06 09:15

实 验 报 告

课程名称: 《 数值计算方法 》 实验名称: 数值积分 实验类型: 验证性■综合性□设计性□ 实验室名称: 数学实验室 班级学号: 09072 学生姓名: 任课教师(教师签名): 成 绩: 实验日期: 2012年3月29日

一、实验目的及题目

实验目的:掌握利用复化辛普森公式和龙贝格方法计算积分,掌握复化辛普森公式以及

龙贝格方法的原理,熟悉matlab的操作。

南昌航空大学数学与信息科学学院实验报告

题目:利用复化辛普森公式和龙贝格方法计算下列积分:

1、?0e?0.5?x2dx

2、?2sin(cos2x)sin02xdx

二、实验原理、程序框图、程序代码等 实验原理:

1、复化求积公式

由于高阶插值的不稳定性,为了提高计算积分的精度,可把积分区间分为若干个小区间,

将I(f)写成这些小区间上的积分之和,然后对每一个小区间上的积分应用到辛普森公式,或柯特斯公式,并把每个小区间上的结果累加,所得到的求积公式就称为复化求积公式。

将求积区间作n等分,并记h?b?an,xi?a?ih(0?i?n),于是

n?1I(f)???k?0xk?1xkf(x)dx

并记

Ik(f)??xk?1xkf(x)dx

1.1复化辛普森公式 记xk?12?12(xk?xk?1),对每一个Ik(f)应用辛普森公式,得到复化辛普森公式

n?1n?1?h?Sn(f)??f(x0)?2?f(xk)?f(xn)?4?f(x1)?

k?6?k?1k?02?其截断误差为

I(f)?Sn(f)??()1802hhn?14?k?0f(4)(?k)

设f(x)?C4?a,b?,则

I(f)?Sn(f)??1180[f(3)(a)?f(3)h4(b)]()

2 1.2、复化柯斯特公式

第 1 页

南昌航空大学数学与信息科学学院实验报告

记xk?14?xk?14h,xk?12?xk?12h,xk?34?xk?34h,对每一个积分Ik(f)应用到柯斯特公

式,得到复化柯斯特公式

n?1Cn(f)??k?0?h?7f(x)?32f(x)?12f(x)?32f(x)?7f(x)?k113k?1?k?k?k?90?424?

其截断误差为

I(f)?Cn(f)??2(b?a)945f(6)h6(?)(),2??[a,b]

且当h适当小时,有

I(f)?Cn(f)???f945?2(5)(a)?f(5)h6(b)?(?2)

2、龙贝格求积公式

由复化柯斯特公式组合得到的计算积分I(f)的近似公式:

Rn(f)?6463C2n(f)?163Cn(f)

称为计算积分I(f)的龙贝格公式,其截断误差为O(h8)。这种加速方法称为龙贝格方法。

MATLAB程序如下:

1、复化辛普森公式

function xps(a,b,eps) %a,b为区间,eps为精度

n=0;Sd=0;

S=(Myfun(a)+Myfun(b))*(b-a)/2; while abs(Sd-S)>eps

Sd=S; n=n+1;

h=(b-a)/n; for i=1:n+1

x(i)=a+(i-1)*h;

end S1=Myfun(x(1))+Myfun(x(n+1)); S2=0; S3=0; for i=2:n

S2=S2+Myfun(x(i)); end

S2=2*S2; for i=1:n

S3=S3+Myfun((x(i)+x(i+1))/2);

第 2 页

南昌航空大学数学与信息科学学院实验报告

end

S3=4*S3;

S=(S1+S2+S3)*h/6;

end

fprintf('%.15f\\n',S);

function f=Myfun(x) % f=exp(-x^2); f=sin(cos(2*x)*(sin(x)^2));

2、龙贝格方法

function lbg(a,b,eps) %a,b为区间,eps为精度 Rd=0;

R=(b-a)/2*(f(a)+f(b)); N=0;

while abs(Rd-R)>eps Rd=R; N=N+1; for k=1:2 if k==1

n=N*2; else;

n=N; end

h=(b-a)/n; for i=1:n+1

x(i)=a+(i-1)*h; end C=0;

for i=1:n

C1=7*f(x(i))+32*f(x(i)+1/4*h)+12*f(x(i)+2/4*h)+32*f(x(i)+3/4*h)+7*f(x(i+1)); C=C+C1*h/90; end if k==1

R=C*64/63; else

R=R-C/63; end end end

fprintf('结果为: %.15f',R);

function y=f(x)

y=exp(-x^2); % y=sin(cos(2*x)*(sin(x)^2));

第 3 页

南昌航空大学数学与信息科学学院实验报告

三、实验过程中需要记录的实验数据表格

第一题:>> xps(0,0.5,0.0000001)

结果为: 0.461281071728228 >> lbg(0,0.5,0.0000001) 结果为: 0.461281006413932

第二题:>> xps(0,pi/2,0.0000001)

结果为: -0.347478139850496 >> lbg(0,pi/2,0.0000001) 结果为: -0.347478139727495

四、实验中存在的问题及解决方案

在编写程序结束运行时,经常出现未定义变量的错误。经过检查,发现程序代码编写的不规范,对象名,函数名因为失误输错导致前后不一致,语法书写格式不正确等情况导致这类情况发生。

五、心得体会

在实验中体会到编写程序需要仔细,熟悉matlab的使用以及matlab程序设计,熟悉并掌握复化辛普森公式的原理以及所设计的程序,以及龙贝格方法的原理以及所设计的程序。

第 4 页


数值分析 复化求积 龙贝格 实验报告.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:重庆市2012年5月建筑施工企业三类人员安全生产知识考核复习参考

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: