数学实验的课件
数学实验
实验二 定积分的近似计算
数学实验的课件
实验二、 实验二、定积分的近似计算问题背景和实验目的定积分计算的基本公式是牛顿-莱布尼兹公式。但当 被积函数的原函数不知道时,如何计算?这时就需要利 用近似计算。特别是在许多实际应用中,被积函数甚至 没有解析表达式,而是一条实验记录曲线,或一组离散 的采样值,此时只能用近似方法计算定积分。 本实验主要研究定积分的三种近似计算算法:矩形法、 梯形法和抛物线法。同时介绍 Matlab 计算定积分的相关 函数。
数学实验的课件
实验二、 实验二、定积分的近似计算矩形法定积分的定义:
∫
b
a
f ( x )dx = nlim →∞ x1 x2LL
x →0 i =1
∑ f (ξ ) x ,i i
n
ξi ∈ [ xi 1 , xi ]
xi xi
LL LLi
xn xn 1 = xn
x0 =
x1
x2
L L xi 1
xi = xi xi 1 ,
x = max xi
数学实验的课件
矩形法 矩形法定积分的近似:
∫
b
a
f ( x )dx ≈ ∑ f ( ξi ) xi , n 充分大,△x 充分小i =1
n
通常我们取 x1 = x2 = L = xn
h = b a n
点 ξi ∈ [ xi 1 , xi ] 可以任意选取,常见的取法有: 左端点 xi 1,右端点
xi 和中点 ( xi 1 + xi ) / 2 。中点法
左点法
右点法
数学实验的课件
左点法 左点法、右点法和中点法
步长
xi = h = (b a ) / n xi = a + ih, i = 1,2 ,K n
节点
左点法:
∫∫∫
b
a
f ( x )dx ≈ ∑ f ( xi -1 ) xi = h ∑ f ( xi 1 )i =1 n i =1
n
n
b
右点法:
a
f ( x )dx ≈ ∑ f ( xi ) xi = h ∑ f ( xi )i =1 i =1
n
中点法:
b
a
f ( x )dx ≈ ∑i =1
n
n xi 1 + xi xi 1 + xi f( ) xi = h ∑ f ( ) 2 2 i =1
数学实验的课件
矩形法举例例:用不同的矩形法计算下面的定积分 ( 取 n=100 ), 并比较这三种方法的相对误差。
解: a=0, b=1, n=100 ==> h =1/100=0.01, xi = i*h,dx ≈ h f ( x ) = h 1 左点法:∫0 ∑ i 1 ∑ 1 + x 2i 1 1 + x2 i =1 i =111 n
dx ∫0 1 + x 21n
n
(i = 0,1,2,...,100)
dx ≈ h ∑ f ( xi ) ≈ 0.78289399673078 右点法: ∫0 2 1+ x i =11 n
≈ 0.78789399673078
dx ≈ h f ( xi 1 + xi ) ≈ 0.78540024673078 中点法: ∫0 1 + x 2 ∑ 2 i =1
数学实验的课件
矩形法举例误差分析
dx π 1 = arctan x 0 = 理论值: ∫0 2 1+ x 41
0.78789399673078 π / 4 ≈ 0.003178 π/4 0.78289399673078 π / 4 右点法相对误差: ≈ 0.003188 π/4 中点法相对误差: 0.78540024673078 π / 4 ≈ 2.653 × 10 -6 π/4
左点法相对误差:
不同的方法有不同的计算精度 有没有更好的近似计算定积分的方法 ?
数学实验的课件
定积分几何意义
y
f (x )
S1 S2
S = ∫ f ( x )dx Ka KSi
b
Sn
S = ∫ f ( x )dx = ∑ Sib a
n
o a
xi 1 xi
b
x
i =1
数学实验的课件
梯形法曲边小梯形的面积可以由直边小梯形的面积来近似
yi 1 + yi Si ≈ xi 2整个曲边梯形的面积:b
yi = f ( xi ), i = 1,2,K, n
S = ∫ f ( x )dxa
= ∑ Si ≈ ∑i =1 i =1
n
n
yi 1 +
yi xi 2
Si
数学实验的课件
梯形法如果我们 n 等分区间 [a,b],即令: ,
x1 = x2 = L = xn则 S= ==>
∫b a
b
a
h = b a n n n n yi 1 + yi yi 1 + yi f ( x )dx = ∑ Si ≈ ∑ xi = h ∑ 2 2 i =1 i =1 i =1
∫
yn y0 f ( x )dx = h + y1 + L + yn 1 + 2 2梯形公式
梯形公式与中点公式有什么区别 ?
数学实验的课件
梯形法举例例:用梯形法计算下面定积分 ( 取 n=100 ), 并计算相对误差
dx ∫0 1 + x 21
解:
a=0, b=1, n=100, f (x) = 1/( 1+x2 )
==> h =1/100=0.01, xi = i*h, yi = f (xi) ==>
≈ 0.78539399673078 相对误差: 0.78539399673078 π / 4 ≈ 5.305 × 10 -6 π/4
dx yn y0 ∫0 1 + x 2 ≈ h 2 + y1 + L + yn 1 + 2 1
数学实验的课件
抛物线法2n 等分区间 [a,b] ,得b a h1 = , xi = ih1 , i = 0,1,K , 2n 2n
计算每个节点上的函数值:
yi = f ( xi ), i = 0,1,K,2n在区间 [x0, x2] 上,用过以下三点
P0 ( x0 , y0 ), P ( x1 , y1 ), P2 ( x2 , y2 ) 1的抛物线来近似原函数 f (x) 。 该直线用抛物线代替, 计算精度是否会更好?
数学实验的课件
抛物线法设过以上三点的抛物线方程为: y = α x2 + β x + γ = p1(x)则在区间 [x0, x2] 上,有 则在
∫
x2
x0
f ( x )dx ≈ ∫ p1 ( x )dx = ∫x (α x 2 + β x + γ )dxx20
x2
x0
α x + β x +γ x =3 2
x2
x2 x0 = (y0 + 4y1 + y2 ) 6 b a = (y0 + 4 y1 + y2 ) 6nx0
3
2
数学实验的课件
抛物线法同理可得:
∫ ∫
x4
x2
f ( x )dx ≈ b a ( y2 + 4 y3 + y4 ) 6n L L f ( x )dx ≈ b a ( y2 n 2 + 4 y2 n 1 + y2 n ) 6nn x2 i x2 i 2
x2 n
x2 n 2
相加即得:
∫
b
a
f ( x )dx = ∑ ∫i =1 n
f ( x )dx
b a ≈∑ ( y2i 2 + 4 y2i 1 + y2i ) i =1 6n
数学实验的课件
抛物线法整理后可得:
∫
b
a
f ( x )dx ≈ b a [ y0 + y2 n + 4( y1 + y3 + L + y2 n 1 ) 6n + 2( y2 + y4 + L + y2 n 2 )]抛物线法公式 或 辛普森 (Simpson) 公式
数学实验的课件
抛物线法例:用抛物线法计算下面定积分 ( 取 n=100 ), 并计算相对误差
dx ∫0 1 + x 21
解: a=0, b=1, n=100, yi = f (xi) = 1/( 1+xi2 )dx ≈ b a [ y + y + 4( y + y + L + y ) ==> ∫0 0 2n 1 3 2 n 1 6n 1 + x2 + 2( y2 + y4 + L + y2 n 2 )]1
≈ 0.78539816339745相对误差: 0.78539816339745 π / 4 ≈ 2.827 × 10-16π/4
数学实验的课件
Matlab 计算定积分函数介绍Matlab 近似计算定积分的相关函数 梯形法:trapz
trapz(x,y)x 为分割点(节点)组成的向量, y 为被积函数在节点上的函数值组成的向量。
∫
b
a
b a y0 + y + L + y + y n f ( x )dx = 1 n 1 n 2 2
x = [ x0 , x1 ,K, xn ]
y = [ f ( x0 ), f ( x1 ),K , f ( xn )]
数学实验的课件
trapz 举例例:用梯形法计算下面定积分 ( 取 n=100)
dx ∫0 1 + x 21
/ 解: a=0, b=1, n=100, yi = f (xi) = 1/( 1+xi2 )前面的 做法 trapz 函数
dx b a ∫0 1 + x 2 ≈ n ( y0 / 2 + y1 + y2 + L + yn 1 + yn / 2)1
>> x=0:1/100:1; >> y=1./(1+x.^2); >> trapz(x, y)
trapz(x,1./(1+x.^2))
数学实验的课件
抛物线法抛物线法
:quad
∫
b
a
f ( x )dx
quad(f,a,b,tol)f = f(x) 为被积函数,[a,b] 为积分区间,tol 为计算精度 注: 不用自己分割积分区间可以指定计算精度,若不指定,缺省精度是 10-6 精度越高,函数运行的时间越长 此处的函数 f 是数值形式,应该使用数组运算,即 点运算:.*,./ ,.\ ,.^ 将自变量看成是向量 将自变量看成是向量
数学实验的课件
quad 举例例:用 quad 计算定积分:
dx ∫0 1 + x 21
解:
>> quad('1./(1+x.^2)',0,1) >> quad('1./(1+x.^2)',0,1,10e-10) >> quad('1./(1+x.^2)',0,1,10e-16) 括起来! 函数表达式一定要用 单引号 括起来! 涉及的运算一定要用 数组运算!
数学实验的课件
二重积分的计算抛物线法计算二重积分: dblquad
dblquad(f,a,b,c,d,tol)
∫∫a
b
d
c
f ( x, y )dxdy
tol 为计算精度,若不指定,则缺省精度为 10-6 f(x,y) 可以由 inline 定义,或通过一个函数句柄传递 [a,b] 是第一积分变量的积分区间,[c,d] 是第二积分变量 的积分区间 按字母顺序,大写字母排在小写字母的前面