第一讲
数值积分及其应用
—— 二重积分
—— Matlab 积分函数
矩形区域二重积分
矩形区域二重积分:累次积分
复合梯形法
( , ) d d ( , ) d d
b d b d
a c
f x y y x
a cf x y y x
1 0
1
( , ) ( , )
( , ) d ( , )
2 2
d n
n
y j
c j
f x y f x y
f x y y h
f x y
0 1
1
( , ) ( , )
( , ) d ( , )
2 2
b j m m j
j x i j
a i
f x y f x y
f x y x h f x y
x
,
yb a d c
h h
m n
矩形区域二重积分
在积分区域的四个角点系数为 1/4 ,边界为 1/2 ,内部节点为 1
( , ) d d
b d
a c
f x y y x
0 0 0 0
1 ( , ) ( , ) ( , ) ( , )
4 h h f x y
x yf x y
nf x y
mf x y
m n
1 1 1 1
0 0
1 1 1 1
1 ( , ) ( , ) ( , ) ( , )
2
m m n n
x y i i n j m j
i i j j
h h
f x y
f x y
f x y
f x y
1 1
1 1
( , )
m n
x y k i
k i
h h f x y
2 2
2 2
( )( )
( ) d c b a , ,
R f h f h f
矩形区域二重积分
复合抛物线法,
2 2
x y
b a d c
h h
m n
( , ) d
d
c
f x y y
( , ) d
b
a
f x y
jx
1
0 2 2 2 1
1 1
( , ) ( , ) 2 ( , ) 4 ( , )
3
n n
y
n j j
j j
h f x y f x y
f x y f x y
1
0 2 2 2 1
1 1
( , ) ( , ) 2 ( , ) 4 ( , )
3
n n
x
j m j i j i j
i i
h f x y f x y f x y f x y
矩形区域二重积分
其中
误差:
2 2
,
0 0
( , ) ( , )
m n
b d
x y i j i j
a c
i j
f x y dydx h h f x y
,
i j
u v
i j
0 1 2
0 1 2
1 4 2 4 2 4 1 , , , , , , , , , ,
3 3 3 3 3 3 3 1 4 2 4 2 4 1 , , , , , , , , , ,
3 3 3 3 3 3 3
T m
T n
U u u u
V v v v
4 4
4 4
( )( )
( ) d c b a ( , ) ( , )
R f h f h f
Matlab 积分函数
Matlab
计算积分的相关函数
数值积分函数trapz 、 quad 、 integral 、 integral2
符号积分函数:int
trapz(x, y)
x
为分割点(节点)组成的向量,y
为被积函数在节点上的函数值组成的向量。 复合梯形法
trapz
ab( ) 2
0 1 n 12
ny y
f x dx b a y y
n
[ , , , x ]
x x x y [ ( ), ( ), , ( )] f x f x f x
例:用梯形法计算下面定积分 ( 取 n=100 )
解:
a=0, b=1, n=100, y
i= f (x
i) = 1/( 1+x
i2)
x=0:1/100:1;
y=1./(1+x.^2);
inum=trapz(x, y)
trapz 举例
1 0
1
2I dx
x
quad(f,a,b,tol)
f = f(x)
为被积函数, [a,b] 为积分区间, tol 为计算精 度将自变量看成是向量!
不用自己分割积分区间
可以指定计算精度,若不指定,缺省精度是
10
-6 精度越高,函数运行的时间越长
f
是函数句柄,也可用字符串表示(不推荐),其中涉及的运算必须采用数组运算
quad
自适应抛物线法
b ( )
a f x dx
解:
f=@(x) 1./(1+x.^2);
inum=quad(f, 0, 1) % 采用缺省精度
inum=quad(@(x) 1./(1+x.^2), 0, 1, 1e- 10)
例:用
quad
计算定积分:quad 举例
1 0
1
2I dx
x
integral(f,a,b)
integral(f,a,b,'RelTol',tol)
该函数比
quad
效率更高,且可以处理一些非正常积分 可以指定计算精度,若不指定,缺省精度是
10
-6
f
必须是函数句柄,且涉及的运算必须采用数组运算integral
全局自适应积分法
( R2012a 以后版本)
f=@(x) 1./(1+x.^2);
inum=integral(f,0,1)
inum=integral(f,0,1,'RelTol',1e- 10) f=@(x) exp(-x);
b ( )
a f x dx
integral2(f,a,b,c,d,tol)
integral2(f,a,b,c,d,'RelTol',tol)
可以指定计算精度,若不指定,缺省精度是
10
-6
f
必须是函数句柄,且涉及的运算必须采用数组运算integral2
计算二重积分的全局自适应积分法
( , )
d b
c a
f x y dxdy
integral2
f=@(x,y) 4*x.*y+3*y.^2;
inum=integral2(f,-1,1,0,2)
例:计算二重积分
注意积分变量与积分区间的对应关系
在前面的是第一积分变量,在后面的是第二积分变量
2 1 2
0 1
(4 3 )
I xy y dxdy
int
符号积分
int(f,v,a,b) %
计算定积分int(f,a,b) %
计算关于默认变量的定积分int(f,v) %
计算不定积分int(f) %
计算关于默认变量的不定积 例:分用int
函数计算定积分:syms x;
f=1/(1+x^2);
b
( )
a
f v dv
( ) f v dv
1 0
1
2I dx
x
x=1:0.001:2;
y=exp(x.^(-2));
inum=trapz(x,y)
梯形法:
抛物线法:
f=@(x) exp(x.^(-2));
inum=quad(f, 1, 2, 1e-10)
符号积分法:
syms x;
例:用 Matlab 函数近似计算定积分
数值实验
2 2
1 x
d
I e
x
数值积分法:
f=@(x,y) x+y.^2;
inum=integral2(f, 0, 2, -1, 1)
符号积分法:
syms x y;
f=int(x+y^2,y,-1,1);
inum=int(f,x,0,2)
数值实验
例:用 Matlab 函数近似计算二重积分
2 1 2
0 1