文章目录
本篇文章适合个人复习翻阅,不建议新手入门使用
本专栏:数值分析复习 的前置知识主要有:数学分析、高等代数、泛函分析
定义:截断误差、舍入误差
当数学模型不能得到精确解时,通常要用数值方法求它的近似解,其近似解与精确解之间的误差称为截断误差(或方法误差)
用计算机做数值计算时,由于计算机字长有限,原始数据在计算机上表示时会产生误差,计算过程又可能产生新的误差,这种误差称为舍入误差。
以下介绍舍入误差的相关概念
定义:绝对误差、相对误差
称准确值
x
x
x 和近似值
x
∗
x^*
x∗ 之差
e
∗
=
x
∗
−
x
e^*=x^*-x
e∗=x∗−x 为绝对误差,称
e
r
∗
=
x
∗
−
x
x
e_r^*=\frac{x^*-x}{x}
er∗=xx∗−x 为相对误差
称绝对误差上界为(绝对)误差限,记为
ε
∗
\varepsilon^*
ε∗,相对误差上界称为相对误差限,记为
ε
r
∗
\varepsilon_r^*
εr∗
注1:绝对误差和误差限是有量纲的,相对误差和相对误差限是无量纲的。
注2:在实际计算中,由于真值
x
x
x 总是不知道的,通常取
x
∗
−
x
x
∗
\frac{x^*-x}{x^*}
x∗x∗−x 作为相对误差
当准确值
x
x
x 有多位数时,常常按四舍五入的原则得到
x
x
x 的前几位近似值
x
∗
x^*
x∗,例如
x
=
π
=
3.14159265
⋯
x=\pi=3.14159265\cdots
x=π=3.14159265⋯
取三位:
x
3
∗
=
3.14
,
ε
3
∗
≤
0.002
x_3^*=3.14,\varepsilon_3^*\leq 0.002
x3∗=3.14,ε3∗≤0.002
取五位:
x
5
∗
=
3.1416
,
ε
5
∗
≤
0.000008
x_5^*=3.1416,\varepsilon_5^*\leq 0.000008
x5∗=3.1416,ε5∗≤0.000008
它们的误差都不超过末位数字的半个单位,即
∣
π
−
3.14
∣
≤
1
2
×
1
0
−
2
,
∣
π
−
3.1416
∣
≤
1
2
×
1
0
−
4
|\pi -3.14|\leq \frac{1}{2}\times 10^{-2},|\pi -3.1416|\leq \frac{1}{2}\times 10^{-4}
∣π−3.14∣≤21×10−2,∣π−3.1416∣≤21×10−4
定义:有效数字
若近似值
x
∗
x^*
x∗ 的误差限是某一位的半个单位,该位到
x
∗
x^*
x∗ 的第一位非零数字共有
n
n
n 位,则称
x
∗
x^*
x∗ 有
n
n
n 位有效数字,它可表示为
x
∗
=
±
1
0
m
×
(
a
1
+
a
2
×
1
0
−
1
+
⋯
+
a
n
×
1
0
−
(
n
−
1
)
)
x^*=\pm 10^m\times (a_1+a_2\times 10^{-1}+\cdots+a_n\times 10^{-(n-1)})
x∗=±10m×(a1+a2×10−1+⋯+an×10−(n−1))
其中
a
i
(
i
=
1
,
2
,
…
,
n
)
a_i(i=1,2,\dots,n)
ai(i=1,2,…,n) 是 0 到 9 中的一个数字,
a
1
≠
0
a_1\neq 0
a1=0,
m
m
m 为整数,且
∣
x
−
x
∗
∣
≤
1
2
×
1
0
m
−
n
+
1
|x-x^*|\leq \frac{1}{2}\times 10^{m-n+1}
∣x−x∗∣≤21×10m−n+1
定理:有效数字和误差限的关系
设近似数
x
∗
x^*
x∗ 表示为
x
∗
=
±
1
0
m
×
(
a
1
+
a
2
×
1
0
−
1
+
⋯
+
a
l
×
1
0
−
(
l
−
1
)
)
x^*=\pm 10^m\times (a_1+a_2\times 10^{-1}+\cdots+a_l\times 10^{-(l-1)})
x∗=±10m×(a1+a2×10−1+⋯+al×10−(l−1))
其中 a i ( i = 1 , 2 , … , l ) a_i(i=1,2,\dots,l) ai(i=1,2,…,l) 是 0 到 9 中的一个数字, a 1 ≠ 0 a_1\neq 0 a1=0, m m m 为整数
若使
x
∗
x^*
x∗ 具有
n
n
n 位有效数字,则绝对误差限为
ε
∗
=
1
2
×
1
0
m
−
n
+
1
\varepsilon^*=\frac{1}{2}\times 10^{m-n+1}
ε∗=21×10m−n+1
相对误差限为
ε
r
∗
≤
1
2
a
1
×
1
0
−
(
n
−
1
)
\varepsilon_r^*\leq \frac{1}{2a_1}\times 10^{-(n-1)}
εr∗≤2a11×10−(n−1)
反之,若 x ∗ x^* x∗ 的相对误差限 ε r ∗ ≤ 1 2 ( a 1 + 1 ) × 1 0 − ( n − 1 ) \varepsilon_r^*\leq \frac{1}{2(a_1+1)}\times 10^{-(n-1)} εr∗≤2(a1+1)1×10−(n−1),则 x ∗ x^* x∗ 至少有 n n n 位有效数字
证明
由有效数字的定义,绝对误差限是显然的
由于 a 1 × 1 0 m ≤ ∣ x ∗ ∣ < ( a 1 + 1 ) × 1 0 m a_1\times 10^m\leq |x^*|<(a_1+1)\times 10^m a1×10m≤∣x∗∣<(a1+1)×10m
当
x
∗
x^*
x∗ 具有
n
n
n 位有效数字时,
ε
r
∗
=
∣
x
−
x
∗
∣
∣
x
∗
∣
≤
0.5
×
1
0
m
−
n
+
1
a
1
×
1
0
m
=
1
2
a
1
×
1
0
−
n
+
1
\varepsilon_r^*=\frac{|x-x^*|}{|x^*|}\leq \frac{0.5\times 10^{m-n+1}}{a_1\times 10^m}=\frac{1}{2a_1}\times 10^{-n+1}
εr∗=∣x∗∣∣x−x∗∣≤a1×10m0.5×10m−n+1=2a11×10−n+1
反之,由
∣
x
−
x
∗
∣
=
∣
x
∗
∣
ε
r
∗
<
(
a
1
+
1
)
×
1
0
m
×
1
2
(
a
1
+
1
)
×
1
0
−
n
+
1
=
0.5
×
1
0
m
−
n
+
1
|x-x^*|=|x^*|\varepsilon_r^*<(a_1+1)\times 10^m\times \frac{1}{2(a_1+1)}\times 10^{-n+1}=0.5\times 10^{m-n+1}
∣x−x∗∣=∣x∗∣εr∗<(a1+1)×10m×2(a1+1)1×10−n+1=0.5×10m−n+1
故 x ∗ x^* x∗ 至少具有 n n n 位有效数字
注:该定理说明,有效位数越多,绝对误差限和相对误差限就越小
命题:四则运算的误差
设两个近似数
x
1
∗
,
x
2
∗
x_1^*,x_2^*
x1∗,x2∗ 的误差限分别为
ε
(
x
1
∗
)
,
ε
(
x
2
∗
)
\varepsilon(x_1^*),\varepsilon(x_2^*)
ε(x1∗),ε(x2∗),则
- ε ( x 1 ∗ ± x 2 ∗ ) ≤ ε ( x 1 ∗ ) + ε ( x 2 ∗ ) \varepsilon(x_1^*\pm x_2^*)\leq \varepsilon(x_1^*)+\varepsilon(x_2^*) ε(x1∗±x2∗)≤ε(x1∗)+ε(x2∗)
- ε ( x 1 ∗ x 2 ∗ ) ≤ ∣ x 1 ∗ ∣ ε ( x 2 ∗ ) + ε ( x 1 ∗ ) ∣ x 2 ∗ ∣ \varepsilon(x_1^*x_2^*)\leq |x_1^*|\varepsilon(x_2^*)+\varepsilon(x_1^*)|x_2^*| ε(x1∗x2∗)≤∣x1∗∣ε(x2∗)+ε(x1∗)∣x2∗∣
- ε ( x 1 ∗ / x 2 ∗ ) ≤ ∣ x 1 ∗ ∣ ε ( x 2 ∗ ) + ε ( x 1 ∗ ) ∣ x 2 ∗ ∣ ∣ x 2 ∗ ∣ 2 , x 2 ∗ ≠ 0 \varepsilon(x_1^*/ x_2^*)\leq \frac{|x_1^*|\varepsilon(x_2^*)+\varepsilon(x_1^*)|x_2^*|}{|x_2^*|^2},x_2^*\neq 0 ε(x1∗/x2∗)≤∣x2∗∣2∣x1∗∣ε(x2∗)+ε(x1∗)∣x2∗∣,x2∗=0
命题:一元可微函数的误差
设
f
(
x
)
f(x)
f(x) 是一元可微函数,
x
x
x 的近似值为
x
∗
x^*
x∗,以
f
(
x
∗
)
f(x^*)
f(x∗) 近似
f
(
x
)
f(x)
f(x),其误差界记作
ε
(
f
(
x
∗
)
)
\varepsilon(f(x^*))
ε(f(x∗)),由Taylor展开,
f
(
x
)
−
f
(
x
∗
)
=
f
′
(
x
∗
)
(
x
−
x
∗
)
+
f
′
′
(
ξ
)
2
(
x
−
x
∗
)
2
f(x)-f(x^*)=f'(x^*)(x-x^*)+\frac{f''(\xi)}{2}(x-x^*)^2
f(x)−f(x∗)=f′(x∗)(x−x∗)+2f′′(ξ)(x−x∗)2
其中
ξ
\xi
ξ 介于
x
,
x
∗
x,x^*
x,x∗ 之间,取绝对值得
∣
f
(
x
)
−
f
(
x
∗
)
∣
≤
∣
f
′
(
x
∗
)
∣
ε
(
x
∗
)
+
∣
f
′
′
(
ξ
)
∣
2
ε
2
(
x
∗
)
|f(x)-f(x^*)|\leq |f'(x^*)|\varepsilon(x^*)+\frac{|f''(\xi)|}{2}\varepsilon^2(x^*)
∣f(x)−f(x∗)∣≤∣f′(x∗)∣ε(x∗)+2∣f′′(ξ)∣ε2(x∗)
假设
f
′
(
x
∗
)
f
′
′
(
x
∗
)
\frac{f'(x^*)}{f''(x^*)}
f′′(x∗)f′(x∗) 不太大,则可忽略
ε
(
x
∗
)
\varepsilon(x^*)
ε(x∗) 的高阶项,可得计算函数的误差限
ε
(
f
(
x
∗
)
)
≈
∣
f
′
(
x
∗
)
∣
ε
(
x
∗
)
\varepsilon(f(x^*))\approx |f'(x^*)|\varepsilon(x^*)
ε(f(x∗))≈∣f′(x∗)∣ε(x∗)
命题:多元函数的误差
设足够光滑的多元函数
A
=
f
(
x
1
,
x
2
,
…
,
x
n
)
A=f(x_1,x_2,\dots,x_n)
A=f(x1,x2,…,xn),设
x
1
,
x
2
,
…
,
x
n
x_1,x_2,\dots,x_n
x1,x2,…,xn 的近似值为
x
1
∗
,
x
2
∗
,
…
,
x
n
∗
x_1^*,x_2^*,\dots,x_n^*
x1∗,x2∗,…,xn∗,设
A
∗
=
f
(
x
1
∗
,
x
2
∗
,
…
,
x
n
∗
)
A^*=f(x_1^*,x_2^*,\dots,x_n^*)
A∗=f(x1∗,x2∗,…,xn∗),于是由
Taylor公式得
A
∗
A^*
A∗ 的误差
e
(
A
∗
)
e(A^*)
e(A∗) 为
e
(
A
∗
)
=
A
∗
−
A
=
f
(
x
1
∗
,
x
2
∗
,
…
,
x
n
∗
)
−
f
(
x
1
,
x
2
,
…
,
x
n
)
≈
∑
k
=
1
n
(
∂
f
(
x
1
∗
,
x
2
∗
,
…
,
x
n
∗
)
∂
x
k
)
(
x
k
∗
−
x
k
)
=
∑
k
=
1
n
(
∂
f
∂
x
k
)
∗
e
k
∗
\begin{split} e(A^*)&=A^*-A=f(x_1^*,x_2^*,\dots,x_n^*)-f(x_1,x_2,\dots,x_n)\\ &\approx \sum\limits_{k=1}^n(\frac{\partial f(x_1^*,x_2^*,\dots,x_n^*)}{\partial x_k})(x_k^*-x_k)\\ &=\sum\limits_{k=1}^n(\frac{\partial f}{\partial x_k})^*e_k^*\\ \end{split}
e(A∗)=A∗−A=f(x1∗,x2∗,…,xn∗)−f(x1,x2,…,xn)≈k=1∑n(∂xk∂f(x1∗,x2∗,…,xn∗))(xk∗−xk)=k=1∑n(∂xk∂f)∗ek∗
于是误差限
ε
(
A
∗
)
≈
∑
k
=
1
n
∣
(
∂
f
∂
x
k
)
∗
∣
ε
(
x
k
∗
)
\varepsilon(A^*)\approx \sum\limits_{k=1}^n|(\frac{\partial f}{\partial x_k})^*|\varepsilon(x_k^*)
ε(A∗)≈k=1∑n∣(∂xk∂f)∗∣ε(xk∗)
参考书籍:《数值分析》李庆扬 王能超 易大义 编