《数值分析》20
主要内容:
导数的数值计算方法 数值求导的外推方法
解微分方程的差分法简介(含常微分方程数值解法)
导数的数值计算方法
1
Taylor 级数展开
) (
)
! ( ) 3
2 ( )
( )
( )
( a h f a h f a h
2f a h
3f
(3)a O h
4f
) ) (
( )
) (
(
O h
h
a f h
a a f
f
一阶向前差商
x x
f ( ) sin
2 a
h
误差
0.5 -0.2055 0.4 -0.1684 0.3 -0.1292 0.2 -0.0879 0.1 -0.0447导数的数值计算方法
) ) (
( )
( )
) (
(
a f a h 2 f a f a h O h
2f
二阶中心差商
( )
! ) 3
2 ( )
( )
( )
( a h f a h f a h
2f a h
3f
(3)a f
) ) (
( )
) (
( 2
2 O h
h
h a
f h
a a f
f
一阶中心差商
( )
! ) 3
2 ( )
( )
( )
( a h f a h f a h
2f a h
3f
(3)a f
) (
) ( 2
) (
)
( a h f a h h f a O h
3f
) (
) ( )
( 2 )
( )
( a h f a h f a h
2f a O h
4f
3
导数的数值计算方法
x x
f ( ) sin
2 a
h 0.5 0.4 0.3 0.2 0.1
误差
1 -0.2055 -0.1684 -0.1292 -0.0879 -0.0447误差
2 0.2398 0.1905 0.1416 0.0934 0.0461误差
0.0171 0.0110 0.0062 0.0028 0.00073三种一阶差商与导数误差比较
h
误差
0.5 0.0188 0.4 0.0121 0.3 0.0068 0.2 0.0030 0.1 0.0008二阶差商与二阶导数误差
导数的数值计算方法
Lagrange 插值函数方法
20
) (
) ( )
(
j
l
jx f x
jx f
20
) (
) (
) (
j j k j
k
l x f x
x f
) )(
(
) )(
) ( (
) )(
(
) )(
) ( (
) )(
(
) )(
) ( (
1 2 0
2 1
0 1
2 1 0
2 0
1 0
2 0 1
x x
x x
x x
x x x
l
x x
x x
x x
x x x
l
x x
x x
x x
x x x
l
2 2
0 1
2
) (
) ) (
( h
x x
x x x
l
2 1
2 0
2
) (
) ) (
( h
x x
x x x
l
2 2
1
( ) (
0) ( )
h
x x
x x x
l
二次多项式插值
20
) (
) ( )
(
j
l
jx f x
jx
f
5
导数的数值计算方法
)]
( )
( 2 [
) 1
(
1f x
0f x
2x h
f
)]
( 3 )
( 4 )
( 2 [
) 1
(
2f x
0f x
1f x
2x h
f
)]
( )
( 4 )
( 3 2 [
) 1
(
0f x
0f x
1f x
2x h
f x h
l 2
) 3 (
00
x h
l
1 (
0) 2
x h
l 2
) 1 (
02
x h
l 2
) 1 (
10
l
1 ( x
1) 0 l x h
2 ) 1
(
12
x h
l 2
) 1 (
20
x h
l
1(
0) 2
x h
l 2
) 3 (
02
导数的数值计算方法
2
1
1
) 2 ( ) ( )
) (
( h
x f x
f x
x f
f
j j
j
j
二次多项式插值导出的二阶导数计算公式
四次多项式插值导出的二阶导数计算公式
] 16
30 16
1 [ )
(
2
2
1
1
2
jf
jf
jf
jf
jf
jx h
f
7
数值求导的外推方法 外推算法
)]
( )
( 2 [
) 1
( f x h f x h
h h
g
3
) ( )
2 / ( ) 4
1
( h G h G h
G
3
) ( )
2 / ( ) 4
1
( h g h g h
g
15
) ( )
2 / ( ) 16
(
1 12
h g h g h
g
)]
( )
( 2 )
( 1 [
)
(
2f x h f x f x h
h h
G
15
) ( )
2 / ( ) 16
(
1 12
h G h G h
G
一阶导数数值计算
二阶导数数值计算
数值求导的外推方法
x x
f ( ) sin x 2
-0.2272 )
(
x f
-0.9738 )
(
x f )]
( )
( 2 [
) 1
( f x h f x h
h h
g
)]
( )
( 2 ) (
1 [ )
( 2 f x h f x f x h
h h
G
h 0.5 0.4 0.3 0.2 0.1
一阶中心差商
-0.2179 -0.2212 -0.2238 -0.2257 -0.2268一次外推
-0.2223 -0.2247 -0.2263 -0.2272二次外推
-0.2248 -0.2264 -0.2273h 0.5 0.4 0.3 0.2 0.1
二阶中心差商
-0.9537 -0.9609 -0.9666 -0.9706 -0.9730一次外推
-0.9633 -0.9684 -0.9720 -0.9738二次外推
-0.9688 -0.9722 -0.9740数值实验
解微分方程的差分法简介
9
二阶常微分方程边值问题一般形式 ), (
)
( qu f x
dx r du dx
p du dx
d
将边值问题离散化为代数方程分三个步骤:
第一步 : 将求解区域离散化;
第二步 : 将微分方程离散化;
第三步 : 处理边界条件.
微分方程离散化方法 —— 有限差分法 ( finite difference method )
用差商替代微分方程中的导数项
, ( ) )
( a u b
u
b x
a
解微分方程的差分法简介
有限差分法的基本问题是研究对微分算子的各阶逼近 格式(即差分格式)。
第一步:求解区域离散化,均匀剖分构造均匀网格,取 正整数 n ,步长 h = (b – a)/(n+1) ,得
( j = 0 , 1 , ··· , n+1 )
jh a
x
j
} ,
, 1 ,
|
{ x
jx
ja jh j n
h
求解区域
}
|
{ x a x b
解微分方程的差分法简介
11
差分逼近
) 12 (
)]
( )
( 2 )
( 1 [
)
(
j 2u x
j 1u x
ju x
j 1h
2u
(4) jx h
u
j j
j j
j
u u qu f
h u
1 (
2
)
1 2 1
考虑微分方程
第二步:微分方程离散化
三点差分格式
, ( ) )
(
), (
b u a
u
b x
a x
f qu
u
( j = 1, ··· , n )
j j
j
j
qh u u h f
u
1 ( 2
2)
1
2
解微分方程的差分法简介
第三步: 边界条件处理
第一类边界条件 u ( a ) , u ( b )
10
, u
nu
n
n F
F F
u u u
qh qh
qh
2 1 2
1
2 2
2
2 1
1 2
1
1 2
j
j
h f
F
20 2 1
1
h f u
F
2
h f u F
) ,
, 2 , 1
( j n
解微分方程的差分法简介
13
拉普拉斯方程边值问题
y y
u
x u x
u y
u
y x u
u
xx yysin )
, 1 (
0 )
1 , ( )
0 , ( )
, 0 (
1 ,
0 ,
0
O 1
x 1
y
x
i= i h , ( i = 0 , 1 , … , n )
y
j= j h , (j = 0 , 1 , … , n) 取
h = 1/n) 2 (
]
[ 2 2 , 1, 2 1, O h2 h
u u
u x
u i j i j i j j
i
) 2 (
]
[ 2 2 , , 1 2 , 1 O h2 h
u u
u y
u i j i j i j j
i
解微分方程的差分法简介
) 4 (
1 1, 1, , 1 , 1
i j i j i j i j
j
i U U U U
U
( i, j = 1 , … , n- 1)
) 4 (
1 1, 1, , 1 , 1
i j i j i j i j
j
i u u u u
u
( i, j = 1,…,2 n- 1)
外推 : ~ ( 4 ) / 3
2 ,
2i j ij
ij
u U
U
n 10 20 外推
error 0.0028 7.1115e-004 6.5304e-006 iteratives 152 706
高斯 - 赛德尔迭代法结合外推技术实验
15
Ex2. 试推导数值微分公式
)]
2 (
) (
8 )
( 8 )
2 (
12 [ ) 1
( 0 f x0 h f x0 h f x0 h f x0 h
x h
f