matlab定积分的近似计算
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
梯形法举例
例:用梯形法计算下面定积分 ( 取 n=100 ),并计算相对误差
I 1 dx 0 1 x2
解: a=0, b=1, n=100, f (x) = 1/( 1+x2 ) ==> h =1/100=0.01, xi = i*h, yi = f (xi)
==> 0 11 dx x2h y 2 0y1 yn1y 2 n
0 .7 8 5 3 9 3 9 9 6 7 3 0 7 8 相对误差: 0 .7 8 5 3 9 3 9 9 6 7 3 0 7 8/45 .3 0 51 0-6
/4
抛物线法
2n 等分区间 [a,b] ,得 h 1b2 n a,xiih 1,i0,1, ,2n
计算每个节点上的函数值:
y i f(x i) ,i 0 ,1 , ,2 n
f(x,y)在点(x0,y0)的偏导数分别定义为
fx'(x0,y0) lx i0mf(x0
x,y0)f(x0,y0) x
fy'(x0,y0) ly i0mf(x0,y0
y)f(x0,y0) y
4 . 积分
函数f(x)在区间[a,b]上的积分定义为
b
n
af(x)dxmal xxi(i ) 0mi1f(i)xi
右点法相对误差:0.78289399673078/40.003188 /4
中点法相对误差:0 .7 8 5 4 0 0 2 4 6 7 3 0 7 8/42 .6 5 3 1 0 -6 /4
不同的算法有不同的计算精度
有没有更好的近似计算定积分的方法 ?
定积分几何意义
y
f (x)
b
S a f (x )dx
其中 a=x0<x1<…<xn=b,
xi=xi-xi-1, i(xi-1,xi), i=1,2,…,n
若在[a,b]上, F’(x)=f(x), 则
b
f(x)dx F(b)F(a)
二重积分定义为a
fxydxdy fxy ( , )
G
m a x l i 2 x yj 2 ) i ( 0im j( i, j) i j
f' (x0)l h 0if(m x0hh)f(x0)
若f(x)在x0可导则在x0可微,dy = Adx 当f’(x0)>0,函数在x0点附近是上升的; 当f’(x0)<0,函数在x0点附近是下降的; 当f’(x0)=0, x0为驻点, 若x0为驻点且f”(x0)<0(或f”(x0)>0),则 f(x)在x0点达到局部极大(或局部极小)
S1 S2
Si
Sn
oa
x i1 x i
b
b
n
S f(x)dx a
Si
i1
x
梯形法
曲边小梯形的面积可以由直边小梯形的面积来近似
Si
yi1 yi 2
xi
y i f(x i),i 1 ,2 , ,n
整个曲边梯形的面积:
b
S a f (x)dx
n
Si
i1
Si
n i1
yi1 2
yi xi
梯形法
tol 为计算精度,若不指定,则缺省精度为 10-6
f 可以是: 字符串;inline 定义的内联函数;函数句柄
如果我们 n 等分区间 [a,b],即令:
x 1 x 2 x n h b a
n
则
S
b a
f (x)dxi n 1S ii n 1yi 1 2 yi xihi n 1yi 1 2 yi
==>
a bf(x)dxh y 2 0y1 yn 1y 2 n
梯形公式
fuluB.m
梯形公式与中点公式有什么区别 ?
在区间 [x0, x2] 上,用过以下三点
P 0 (x 0 ,y 0 ) , P 1 (x 1 ,y 1 ) , P 2 (x 2 ,y 2 )
的抛物线来近似原函数 f (x) 。
用抛物线代替该直线, 计算精度是否会更好?
抛物线法
设过以上三点的抛物线方程为:
y = x2 + x + = p1(x)
左点法 右点法
中点法
矩形法
b
n
f(x)dx
a
f(i)xi
i1
x1 x2
xi
xn
x0 步长
x1
x2
xi
h
ba n
x i1
xi
x n1
x i a ih ,i 1 ,2 , n
xn 节点
b
n
n
f(x)dx
a
f(xi-1) xih f(xi 1)
i 1
i 1
左点法
b
n
n
f(x)dx
x2x0 6
(y04y1y2)
ba 6n
(y04y1y2)
抛物线法
同理可得:
x4 x2
f(x)dx
ba 6n (y2
4y3
y4)
x2n x2n2
f
(x)dx
ba( 6n
y2n2
4y2n1
y2n)
相加即得:
b
n
f(x)dx
x2i f(x)dx
a
i1 x2i2
n i1
b6na(y2i2
>> quad('1./(1+x.^2)',0,1,1e-10)
>> quad('1./(1+x.^2)',0,1,1e-16)
函数表达式一定要用 单引号 括起来! 涉及的运算一定要用 数组运算!
dblquad
db
c a f(x, y)dxdy
抛物线法计算二重积分: dblquad
dblquad(f,a,b,c,d,tol)
4y2i1
y2i
)
抛物线法
整理后可得:
a bf(x)dxb6 n a[y0y2n4(y1y3 y2n1)
2(y2y4 y2n2)]
抛物线法公式
或 辛卜生 (Simpson) 公式
fuluC.m
抛物线法
例:用抛物线法计算下面定积分 ( 取 n=100 ),并计算相对误差
I
1 dx 0 1 x2
Taylor公式:当f(x)在含有x0某个开区间内 具有直到n+1阶的导数,
f(x)f(x0)f'(x0)x(x0)f"( 2x0)(xx0)2 f(nn)(!x0)(xx0)n (fn(n 1)(1))( !x0)n1
当n=0 得,微分中值定理 f(x) - f(x0) = f’() (x- x0)
xi
x i1
xi
xn x n1
xn
xi xi xi1 xmai xxi
矩形法
定积分的近似:
b
n
f(x)dx
a
f(i)xi
n 充分大,x 充分小
i1
通常我们取 x 1 x 2 x n
h ba n
点i [xi1,xi]可以任意选取,常见的取法有: 左端点 x i 1 , 右端点 x i 和中点(xi1 xi)/2。
trapz >> x=0:1/100:1; trapz(x,1./(1+x.^2)) 函数 >> y=1./(1+x.^2);
>> trapz(x, y)
quad
quad
抛物线法
b
a f ( x)dx
quad(f,a,b,tol)
f = f(x) 为被积函数,[a,b] 为积分区间,tol 为计算精度
则在区间 [x0, x2] 上,有
x2 Байду номын сангаас0
f(x)dx
x2 x0
p1(x)dx
x2(x2x)dx
x0
x 2 3x 6 3 x 0 ( 2xx 20 2 x x0 xx 02 3 ) ( x ( ( 2 3 x x 2 2 2 x 0 3 x ) 0 ) x 2 2 2 (2 x 2 ) 2 ( x 2 x 0 2)x 0 ) ( x 4 2 x 0)
f (xi )
0 .7 8 2 8 9 3 9 9 6 7 3 0 7 8
中点法:
1 dx 01x2
n
h
i1
f(xi1xi) 0 .7 8 5 4 0 0 2 4 6 7 3 0 7 8
2
矩形法举例
相对误差分析
理论值:
1 dx 01x2
arctanx1 0π 4
左点法相对误差:0.78789399673078/40.003178 /4
2.82710 相对误差:0.78539816339745/4
-16
/4
Matlab 函数
数值积分的常见算法
矩形法 梯形法 抛物线法
Matlab 求积分函数
数值积分函数:trapz、quad、dblquad 符号积分函数:int
总结
矩形法
b
n
n
f(x)d x
a
f(x i-1) x ih f(xi 1)
主要内容
数值积分的常见算法
矩形法 梯形法 抛物线法
Matlab 求积分函数
数值积分函数:trapz、quad、dblquad 符号积分函数:int
矩形法
矩形法
b
f ( x)dx
a
n
lim
n
f (i )xi , i [xi1,xi]
x 0 i 1
x1 x2
x0
x1
x2
a
f(xi) xih f(xi)
i 1
i 1
右点法
a bf(x )d x i n 1f(x i 1 2 x i) x i h i n 1f(x i 1 2 x i) 中点法
fuluA.m
矩形法举例
例:用不同的矩形法计算下面的定积分 ( 取 n=100 ),
并比较这三种方法的相对误差。
1 dx
预备知识:微积分
1.极限和连续
数列极限: >0, N>0 ,使当n>N时
函有数x极n -限a<: 如,果则当xnlimx0x时n 有 fa(x) A,
则
limf(x) A
xx0
连续: 如果当xx0时,有f(x) f(x0)
则称 f(x)在x0连续。
闭区间上连续函数必有最大值和最小值。
2. 微分与导数 函数f(x)在点x = x0的导数为
不用自己分割积分区间
可以指定计算精度,若不指定,缺省精度是 10-6
精度越高,函数运行的时间越长
此处的函数 f 是数值形式,应该使用数组运算,即: .* ./ .\ .^
将自变量看成是向量
quad 举例
例:用 quad 计算定积分: I
1 dx 0 1 x2
解: >> quad('1./(1+x.^2)',0,1)
2(y2y4 y2n 2)]
Matlab 数值积分函数:trapz、quad、dblquad
trapz
trapz
梯形法
trapz(x,y)
x 为分割点(节点)组成的向量, y 为被积函数在节点上的函数值组成的向量。
a bf(x )d xb n a y 2 0y 1y n 1y 2 n
x[x0,x1, ,xn] y [f ( x 0 ) ,f ( x 1 ) , ,f ( x n ) ]
定积分的近似计算
问题背景和实验目的
定积分计算的基本公式是牛顿-莱布尼兹公式。但当 被积函数的原函数不知道时,如何计算?这时就需要利 用近似计算。特别是在许多实际应用中,被积函数甚至 没有解析表达式,而是一条实验记录曲线,或一组离散 的采样值,此时只能用近似方法计算定积分。
本实验主要研究定积分的三种近似计算算法:矩形法、 梯形法和抛物线法。同时介绍 Matlab 计算定积分的相 关函数。
其中是x0与x之间某个值
3.多元函数微分学
设f(x,y)在点(x0,y0)附近有定义,当(x,y)
以任何方式趋向于(x0,y0)时,f(x,y)趋向于一
个确定的常数A,则
lilmimf(x,fy()x, yA) A
yx xyxy00xy00
若 A=f(x0,y0), 称f(x,y)在(x0,y0) 点连续
i 1
i 1
b
n
n
f(x)d x
a
f(xi) xih f(xi)
i 1
i 1
a bf(x )d x i n 1f(x i 1 2 x i) x i h i n 1f(x i 1 2 x i)
梯形法
a bf(x)d xh y 2 0y1 yn 1y 2 n
抛物线法 a bf(x)dxb6 n a[y0y2n4(y1y3 y2n 1)
trapz 举例
例:用梯形法计算下面定积分 ( 取 n=100 )
I
1 dx 0 1 x2
解: a=0, b=1, n=100, yi = f (xi) = 1/( 1+xi2 )
前面的 做法
0 11 d x x 2 b n a y 2 0 y 1 y 2 y n 1y 2 n
I 0 1 x2
解:a=0, b=1, n=100
h =1/n=0.01, xi = i*h,
(i = 0, 1, 2, ..., 100)
左点法:
1 dx 0 1x2
n
h
i1
f(xi1)
0 .7 8 7 8 9 3 9 9 6 7 3 0 7 8
右点法:
1 dx 0 1x2
n
h
i1
解: a=0, b=1, n=100, yi = f (xi) = 1/( 1+xi2 )
==> 0 1 1 d x x 2 b 6 n a [y 0 y 2 n 2 4 ( (y y 1 2 y y 3 4 y y 2 2 n n 1 2 ) )]
0 .7 8 5 3 9 8 1 6 3 3 9 7 4 5