定积分的近似计算
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二定积分的近似计算
一、问题背景与实验目的
利用牛顿—莱布尼兹公式虽然可以精确地计算定积分的值,但它仅适用于被积函数的原函数能用初等函数表达出来的情形.如果这点办不到或者不容易办到,这就有必要考虑近似计算的方法.在定积分的很多应用问题中,被积函数甚至没有解析表达式,可能只是一条实验记录曲线,或者是一组离散的采样值,这时只能应用近似方法去计算相应的定积分.
本实验将主要研究定积分的三种近似计算算法:矩形法、梯形法、抛物线法.对于定积分的近似数值计算,Matlab有专门函数可用.
二、相关函数(命令)及简介
1.sum(a):求数组a的和.
2.format long:长格式,即屏幕显示15位有效数字.
(注:由于本实验要比较近似解法和精确求解间的误差,需要更高的精度).3.double():若输入的是字符则转化为相应的ASCII码;若输入的是整型数值则转化为相应的实型数值.
4.quad():抛物线法求数值积分.
格式:quad(fun,a,b) ,注意此处的fun是函数,并且为数值形式的,所以使用*、/、^等运算时要在其前加上小数点,即.*、./、.^等.
例:Q = quad('1./(x.^3-2*x-5)',0,2);
5.trapz():梯形法求数值积分.
格式:trapz(x,y)
其中x为带有步长的积分区间;y为数值形式的运算(相当于上面介绍的函数fun)
例:计算
0sin()d
x x
π
⎰
x=0:pi/100:pi;y=sin(x);
trapz(x,y)
6.dblquad():抛物线法求二重数值积分.
格式:dblquad(fun,xmin,xmax,ymin,ymax),fun可以用inline定义,也可以通过某个函数文件的句柄传递.
例1:Q1 = dblquad(inline('y*sin(x)'), pi, 2*pi, 0, pi)
顺便计算下面的Q2,通过计算,比较Q1 与Q2结果(或加上手工验算),找出积分变量x、y的上下限的函数代入方法.
Q2 = dblquad(inline('y*sin(x)'), 0, pi, pi, 2*pi)
例2:Q3 = dblquad(@integrnd, pi, 2*pi, 0, pi)
这时必须存在一个函数文件integrnd.m:
function z = integrnd(x, y)
z = y*sin(x);
7.fprintf (文件地址,格式,写入的变量):把数据写入指定文件.
例:x = 0:.1:1;
y = [x; exp(x)];
fid = fopen('exp.txt','w'); %打开文件
fprintf(fid,'%6.2f %12.8f\n',y); %写入
fclose(fid) %关闭文件
8.syms 变量1 变量2 …:定义变量为符号.
9.sym('表达式'):将表达式定义为符号.
解释:Matlab 中的符号运算事实上是借用了Maple 的软件包,所以当在Matlab 中要对符号进行运算时,必须先把要用到的变量定义为符号.
10.int(f,v,a,b):求f 关于v 积分,积分区间由a 到b .
11.subs(f ,'x',a):将 a 的值赋给符号表达式 f 中的 x ,并计算出值.若简单
地使用subs(f),则将f 的所有符号变量用可能的数值代入,并计算出值.
三、实验内容
1. 矩形法
根据定积分的定义,每一个积分和都可以看作是定积分的一个近似值,即
1()d ()n
b
i i a i f x x f x ς==∆∑⎰
在几何意义上,这是用一系列小矩形面积近似小曲边梯形的结果,所以把这个近似计算方法称为矩形法.不过,只有当积分区间被分割得很细时,矩形法才有一定的精确度.
针对不同i ς的取法,计算结果会有不同,我们以 12
0d 1x x +⎰为例(取100=n ), (1) 左点法:对等分区间
b x i n
a b a x x a x n i =<<-+=<<<= 10, 在区间],[1i i x x -上取左端点,即取1-=i i x ς,
1
2 01d ()1n i i i x f x x ς==∆≈+∑⎰0.78789399673078, 理论值 1
2 0d 14x x π=+⎰,此时计算的相对误差 0.7878939967307840.0031784
ππ-=≈ (2)右点法:同(1)中划分区间,在区间],[1i i x x -上取右端点,即取i i x =ς,
1
2 01d ()1n i i i x f x x ς==∆≈+∑
⎰0.78289399673078, 理论值 1
2 0d 14x x π=+⎰,此时计算的相对误差 0.7828939967307840.0031884ππ-=≈
(3)中点法:同(1)中划分区间,在区间1[,]i i x x -上取中点,即取12
i i i x x ς-+=
, 12 01d ()1n i i i x f x x ς==∆≈+∑
⎰0.78540024673078, 理论值 1
2 0d 14x x π=+⎰,此时计算的相对误差 60.785400246730784 2.653104
ππ--=
≈⨯ 如果在分割的每个小区间上采用一次或二次多项式来近似代替被积函数,那么可以期望得到比矩形法效果好得多的近似计算公式.下面介绍的梯形法和抛物线法就是这一指导思想的产物.
2. 梯形法
等分区间
b x i n a b a x x a x n i =<<-+=<<<= 10,n
a b x -=∆ 相应函数值为
n y y y ,,,10 (n i x f y i i ,,1,0),( ==).
曲线)(x f y =上相应的点为
n P P P ,,,10 (n i y x P i i i ,,1,0),,( ==)
将曲线的每一段弧i i P P 1-用过点1-i P ,i P 的弦i i P P 1-(线性函数)来代替,这使得每个],[1i i x x -上的曲边梯形成为真正的梯形,其面积为
x y y i i ∆⨯+-2
1,n i ,,2,1 =. 于是各个小梯形面积之和就是曲边梯形面积的近似值,