由数学模型(比如公式)产生的误差。
例1: 自由落体运动
s = 1 2 g t 2 , g ≈ 9.8 m / s 2 s=\frac{1}{2}gt^2,g\approx 9.8m/s^2 s=21gt2,g≈9.8m/s2
产生的计算数据 s ( t ) s(t) s(t),同物体真实下落的距离 s ∗ ( t ) s^*(t) s∗(t)产生的模型误差> s ∗ ( t ) − s ( t ) s^*(t)-s(t) s∗(t)−s(t)。
由观测得到的观测数据产生的误差。
例2: 给出一个参数 α = ( 0.0021 ± 0.001 ) \alpha = (0.0021 \pm 0.001) α=(0.0021±0.001)中,0.001就是观测误差。
模型的准确解与应用数值方法求得的解的差。
例3: 用Taylor公式计算指数
e x = 1 + x + x 2 2 ! + … + x n n ! + … e^x=1+x+\frac{x^2}{2!}+\ldots + \frac{x^n}{n!}+\ldots ex=1+x+2!x2+…+n!xn+…
如果只取前n+1项,得到的阶段误差就是:
∑ k = 0 ∞ x k k ! − ∑ k = 0 n x k k ! = ∑ k = n + 1 ∞ x k k ! \sum_{k=0}^{\infty}\frac{x^k}{k!}-\sum_{k=0}^{n}\frac{x^k}{k!}=\sum_{k=n+1}^{\infty}\frac{x^k}{k!} k=0∑∞k!xk−k=0∑nk!xk=k=n+1∑∞k!xk
对于无限小数,计算时只能取有限项位小数引起的误差。
例4: 用3.1415近似代替圆周率 π \pi π,得到的就是舍入误差:
p = 3.1415 − 3.141592 … = − 0.000092 … p=3.1415-3.141592\ldots\\ =-0.000092\ldots p=3.1415−3.141592…=−0.000092…
定义 任何一个有限位浮点数均可以表示成
x = ± ω β J = ± 0. α 1 α 2 … α t × β J , L ≤ J ≤ U x=\pm \omega \beta^J=\pm 0.\alpha_1\alpha_2\ldots\alpha_t\times\beta^J, L\leq J\leq U x=±ωβJ=±0.α1α2…αt×βJ,L≤J≤U
其中, β \beta β称为基,代表进制系统, J J J代表阶,是一个整数, ω = 0. α 1 α 2 … α t \omega=0.\alpha_1\alpha_2\ldots\alpha_t ω=0.α1α2…αt表示尾数,其中 0 ≤ α i ≤ β , i = 1 , 2 , … t 0\leq \alpha_i \leq \beta, i=1,2,\ldots t 0≤αi≤β,i=1,2,…t。
规格化浮点数: x = 0. α 1 α 2 … α t × β J x=0.\alpha_1\alpha_2\ldots\alpha_t\times\beta^J x=0.α1α2…αt×βJ,其中尾数第一项 α 1 ≠ 0 \alpha_1 \neq 0 α1=0。
例5:
- 十进制浮点数: x = 3.14 = 0.314 × 1 0 1 x=3.14=0.314 \times 10^1 x=3.14=0.314×101;
- 二进制浮点数: x = 1011.1101 = 0.10111101 × 2 4 x=1011.1101=0.10111101 \times 2^4 x=1011.1101=0.10111101×24;
- 十六进制浮点数: x = 3 A 0 F . B C 1 = 0.3 A 0 F B C 1 × 1 6 4 x=3A0F.BC1=0.3A0FBC1 \times 16^4 x=3A0F.BC1=0.3A0FBC1×164
一个n位的计算机内浮点数的表示一定是有限的,而且受限于位数。所以对于一个出厂的计算机来说,它内部表示的浮点数的尾数尾数 t t t是固定的。
我们用
F = { x : x = 0. α 1 α 2 … α t × β J , L ≤ J ≤ U } \mathcal{F}=\{x:x=0.\alpha_1\alpha_2\ldots\alpha_t\times\beta^J,L\leq J\leq U\} F={x:x=0.α1α2…αt×βJ,L≤J≤U}
表示 β \beta β进位制计数系统的全体浮点数, L L L表示 上溢限, U U U表示下溢限。 当一个浮点数超过 0.99 … 9 × 1 0 U 0.99\ldots9 \times 10^U 0.99…9×10U或者小于 − 0.99 … × 1 0 L -0.99\ldots\times 10^L −0.99…×10L时,计算机无法表示这个浮点数(十进制意义)。
e ∗ = x ∗ − x e^*=x^*-x e∗=x∗−x
- 近似值减去它的误差就是准确值: x = x ∗ − e ∗ x=x^*-e^* x=x∗−e∗;
- 误差可正可负;
- 误差为正:强近似;误差为负:弱近似。
∣ e ∗ ∣ = ∣ x ∗ − x ∣ ≤ ϵ ∗ → 误 差 限 |e^*|=|x^*-x| \leq \epsilon^* \rightarrow 误差限 ∣e∗∣=∣x∗−x∣≤ϵ∗→误差限
误差限可以有很多,但是一定是非负数;近似值 x ∗ x^* x∗的精确度表示:
x = x ∗ ± ϵ ∗ x=x^* \pm \epsilon^* x=x∗±ϵ∗
例6: 用毫米( m m mm mm)刻度米尺测量长度,读出 x ∗ = 1235 m m x^*=1235mm x∗=1235mm。而米尺的误差不拆过 0.55 m m 0.55mm 0.55mm。这个时候可以取误差限为 ϵ ∗ = 0.55 m m \epsilon^*=0.55mm ϵ∗=0.55mm,从而准确值:
( x = 1235 ± 0.5 ) m m (x=1235\pm 0.5)mm (x=1235±0.5)mm
把一个数 x x x按四舍五入方法取得近似数的准则是:按照舍入到第几位小数,查看其下一位数,小于五则直接舍入;若大于五,舍去此位,然后前一位进一。
如果用四舍五入方法取准确值的前n位作为近似值,那么这个近似值就有n位有效数字。
设规格化浮点数 x ∗ = 0. α 1 α 2 … α n … × 1 0 P x^*=0.\alpha_1\alpha_2\ldots\alpha_n\ldots\times10^P x∗=0.α1α2…αn…×10P,如果误差限 ϵ ∗ = 1 2 × 1 0 P − n \epsilon^* = \frac{1}{2}\times 10^{P-n} ϵ∗=21×10P−n,也就是
∣ x ∗ − x ∣ ≤ 1 2 × 1 0 P − n |x^*-x| \leq \frac{1}{2}\times 10^{P-n} ∣x∗−x∣≤21×10P−n
则称 x ∗ x^* x∗具有n位有效数字。
例7:
- 首先将近似值 x ∗ x^* x∗表示成规格化浮点数
a 1 a 2 . a 3 a 4 = 0. a 1 a 2 a 3 a 4 × 1 0 2 0.00 a 1 a 2 a 3 = 0. a 1 a 2 a 3 × 1 0 − 2 a_1a_2.a_3a_4=0.a_1a_2a_3a_4\times 10^2\\ 0.00a_1a_2a_3=0.a_1a_2a_3\times 10^{-2} a1a2.a3a4=0.a1a2a3a4×1020.00a1a2a3=0.a1a2a3×10−2- 利用 ϵ ∗ = 1 2 × 1 0 P − n \epsilon^* = \frac{1}{2}\times 10^{P-n} ϵ∗=21×10P−n
ϵ 1 ∗ = 1 2 × 1 0 2 − 4 ϵ 1 ∗ = 1 2 × 1 0 − 2 − 3 \epsilon_{1}^* = \frac{1}{2}\times 10^{2-4}\\ \epsilon_{1}^* = \frac{1}{2}\times 10^{-2-3} ϵ1∗=21×102−4ϵ1∗=21×10−2−3
定义 近似数的误差和准确值的比值,称为近似数的相对误差。
e r ∗ = e ∗ x = x ∗ − x x e^*_r=\frac{e^*}{x}=\frac{x^*-x}{x} er∗=xe∗=xx∗−x
如果 e r ∗ e^*_r er∗较小,可以用 x ∗ x^* x∗代替 x x x,然后用
e r ∗ = e ∗ x ∗ = x ∗ − x x ∗ e^*_r=\frac{e^*}{x^*}=\frac{x^*-x}{x^*} er∗=x∗e∗=x∗x∗−x
表示相对误差
定义 相对误差绝对值的上界,称为近似值的相对误差限
ϵ r ∗ = ϵ ∗ ∣ x ∣ \epsilon^*_r=\frac{\epsilon^*}{|x|} ϵr∗=∣x∣ϵ∗
或者
ϵ r ∗ = ϵ ∗ ∣ x ∗ ∣ \epsilon^*_r=\frac{\epsilon^*}{|x^*|} ϵr∗=∣x∗∣ϵ∗
例8:
- 参数 α = ( 2.35 ± 0.001 ) m m \alpha=(2.35\pm 0.001)mm α=(2.35±0.001)mm的相对误差限为
ϵ r ∗ = 0.001 2.35 ≈ 0.0043 \epsilon_r^*=\frac{0.001}{2.35} \approx 0.0043 ϵr∗=2.350.001≈0.0043- π \pi π的近似值 x ∗ = 3.14159 x^*=3.14159 x∗=3.14159的相对误差
ϵ r ∗ = 0.00008 3.14159 ≈ 0.000025 \epsilon_r^*=\frac{0.00008}{3.14159} \approx 0.000025 ϵr∗=3.141590.00008≈0.000025
(1)设近似数(采用规格化浮点数) x ∗ = ± 0. α 1 α 2 … α n … × 1 0 p x^*=\pm 0.\alpha_1\alpha_2\ldots\alpha_n\ldots\times 10^p x∗=±0.α1α2…αn…×10p,那么它的相对误差限可以选为
ϵ r ∗ = 1 2 α 1 × 1 0 − ( n − 1 ) \epsilon_r^*=\frac{1}{2\alpha_1}\times 10^{-(n-1)} ϵr∗=2α11×10−(n−1)
(2)若近似数 x ∗ x^* x∗的相对误差限满足
ϵ r ∗ ≤ 1 2 ( α 1 + 1 ) × 1 0 − ( n − 1 ) \epsilon_r^*\leq \frac{1}{2(\alpha_1+1)}\times 10^{-(n-1)} ϵr∗≤2(α1+1)1×10−(n−1)
那么近似数 x ∗ x^* x∗至少有n位有效数字。
设有两个近似数 x ∗ , y ∗ x^*,y^* x∗,y∗和精确数 x , y x,y x,y。 x ∗ , y ∗ x^*,y^* x∗,y∗的误差限为
ϵ ∗ ( x ∗ ) , ϵ ∗ ( y ∗ ) \epsilon^*(x^*),\epsilon^*(y^*) ϵ∗(x∗),ϵ∗(y∗)
那么
这些误差限都可以用定义结合三角不等式得出。
例9: 已知 a = 1.21 × 3.65 + 9.81 a=1.21\times 3.65+9.81 a=1.21×3.65+9.81,每个数的绝对误差限都为0.005,求 a a a的误差限
ϵ ∗ ( a ) = ϵ ∗ ( a = 1.21 × 3.65 + 9.81 ) = ϵ ∗ ( 1.21 × 3.65 ) + ϵ ∗ ( 9.81 ) = 1.21 × ϵ ∗ ( 3.65 ) + 3.65 × ϵ ∗ ( 1.21 ) + ϵ ∗ ( 9.81 ) = ( 1.21 + 3.65 + 1 ) × 0.005 ≈ 0.0293 ≤ 0.3 \epsilon^*(a)=\epsilon^*(a=1.21\times 3.65+9.81)\\ =\epsilon^*(1.21\times 3.65)+\epsilon^*(9.81)\\ =1.21\times\epsilon^*(3.65)+3.65\times\epsilon^*(1.21)+\epsilon^*(9.81)\\ =(1.21+3.65+1)\times 0.005\approx 0.0293\leq 0.3 ϵ∗(a)=ϵ∗(a=1.21×3.65+9.81)=ϵ∗(1.21×3.65)+ϵ∗(9.81)=1.21×ϵ∗(3.65)+3.65×ϵ∗(1.21)+ϵ∗(9.81)=(1.21+3.65+1)×0.005≈0.0293≤0.3
所以可取 ϵ ∗ ( a ) = 0.3 \epsilon^*(a)=0.3 ϵ∗(a)=0.3
设有两个近似数 x ∗ , y ∗ x^*,y^* x∗,y∗和精确数 x , y x,y x,y。 x ∗ , y ∗ x^*,y^* x∗,y∗的相对误差限为
ϵ r ∗ ( x ∗ ) , ϵ r ∗ ( y ∗ ) \epsilon^*_r(x^*),\epsilon^*_r(y^*) ϵr∗(x∗),ϵr∗(y∗)
那么
例10: 求例9的数的相对误差限
ϵ r ∗ ( a ) = ϵ r ∗ ( 1.21 × 3.65 + 9.81 ) = max { ϵ r ∗ ( 1.21 × 3.65 ) , ϵ r ∗ ( 9.81 ) } = max { 0.005 1.21 + 0.005 3.65 , 0.005 9.81 } = 0.0055 \epsilon^*_r(a)=\epsilon^*_r(1.21\times 3.65+9.81)\\ =\max\{\epsilon^*_r(1.21\times 3.65),\epsilon^*_r(9.81)\}\\ =\max\{\frac{0.005}{1.21}+\frac{0.005}{3.65},\frac{0.005}{9.81}\}\\ =0.0055 ϵr∗(a)=ϵr∗(1.21×3.65+9.81)=max{ϵr∗(1.21×3.65),ϵr∗(9.81)}=max{1.210.005+3.650.005,9.810.005}=0.0055
所以可取 ϵ r ∗ ( a ) = 0.0055 \epsilon^*_r(a)=0.0055 ϵr∗(a)=0.0055
设准确值 x x x有近似值 x 0 x_0 x0,用 f ( x 0 ) f(x_0) f(x0)去近似 f ( x ) f(x) f(x)时,误差可用Taylor展开式得到
e ∗ ( f ( x ) − f ( x 0 ) ) = e ∗ ( f ′ ( x 0 ) ( x − x 0 ) ) e^*(f(x)-f(x_0))=e^*(f'(x_0)(x-x_0)) e∗(f(x)−f(x0))=e∗(f′(x0)(x−x0))
误差限
ϵ ∗ ( f ( x 0 ) ) = ∣ f ′ ( x 0 ) ∣ ϵ ∗ ( x 0 ) \epsilon^*(f(x_0))=|f'(x_0)|\epsilon^*(x_0) ϵ∗(f(x0))=∣f′(x0)∣ϵ∗(x0)
再来看一个特殊的例子
例11: 请问0.25用来表示 1 4 \frac{1}{4} 41有几位有效数字?
0.25 = 0.25000 … 0.25=0.25000\ldots 0.25=0.25000…
所以有无限位有效数字
例12: 已知 x x x的相对误差限为 α % \alpha\% α%,求 x n x^n xn的相对误差限。
ϵ r ∗ ( x n ) = ϵ ∗ ( x n ) ∣ x n ∣ = n ∣ x n − 1 ∣ ϵ ∗ ( x ) ∣ x n ∣ = n ϵ ∗ ( x ) ∣ x ∣ = n ϵ r ∗ ( x ) = n α % \epsilon^*_r(x^n)=\frac{\epsilon^*(x^n)}{|x^n|}=\frac{n|x^{n-1}|\epsilon^*(x)}{|x^n|}=\frac{n\epsilon^*(x)}{|x|}=n\epsilon^*_r(x)=n\alpha\% ϵr∗(xn)=∣xn∣ϵ∗(xn)=∣xn∣n∣xn−1∣ϵ∗(x)=∣x∣nϵ∗(x)=nϵr∗(x)=nα%