天天看點

計算方法(一):誤差四種誤差的定義浮點數誤差、誤差限、有效數字相對誤差誤差的傳播

四種誤差的定義

1. 模型誤差:

由數學模型(比如公式)産生的誤差。

例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=21​gt2,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. 觀測誤差:

由觀測得到的觀測資料産生的誤差。

例2: 給出一個參數 α = ( 0.0021 ± 0.001 ) \alpha = (0.0021 \pm 0.001) α=(0.0021±0.001)中,0.001就是觀測誤差。

3. 截斷誤差:

模型的準确解與應用數值方法求得的解的差。

例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∑n​k!xk​=k=n+1∑∞​k!xk​

4. 舍入誤差

對于無限小數,計算時隻能取有限項位小數引起的誤差。

例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…

浮點數

1. 浮點數的表示方法

定義 任何一個有限位浮點數均可以表示成

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

2. 計算機位數與浮點數

一個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時,計算機無法表示這個浮點數(十進制意義)。

誤差、誤差限、有效數字

1. 誤差的準确定義

1.1 定義 用 x ∗ x^* x∗表示 x x x的準确值的一個近似值,将近似值與準确值之差稱之為近似值 x ∗ x^* x∗的絕對誤差

e ∗ = x ∗ − x e^*=x^*-x e∗=x∗−x

1.2 誤差的性質

  1. 近似值減去它的誤差就是準确值: x = x ∗ − e ∗ x=x^*-e^* x=x∗−e∗;
  2. 誤差可正可負;
  3. 誤差為正:強近似;誤差為負:弱近似。

2. 誤差限

2.1 定義 由于準确值 x x x可能無法得出,是以我們成誤差的絕對值的上界為誤差限:

∣ 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

2.2 四舍五入方法

把一個數 x x x按四舍五入方法取得近似數的準則是:按照舍入到第幾位小數,檢視其下一位數,小于五則直接舍入;若大于五,舍去此位,然後前一位進一。

3. 有效數字

3.1 定義 :如果近似值 x ∗ x^* x∗的誤差限是 x ∗ x^* x∗的某一位的半個機關,則該位到 x ∗ x^* x∗的第一位非零數字一共有 n n n位,就稱近似值 x ∗ x^* x∗有n位有效數字。

如果用四舍五入方法取準确值的前n位作為近似值,那麼這個近似值就有n位有效數字。

3.2 誤差限與有效數字的關系

設規格化浮點數 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:
  1. 首先将近似值 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} a1​a2​.a3​a4​=0.a1​a2​a3​a4​×1020.00a1​a2​a3​=0.a1​a2​a3​×10−2

  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

相對誤差

1. 相對誤差的定義

定義 近似數的誤差和準确值的比值,稱為近似數的相對誤差。

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​

表示相對誤差

2. 相對誤差限的定義

定義 相對誤差絕對值的上界,稱為近似值的相對誤差限

ϵ r ∗ = ϵ ∗ ∣ x ∣ \epsilon^*_r=\frac{\epsilon^*}{|x|} ϵr∗​=∣x∣ϵ∗​

或者

ϵ r ∗ = ϵ ∗ ∣ x ∗ ∣ \epsilon^*_r=\frac{\epsilon^*}{|x^*|} ϵr∗​=∣x∗∣ϵ∗​

例8:
  1. 參數 α = ( 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

  2. π \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

3. 相對誤差與有效數字的關系

(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α1​1​×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位有效數字。

誤差的傳播

1. 基本四則運算結果的誤差限

設有兩個近似數 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∗)

那麼

  1. 加減法: x ∗ ± y ∗ x^*\pm y^* x∗±y∗的誤差限

    ϵ ∗ ( x ∗ ± y ∗ ) = ϵ ∗ ( x ∗ ) + ϵ ∗ ( y ∗ ) \epsilon^*(x^*\pm y^*)=\epsilon^*(x^*)+\epsilon^*(y^*) ϵ∗(x∗±y∗)=ϵ∗(x∗)+ϵ∗(y∗)

  2. 乘法: x ∗ y ∗ x^* y^* x∗y∗的誤差限

    ϵ ∗ ( x ∗ y ∗ ) = ∣ y ∗ ∣ ϵ ∗ ( x ∗ ) + ∣ x ∗ ∣ ϵ ∗ ( y ∗ ) \epsilon^*(x^* y^*)=|y^*|\epsilon^*(x^*)+|x^*|\epsilon^*(y^*) ϵ∗(x∗y∗)=∣y∗∣ϵ∗(x∗)+∣x∗∣ϵ∗(y∗)

  3. 除法: x ∗ y ∗ \frac{x^*}{y^*} y∗x∗​的誤差限

    ϵ ∗ ( x ∗ y ∗ ) = ∣ y ∗ ∣ ϵ ∗ ( x ∗ ) + ∣ x ∗ ∣ ϵ ∗ ( y ∗ ) ∣ y ∗ ∣ 2 \epsilon^*(\frac{x^*}{y^*})=\frac{|y^*|\epsilon^*(x^*)+|x^*|\epsilon^*(y^*)}{|y^*|^2} ϵ∗(y∗x∗​)=∣y∗∣2∣y∗∣ϵ∗(x∗)+∣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

2. 基本四則運算結果的相對誤差限

設有兩個近似數 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∗)

那麼

  1. 加法: x ∗ + y ∗ x^*+ y^* x∗+y∗的相對誤差限

    ϵ r ∗ ( x ∗ + y ∗ ) = max ⁡ { ϵ r ∗ ( x ∗ ) , ϵ r ∗ ( y ∗ ) } \epsilon^*_r(x^*+ y^*)=\max\{\epsilon^*_r(x^*),\epsilon^*_r (y^*)\} ϵr∗​(x∗+y∗)=max{ϵr∗​(x∗),ϵr∗​(y∗)}

  2. 減法: x ∗ − y ∗ x^* -y^* x∗−y∗的相對誤差限

    ϵ r ∗ ( x ∗ − y ∗ ) = ϵ ∗ ( x ∗ ) + ϵ ∗ ( y ∗ ) ∣ x ∗ − y ∗ ∣ \epsilon^*_r(x^*- y^*)=\frac{\epsilon^*(x^*)+\epsilon^*(y^*)}{|x^*-y^*|} ϵr∗​(x∗−y∗)=∣x∗−y∗∣ϵ∗(x∗)+ϵ∗(y∗)​

  3. 乘、除法: x ∗ y ∗ x^* y^* x∗y∗, x ∗ y ∗ \frac{x^*}{y^*} y∗x∗​的相對誤差限

    ϵ r ∗ ( x ∗ y ∗ ) = ϵ r ∗ ( x ∗ y ∗ ) = ϵ r ∗ ( x ∗ ) + ϵ r ∗ ( y ∗ ) \epsilon^*_r(x^* y^*)=\epsilon^*_r(\frac{x^*}{y^*})=\epsilon^*_r(x^*)+\epsilon^*_r(y^*) ϵr∗​(x∗y∗)=ϵr∗​(y∗x∗​)=ϵ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

3. 函數運算後的誤差限

設準确值 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α%

繼續閱讀