数值计算方法
主讲 刘玲
南京大学计算机科学与技术系
第 1章 绪论
? 随着科学技术的飞速发展,科学计算愈
来愈显示出其重要性。科学计算的应用
之广已遍及各行各业,例如:气象资料
的分析图像,飞机、汽车及轮船的外形
设计,高科技研究等都离不开科学计算。
因此,作为科学计算的数学工具数值计
算方法已成为各高等院校数学、物理和
计算机应用专业等理工科本科生的专业
基础课,也是工科硕士研究生的学位必修
课。
? 数值分析或数值计算方法主要是研究如
何运用计算机去获得数学问题的数值解
的理论和方法,对那些在经典数学中,用解
析方法在理论上已作出解的存在,但要求
出他的解析解又十分困难,甚至是不可能
的这类数学问题,数值解法就显得不可缺
少,同时有十分有效,
? 计算机解决科学计算问题时经历的几个
过程
? 实际问题 —— 〉 数学模型 —— 〉 数值计算方
法 —— 〉 程序设计 —— 〉 上机运行求出解
? 实际问题 —— 〉 数学模型:由实际问题应用
科学知识和数学理论建立数学模型的过程,
是应用数学的任务。
? 数值计算方法 —— 〉 程序设计 —— 〉 计算结
果:根据数学模型提出求解的数值计算方法,
直到编出程序上机算出解,是计算数学的任
务。
? 数值计算方法重点研究:求解的数值方
法及与此有关的理论
? 包括:方法的收敛性,稳定性,误差分析,
计算时间的最小(也就是计算费用),占用
内存空间少,
? 有的方法在理论上虽不够严格,但通过
实际计算,对比分析等手段,被证明是
行之有效的方法,也可以采用。因此,
数值分析既有纯数学高度抽象性与严密
科学性的特点,又有应用的广泛性与实
验的高度技术性特点,是一门与使用计
算机密切结合的实用性很强的数学课程。
1.1数学问题的数值解法例示
? 例 1..1.1试求函数方程 x=cosx在区间 内的
一个根。

)2,0( ?
.
)
2
,0(,0s i n1)(
.)
2
,0(0)(,
0
2
*)1()
2
()0(
,]
2
,0[)(,c o s)(
知上述零点唯一
又由
内至少有一个零点在方程由零点定理知
且上是连续函数在易知令
?
?
??
?
?????
?
???
??
xxxf
xf
ff
xfxxxf
1.1数学问题的数值解法例示
.
4
.,
c o s
.,
.
*
**
附近大致位于看出
从图中可以为所求方程的解的横坐标取两曲线交点
作图像可大致判定此零点位置法
若用图解困难本题用解析法求解较为
?
x
xp
xy
xy
?
?
?
?
?
公式有的复化
被积函数择数值方法有多种,如选
莱布尼兹公式—)由牛顿解:(
)(
计算定积分例
S i m p s o n
x
xf
hn
xI
dxeIdx
x
x
2
1
01
1
0
1
0
221
1
4
)(
,
2
1
,2
0a r c t a n41a r c t a n4|a r c t a n4
1
)2(
1
4
I 1
2..1.1
2
?
?
??
????
?
?
?
? ?
?
?
。行数值求解有
公式进的复化法求解。仍选择
数值方公式无法求解,仅可用由
无原函数,因此,由于)(
7 4 6 8 5 5 3 7 9.0
,
2
1
,2
L e i b n i zNe wt o n
e)(,e2
1 4 1 5 6 8 6 2 7.3
)]1()
4
3
(4)
2
1
(2)
4
1
(4)0([
6
2
1
0
2
1
22
?
??
?
?
??
?
?????
?
I
s i m p s o nhn
x
xfdxI
fffff
h
I
-x
:
12
1)0(
2
3.1.1
2
方法我们选择经典的四阶
如。本题数值方法很多,解析解
解得方程,令该方程是解
求解初值问题例
KR
xy
yuB e rn o u l l i
y
y
x
y
dx
dy
?
??
?
?
?
?
?
?
?
??
为步长。;这里 h
y
x
yyxf
kyhthfk
k
y
h
thfk
k
y
h
thfk
ythfk
kkkkyy
nn
nn
nn
nn
nn
2
),(,
)),(
)
2
,
2
(
)
2
,
2
(
),(
)22(
6
1
34
2
3
1
2
1
43211
??
?
?
?
?
?
?
?
?
?
?
?
???
???
???
?
?????
?
现取 h=0.05,其结果见下表,
xn yn y xn yn y
0 1.00000 1.00000 1.2 1.84931 1.84931
0.2 1.18322 1.18322 1.4 1.94396 1.94396
0.4 1.34164 1.34164 1.6 2.04939 2.04939
0.6 1.48324 1.48324 1.8 2.14476 2.14476
0.8 1.61245 1.61245 2.0 2.23607 2.23607
1.0 1.73205 1.73205 … … …
1.2误差概念和有效数
? 在任何科学计算中其解的精确性总是相
对的,而误差则是绝对的,我们从下面这个
例子就可以了解误差产生的原因,
例 1.2.1 试求摆长为 L的单摆运动周期,
2
2
si n
g:
g
l
2T
dt
d
mlmamgf
ml
?
?
?
????
?
牛顿定律的质量。如图所示:由
是质点为自由落体加速度;为摆长;其中
摆周期在物理学中我们知道单
0
,si n,
0si n
si n
2
2
2
2
2
2
2
2
??
??
??
??
??
?
????
?
?
?
?
dt
d
l
g
l
g
dt
d
mg
dt
d
ml
则有
令很小时当

所以
:期求解过程的误差情况现在我们来分析单摆周
因此
,故有解微分方程得

g
l
T
tcctctc
?
?
?
?????
??
2
2
)s i n (.s i nc o s
2
2
2
121
21
??
?????
??
开方:舍入误差
长度秒米观察误差:
展式:由
截断误差:
点处的摩擦力忽略
忽略空气阻力
模型误差
/,,*,,.4
,/8.93
.,, ]
!5!3
[s i nT a g l o r
s i n2
o
1
0
20
53
0
0
??
?
??????
?
?
?
?
lg
?
??
??
??
误差的分类
? 模型误差 从实际问题建立的数学模型往
往都忽略了许多次要的因素,因此产生的
误差称为模型误差,
? 观测误差 一般数学问题包含若干参数,他
们是通过观测得到的,受观测方式、仪器
精度以及外部观测条件等多种因素,不
可能获得精确值,由此而来产生的误差
称为观测误差。
? 截断误差 在求解过程中,往往以近似替
代,化繁为简,这样产生的误差称为截
断误差。
? 舍入误差 在计算机上运算时受机器字长
的限制,一般必须进行舍入,此时产生
的误差称为舍入误差。
误差和有效数字
。的绝对误差和相对误差为近似数

称的一个近似数为准确数设定义
*
*
*
**
*
)0(
)(
)(
)(
,2.2.1
x
x
x
xe
xe
xxxe
xx
r
??
??
精度的好坏更合理。
衡量也称百分比误差而用相对误差
。但无法衡量精度的好坏比较直观
的精度高低绝对误差是做为衡量
称为不足绝对误差。时当
称为过剩绝对误差时当
,,
,
,
,0)(;,0)(
*
*
*
x
xe
xe
?
?
误差估计
? 由于准确值在一般情况下是未知的,
因此绝对误差和相对误差常常是无
法计算的,但有可能给出估计。误
差界就是用于误差估计的。
误差估计
差界。的绝对误差界和相对误为近似数和则称
满足和若有正数
的一个近似数是精确数设定义
*
r
*
*
**
r
*
||
||
|)(|
|||)(|
:
,2.2.1
x
x
xx
xe
xxxe
xx
rr
??
?
?
??
?
?
?
???
在实际计算绝对误差和相对误差时,哟由于准确
书 x 未知,因此常用
*
*
* )()(
x
xe
xe r ?
表示
)( *xe r

有效数字
? 在工程上,误差的概念就转化为有效数字。
似数。具有五位有效数字的近称

的近似数例如
3, 1 4 1 6
10
2
1
.,,,,,0 0 0 0 0 7 3 4.0
.,,1 4 1 5 9 2 6 5.31416.3)(
1416.3.,,,,,1 4 1 5 9 2 6 5.3
*
4
*
*
?
???
??
??
?
?
?
??
e
在计算机中表示为:
均为有效数。为有效数字,且
则若设
121
321
...,
10
2
1
.,,,....010
?
?
?????
nn
nm
n
m
aaaa
aaaax ?
m f a1 a2
…… an
位有效数的近似数。的具有为则称
的绝对误差满足。如果
是整数且和其中
有规格化形式设近似数定义
nxx
xxxe
xaa
niam
aaaax
x
nm
i
i
n
m
*
**
*
1
321
*
*
10
2
1
|||)(|
90,0
,.,, ),.,,,2,1(
.,,.,,.010
3.2.1
?
????
???
?
???
? 绝对误差,相对误差,有效数是度量近似数
精度的常用三种。实际计算时最终结果均以
有效数给出。同时也就隐含了绝对误差和相
对误差界。
4*
*
10
2
1
5,1,4 1 4 2.1,2
?
??
????
?的绝对误差界则

x
nmxx
5
5
4
*
*
104
104
4 1 4 2.1
10
2
1
|)(|
?
?
?
??
??
?
??
r
r
x
xe
?
?

而相对误差界估计为
函数值的误差估计
? 引入微分符号
*
*
*
*
*
*
***
ln)(
)(
xd
x
dx
x
xx
xe
dxxxxe
r
??
?
?
???
)()(lnln
)ln( l n)l n ()(
)()(
)()(
,,
*
2
*
1
*
2
*
1
*
2
*
1
*
2
*
1
*
2
*
1
*
2
*
1
*
2
*
1
*
2
*
1
*
2
*
1
*
2
*
121
xexexdxd
xxdxxdxxe
xexe
dxdxxxdxxe
xxxx
rr
r
????
???
??
?????
,则的近似数设
2*
2
*
2
*
1
*
1
*
2
*
2
*
1
*
2
*
1*
2
*
1
*
2
*
1
*
1
*
2
*
2
*
1
*
2
*
1
*
2
*
1
*
2
*
1
*
2
*
1
)(
)()(
)(
)()()(
)()(
)]()([)()(
x
xexxex
x
x
e
xexe
x
x
e
xexxex
xexexxxxexxxxe
rrr
rr
rrr
?
?
??
??
???
同理得
故:
)(
)(
)(
)(
)()())((
)()()()(
)(
),(
*
*
**
****
**
*
*
xe
xf
xfx
fe
xexfxxxf
xdfxfxffe
xf
xxxfy
rr
?
?
?????
???
?

时,则误差为计算函数值则
代替用近似数当设函数
定的。是可以控制的,或是稳
时,函数值的误差这表明当
时有
当若记
1,1
)()(
)()(
1
,1|,
)(
)(
||,)(|
*
*
*
**
*
??
?
?
?
?
?
???
r
rr
r
r
CC
xefe
xefe
C
C
xf
xfx
CxfC
为病态。称当
为良态;称当
。和相对意义下的条件数
在绝对意义下为一般分别称
)(1
)(1
)(,
xfC
xfC
xfCC
r
??
?
例题
在正根附近是病态的
即正根为
解得由解
在正根附近的性态。
讨论函数例
)(
1201|12|)100(|
100
100,1010)(
1 0 1 0 0)(
2.2.1
100
21
*
xf
xf
x
xxxf
xxxf
x
?
??????
?
????
???
?
?
。变化,函数值变化极大也就是自变量发生微小
则取
则如:取
09.20)9.99()(,9.99
2 0 0)99()(,99
*
1
*
1
*
1
*
1
????
????
fxfx
fxfx
多元函数误差估计
)()(
)()(
),.,,,,(),.,,,()(
),.,,,,(),.,,,(
),,.,,,,(
*
1
*
1
*
*
1
*
*
21
**
2
*
1
21
**
2
*
1
*
21
i
n
i i
n
i
i
i
n
i
ii
i
nn
T
n
T
n
n
xe
x
f
fe
xe
x
f
xx
x
f
xxxfxxxffe
xxxxxxxx
xxxfy
?
??
?
??
?
?
?
?
?
??
?
?
?
??
?
?
因此绝对误差界为
其绝对误差为
代替用
对于多元函数
|)(||
)(
)(
||)(|
)(
)(
)
)(
1
*
*
*
*
*
1
*
*
*
*
*
?
?
?
?
?
?
?
?
?
?
n
i
ir
i
i
r
n
i
ir
i
i
r
xe
xf
x
x
xf
fe
xe
xf
x
x
xf
fe
相对误差界

同理相对误差为
例题
。的绝对误差和相对误差
面积试估计
观测数据为设例
SA B C,)02.060(
,)10.01 2 0(,)10.01 0 0(
A B C3.1, 2
???
????
?
o
A
mcmb
2***
****
****
57.10
180
02.0c o s
2
1
1.0si n
2
1
1.0si n
2
1
)()()()(
si n
2
1
mAcb
AbAc
Ae
A
S
ce
c
S
be
b
S
Se
AbcS
????
????
?
?
?
?
?
?
?
?
?
?
?
则由解
253*
3
3
***
*
*
*
10
2
1
10
2
1
|)(|
1 0 0 1 0.01010.1 0 0
:
100 3 5.2
si n
2
1
57.10
|
)(
||)(|
??
?
????
???
????
be
b
Acb
s
se
se
r

对误差界。如
出,则知道绝若数据以规格化形式给注意
1.3算法的优化
? 算法优劣的标准
? 从截断误差观点看,算法必须是截断误差小,
收敛敛速要快。即运算量小,机器用时少,
? 从舍入误差观点看,舍入误差在计算过程中
要能控制,即算法的数值要稳定,
? 从实现算法的观点看,算法的逻辑结构不宜
太复杂,便于程序编制和上机实现,
? 设计算法时应遵循的原则
? 要有数值要稳定性,即能控制误差的传播,
? 避免大数吃小数,即两数相加时,防止较小的
数加不到较大的数上,
? 避免两相近的数相减,以免有效数字的大量
丢失,
? 避免分母很小 (或乘法因子很大 ),以免产生溢
出,
例题
.,,
1
)1(.,,
3
1
2
1
12ln
1
.,,)1(.,,
32
)1l n (

2ln例1, 3, 1
1
1
32
???????
?
????????
?
?
n
x
n
xxx
xx
T a y l o r
n
n
n
有令
展式有算法一:由
的值。计算
慢。显然项数大,收敛速度
时,则若要
收敛。所以
且由级数判别,交错级数
55
10210
2
1
1
1
||
2ln
0l i m
????
?
?
?
?
??
n
n
a
n
n
?
得:并取则令


由于算法二
10
3
1
2
1
1
...)
12
...
53
1(2
1
1
ln)1l n ()1l n (
...)1(...
32
)1l n (
......
32
)1l n (
:
242
1
32
32
???
?
?
?
?
?????
?
?
????
????????
????????
?
nx
x
x
n
xxx
x
x
x
xx
n
xxx
xx
n
xxx
xx
n
n
n
n
差距很大。
,计算精度及速度两种算法,同样计算
其截断误差为
2ln
10
9
1
23
1
12
1
9
1
1
1
9
1
23
1
3
2
...)
9
1
25
1
9
1
23
1
(
3
2
))
3
1
(
21
1
...
3
1
5
1
3
1
1(
3
2
2ln
12
1011
1211
20
42
?
????
?
????
?????
?????
T
。则时同理若要
算法一:由定积分解
的值。计算圆周率例
55
1
1
0
2
10,10
2
1
12
1
||
.,,
12
1
)1(.,,
5
1
3
1
1
1
1
4
2.3.1
???
?
?
?
?
??????
?
?
?
?
?
n
n
n
dx
x
n
?
?
?
1 4 1 5 6 8 6 2 7.34
7 8 5 3 9 2 1 5 6.0)]1()
4
3
(4)
2
1
(4)0([
6
1
1
)(,
2
1
2
2
*
2
2
??
?????
?
???
S
ffff
h
S
si m p so n
x
xfhn
?所以
公式有的,算法二:取
算法二表明,仅用不多的五次函数值的计算,已获得 π的
具有五位有效数字的近似值。
,.,,2,1
1
|
5
5
5
,.,, )1,0(
5
例1, 3, 3
1
0
1
0
1
1
0
1
1
1
0
????
?
?
??
?
?
?
?
?
?
?
?
?
n
nn
x
dxx
dx
x
xx
II
ndx
x
x
I
n
n
nn
nn
n
n
解:由于
计算定积分
计算如下:
得递推公式
?
?
?
?
?
??
???
?
1 8 2 3 2 1 5 5.0
5
6
ln
,.,,2,15
1
0
1
I
nI
n
I
nn
n In n In
0 0.18232155 9 0.017056624
1 0.088392216 10 0.014716876
2 0.058039818 11 0.017324710
3 0.043138742 12 -0.003290219
4 0.034306287 13 -0.093374172
5 0.028468560 14 -0.395442290
6 0.024323864 15 2.043878100
7 0.021237820 16 -10.15689000
8 0.018810897 17 50.84327600
错。的绝对值越大,显然出
越大,,且时从表中看到,当
。且即
,,所以由于
n
n
n
n
n
n
I
nIn
II
dx
x
x
x
x
x
012
0l i m,10
1
5
0)1,0(1
5
0
1
0
4
??
???
?
?
???
?
?
??
?
1)5(
.,,,,,
)(5
,.,,2,1
5
1
5
1 8 2 3 2 1 5 5.0
0
*
11
*
*
1
*
*
000
*
0
????
?
????
????
???
??
?
?
?
n
nnnn
nn
IIII
nII
III

,存在误差错在
,错在何处算法正确,程序也正确
算失真。
致计在计算过程中传播而导的误差
由于初值在计算机上计算时的算法
上成立显然算法不稳定。理论
,
,,
? 显然算法不稳定,理论上成立的算法,
在计算机上机算时,由于初值的误差在
计算过程中的传播,而导致结果的失真,
这是我们数值计算方法所要研究的。