matlab 复合辛普森公式,复合梯形和复合辛普森MATLAB程序.doc

####

实 验 报 告

课程名称数值分析实验项目名称数值积分实验类型上机实验学时班级学号姓名指导教师实验室名称实验时间2014.11.19实验成绩预习部分实验过程

表现实验报告

部分总成绩教师签字日期

实验三 数值积分

一.数值积分的基本思想

1.复合梯形公式:Tn=2;

2.复合辛普森公式:Sn=[f(a)+f(b)+2+4];

以上两种算法都是将a-b之间分成多个小区间(n),则h=(b-a)/n,xk=a+kh, xk+1/2=a+(k+1/2)h,利用梯形求积根据两公式便可。

3.龙贝格算法:在指定区间内将步长依次二分的过程中运用如下公式

(1)Sn=T2n-Tn

(2)Cn=S2n-Sn

(3)Rn=C2n-Cn4

T =T - T,k = 1,2,…

二、计算流程图

1、复合梯形和复合辛普森算法框图:

下图是龙贝格算法框图:

自适应辛普森积分算法流程框图:

二.实验题目及实验目的

实验题目:用不同数值方法计算积分 = -。

(1)取不同的步长h。分别用复合梯形及复合辛普森求积计算积分,给出误差中关于h的函数,并与积分精确值比较两个公式的精度,是否存在一个最小的h,使得精度不能再被改善?

(2)用龙贝格求积计算完成问题(1)。

(3)用自适应辛普森积分,使其精度达到10。

实验目的:

了解并掌握matlab软件的基本编程、操作方法;

初步了解matlab中的部分函数,熟悉循环语句的使用;

通过上机进一步领悟用复合梯形、复合辛普森公式,以及用龙贝格求积

方法计算积分的原理。

三.实验手段:

指操作环境和平台:win7系统下MATLAB R2009a

程序语言:一种类似C语言的程序语言,但比C语言要宽松得多,非常方便。

四.程序

①复合梯形求积程序

function t=TiXing_quad(a,b,.h)

format long

x=a:h:b;

y=sqrt(x).*log(x);

y(1)=0;

t=0;

for k=1:(b-a)/h,

t= t+y(k)+y(k+1);

end

t=t*h/2;

②复合辛普森求积程序

function s=Simpson_quad(a,b,h)

format long

x=a:h:b;

y=sqrt(x).*log(x);

z=sqrt(x+h/2).*log(x+h/2);

y(1)=0;

s=0;

for k=1:(b-a)/h,

s= s+y(k)+y(k+1)+4*z(k);

end

s=s*h./6;

③龙贝格求积程序

function [q,R]=Romberg(a,b,eps)

h=b-a;

R(1,1)=h*(0+sqrt(b).*log(b))/2;

M=1;

J=0;

err=1;

while err>eps

J=J+1;

h=h/2;

S=0;

for p=1:M

x=a+h*(2*p-1);

S=S+sqrt(x).*log(x);

end

R(J+1,1)=R(J,1)/2+h*S;

M=2*M;

for k=1:J

R(J+1,k+1)=R(J+1,k)+(R(J+1,k)-R(J,k))/(4^k-1);

end

err=abs(R(J+1,J)-R(J+1,J+1));

end

q=R(J+1,J+1);

控制台输入代码:

(1)

>> a=0;

>> b=1;

>> h=0.2;

>> t=TiXing_quad(a,b,h)

>> s=Simpson_quad(a,b,h)

>> h=0.02;

>> t=TiXing_quad(a,b,h)

>> s=Simpson_quad(a,b,h)

>> h=0.002;

>> t=TiXing_quad(a,b,h)

>> s=Simpson_quad(a,b,h)

(2)

>> a=0;

>> b=1;

>> eps=10^-8;

>> [quad,R]=Romberg(a,b,eps)

(3)

>> a=0;

>> b=1;

>> eps=10^-4;

>> q=ZiShiYingSimpson('sqrt(x).*log(x)',a,b,eps)

实验结果比较与分析

(1)

h = 0.2时,结果如下:

h = 0.02时,结果如下:

h = 0.002时;得到的结果如下:

由结果(1)可知对于同一步长h,复合辛普森法求积分精度明显比复合梯形法求积的精度要高,且当步长取不

参与评论 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:游动-白 设计师:我叫白小胖 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值