河海大学数值分析
dlnu = dlnx – dlny 即
er (u ) er ( x )-er ( y )
r (u ) r ( x ) r ( y )
即商的相对误差是被除数与除数的相对误差之差, 但
相对误差限是各乘数的相对误差限之和. 由此可得: 任意多次连乘、连除所得结果的相对误差限等于各乘
数和除数的相对误差限之和。
n i 1
f ( x1 , x2 ,L xi
, xn )e( xi )
n i 1
f ( x1 , x2 ,L xi
, xn )e( xi )
26
记
f
( x1 , x2 , xi
,
xn )
f xi
,
则上式简记为
e( y )
n i 1
f xi
e(
xi
)
i
n 1
f xi
e( xi )
27
2a1
an
10m
故
a1 10m1 | x | (a1 1) 10m1
r(x )
x x x
0.5 10mn a1 10m1
1 10n1 2a1
17
定理2 设近似值 x 0.a1a2 an 10m 的相对误差限
不大于
1 2(a1
1)
10n1 ,则它至少有n
位有效数字。
证明 已知
Pn( x)
f (0)
f (0)x
1 2!
f (0) x2
L
1 n!
f (n)(0)xn
近似代替时,有误差
Rn ( x)
f (x)
Pn ( x)
1 (n 1)!
f (n1) ( ) x n1
其中 在 0 与 x 之间。这种误差就是截断误差。
8
4. 舍入误差: 计算机的字长是有限的, 每一步运算 均需四舍五入, 由此产出的误差。
22
例1
设
u xy
z
求 u 的相对误差限。
解因
ln u ln x ln y ln z ln
所以
d ln u d ln x d ln y d ln z d ln
从而得到
d ln x d ln x d ln y d ln z d ln
u 的相对误差限等于乘数x、y和除数z、ω的相对误差
2a1
即 10n4 1 , 得 n 4
8
故只要对 20 的近似数取4 位有效数字,其相对误差
就可小于0.1%, 因此,可取 20 4.472
19
五、数值运算的误差估计
(一)、算术运算的误差
1.
所以和或差的误差限是误差限之和。 以上的结论适用于任意多个近似数的和或差。
同理可得:乘、除运算的误差,以两数为例写出
30
Pn x L an x an1 x an2 x L a1 x a0
用递推算法:
u0 an , uk uk1x ank , k 1, 2,L , n.
最终
Pn (x)=un
共需n 次乘法和n 次加法运算。
一般地要注意: 能在循环外计算, 就不要放在循环 内计算。
5
计算数学研究适用于计算机编程的算法
基础性、应用性、边缘性
面向计算机的算法:串行、并行
好的算法的标准:可靠的理论性、 计算复杂性好(时间复杂性、空间复杂性)
数值分析的特点: 面向计算机、有可靠的理论分析、好的计算复杂性、 数值试验
数学软件 软件包 LAPACK(EISPACK,LINPACK)
、 IMSL 、NGA(1000多个)、 MATLAB
限之和。
23
(二) 函数运算误差
设 f (x)在(a,b)内连续可微, x 的近似值为 x,f (x)的近
似值为 f ( x ) , 其误差为 e[ f ( x )], 误差限为 [ f ( x )]
e[ f ( x )] d f ( x) f ( x)dx f ( x)e( x)
取绝对值得
一、简化计算步骤, 减少运算次数
n
例1 计算多项式的值: Pn ( x) ak xk
k0
每项 ak xk 有k 次乘法运算, 因此计算 Pn (x) 共需
1 2 L n nn 1 次乘法和n 次加法运算。
2
如将 Pn (x) 写成:
Pn x L an x an1 x an2 x L a1 x a0
称为该近似值的相对误差限, 记作
简记为
r
r (x)
12
三、有效数字
定义如:果近似值x* 的误差限是其某一位的半个单位, 该位到x*的第一位非零数字共有n 位, 我们称x* 有n 位有效数字。
6 4 4n7位4 48 x* L
误差限不超过该位的半个单位
自左向右看, 第一位非零数字
13
例 π = 3.1415926535 , 取 x* = 3.14 时,
即 m- n = - 2, m=1, n = 3, 所以 x= 3.14 作为 近似值 时, 就有3 位有效数字。
16
四、 相对误差限与有效数字的关系
定理1 设近似值 x 0.a1a2 an 10m
有n 位有效数字,a1 0 。则其相对误差限为
证明
x
r ( x )
0.a1a2
1 10n1
r[ f (x)]
f ( x) ( x )
f (x)
f ( x ) f (x)
(x)
25
对多元函数 y f ( x1, x2, , xn ), 自变量的近似值为 x1 , x2 , , xn , y 的近似值为 y f ( x1 , x2 ,L , xn ),
函数值 y的运算误差为
e( y ) e[ f ( x1 , x2 ,L , xn )] df ( x1 , x2 ,L , xn )
1997 ➢ J.Stoer & R. Bulirsch,Introduction to Numerical Analysis
(Second Edition),New York: Springer, 1993
➢其他(略)
2
课程简介
数值计算方法是计算数学的一个分支, 又称数值 分析或计算方法, 它是研究用计算机求解各种数学 问题的数值方法及其理论的一门学科, 是程序设计 和对数值结果进行分析的依据和基础。
e( x ) x
e( x ) x
e( x )( x xx
x)
(e( x ))2 x( x e( x ))
(er 1
( x ))2 er ( x )
11
是 er ( x )的平方项级, 故当 er ( x ) 较小时, 常取
er ( x )
e( x ) x
x x
x
相对误差是无量纲的, 也可正可负, 它的绝对值的上界
52492 0.1 52492
i 1
33
如改为
1000
52492 0.1
i 1
1000
0.1 52492 100 52492
i 1
0.1 就没有被吃掉。
这也是构造算法时要注意的问题, 避免重要的参数被 吃掉。
34
四、避免除数的绝对值远小于被除数的绝对值
因为
(
x y
)
x ( y ) y ( x )
自左向右看, 第一位非零数字
若其误差限
x
x
1 10mn 2
,则称
x具有 n 位有效
数字, 这里 m 是整数, a1, a2 , , ak 为 0~9 中的一个数字,
且a1 0.
15
例 = 3.1415926535 , 取 x= 3.14时,
x x 0.002 0.005 1 102 2
dlnu = dlnx + dlny
er ( u ) er ( x ) er ( y )
r ( u ) r ( x ) r ( y ) 这就是说, 乘积的相对误差是各乘数的相对误差之和,
相对误差限是各乘数的相对误差限之和。
21
同样, 若 u = x/y, 则 lnu = lnx – lny, 因此
e(
y
)
n
i 1
f xi
e(
xi
)
n
i 1
f xi
e(
xi
)
于是误差限
(
y
)
n
f
n
f
i1 xi
i1 xi
相对误差限
r ( y)
n i1
f xi
(x)
| y|
n i1
f xi
(x)
| y |
28
第三节 误 差的定性分析与避免误差的危害
病态问题与条件数
29
设计算法时应注意的原则
r x*
1
10n1
2(a1 1)
x* x x* r (x*)
(a1
1)
10m1
1 2(a1
1)
10n1
1 10mn
2
故 x至少有n 位有效数字。
18
例 要使 20 的近似值的相对误差限小于0.1% ,
要取几位有效数字。 解 由于 4 20 5, 所以 a1 4,
由定理1有 1 10n1 0.1%,
31
二、 注意避免两个相近数的相减
两个相近的数相减, 有效数字会大大损失。
例2
170 13 0.0384048L
如用四位有效数字计算:
170 13 13 .04 13 0.04
结果只有一位有效数字; 如改为: 170 13 1 1 0.03840
170 13 13.04 13
x * x 0.002 0.005