计算方法(一):误差
四種誤差的定義
1. 模型誤差:
由數(shù)學模型(比如公式)產(chǎn)生的誤差。
例1: 自由落體運動
s=12gt2,g≈9.8m/s2s=\frac{1}{2}gt^2,g\approx 9.8m/s^2s=21?gt2,g≈9.8m/s2
產(chǎn)生的計算數(shù)據(jù)s(t)s(t)s(t),同物體真實下落的距離s?(t)s^*(t)s?(t)產(chǎn)生的模型誤差>s?(t)?s(t)s^*(t)-s(t)s?(t)?s(t)。
2. 觀測誤差:
由觀測得到的觀測數(shù)據(jù)產(chǎn)生的誤差。
例2: 給出一個參數(shù)α=(0.0021±0.001)\alpha = (0.0021 \pm 0.001)α=(0.0021±0.001)中,0.001就是觀測誤差。
3. 截斷誤差:
模型的準確解與應(yīng)用數(shù)值方法求得的解的差。
例3: 用Taylor公式計算指數(shù)
ex=1+x+x22!+…+xnn!+…e^x=1+x+\frac{x^2}{2!}+\ldots + \frac{x^n}{n!}+\ldotsex=1+x+2!x2?+…+n!xn?+…
如果只取前n+1項,得到的階段誤差就是:
∑k=0∞xkk!?∑k=0nxkk!=∑k=n+1∞xkk!\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. 舍入誤差
對于無限小數(shù),計算時只能取有限項位小數(shù)引起的誤差。
例4: 用3.1415近似代替圓周率π\(zhòng)piπ,得到的就是舍入誤差:
p=3.1415?3.141592…=?0.000092…p=3.1415-3.141592\ldots\\ =-0.000092\ldots p=3.1415?3.141592…=?0.000092…
浮點數(shù)
1. 浮點數(shù)的表示方法
定義 任何一個有限位浮點數(shù)均可以表示成
x=±ωβJ=±0.α1α2…αt×βJ,L≤J≤Ux=\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β稱為基,代表進制系統(tǒng),JJJ代表階,是一個整數(shù),ω=0.α1α2…αt\omega=0.\alpha_1\alpha_2\ldots\alpha_tω=0.α1?α2?…αt?表示尾數(shù),其中0≤αi≤β,i=1,2,…t0\leq \alpha_i \leq \beta, i=1,2,\ldots t0≤αi?≤β,i=1,2,…t。
規(guī)格化浮點數(shù): x=0.α1α2…αt×βJx=0.\alpha_1\alpha_2\ldots\alpha_t\times\beta^Jx=0.α1?α2?…αt?×βJ,其中尾數(shù)第一項α1≠0\alpha_1 \neq 0α1??=0。
例5:
- 十進制浮點數(shù): x=3.14=0.314×101x=3.14=0.314 \times 10^1x=3.14=0.314×101;
- 二進制浮點數(shù): x=1011.1101=0.10111101×24x=1011.1101=0.10111101 \times 2^4x=1011.1101=0.10111101×24;
- 十六進制浮點數(shù): x=3A0F.BC1=0.3A0FBC1×164x=3A0F.BC1=0.3A0FBC1 \times 16^4x=3A0F.BC1=0.3A0FBC1×164
2. 計算機位數(shù)與浮點數(shù)
一個n位的計算機內(nèi)浮點數(shù)的表示一定是有限的,而且受限于位數(shù)。所以對于一個出廠的計算機來說,它內(nèi)部表示的浮點數(shù)的尾數(shù)尾數(shù)ttt是固定的。
我們用
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β進位制計數(shù)系統(tǒng)的全體浮點數(shù),LLL表示 上溢限, UUU表示下溢限。 當一個浮點數(shù)超過0.99…9×10U0.99\ldots9 \times 10^U0.99…9×10U或者小于?0.99…×10L-0.99\ldots\times 10^L?0.99…×10L時,計算機無法表示這個浮點數(shù)(十進制意義)。
誤差、誤差限、有效數(shù)字
1. 誤差的準確定義
1.1 定義 用x?x^*x?表示xxx的準確值的一個近似值,將近似值與準確值之差稱之為近似值x?x^*x?的絕對誤差
e?=x??xe^*=x^*-x e?=x??x
1.2 誤差的性質(zhì)
2. 誤差限
2.1 定義 由于準確值xxx可能無法得出,所以我們成誤差的絕對值的上界為誤差限:
∣e?∣=∣x??x∣≤??→誤差限|e^*|=|x^*-x| \leq \epsilon^* \rightarrow 誤差限 ∣e?∣=∣x??x∣≤??→誤差限
誤差限可以有很多,但是一定是非負數(shù);近似值x?x^*x?的精確度表示:
x=x?±??x=x^* \pm \epsilon^* x=x?±??
例6: 用毫米(mmmmmm)刻度米尺測量長度,讀出x?=1235mmx^*=1235mmx?=1235mm。而米尺的誤差不拆過0.55mm0.55mm0.55mm。這個時候可以取誤差限為??=0.55mm\epsilon^*=0.55mm??=0.55mm,從而準確值:
(x=1235±0.5)mm(x=1235\pm 0.5)mm (x=1235±0.5)mm
2.2 四舍五入方法
把一個數(shù)xxx按四舍五入方法取得近似數(shù)的準則是:按照舍入到第幾位小數(shù),查看其下一位數(shù),小于五則直接舍入;若大于五,舍去此位,然后前一位進一。
3. 有效數(shù)字
3.1 定義 :如果近似值x?x^*x?的誤差限是x?x^*x?的某一位的半個單位,則該位到x?x^*x?的第一位非零數(shù)字一共有nnn位,就稱近似值x?x^*x?有n位有效數(shù)字。
如果用四舍五入方法取準確值的前n位作為近似值,那么這個近似值就有n位有效數(shù)字。
3.2 誤差限與有效數(shù)字的關(guān)系
設(shè)規(guī)格化浮點數(shù)x?=0.α1α2…αn…×10Px^*=0.\alpha_1\alpha_2\ldots\alpha_n\ldots\times10^Px?=0.α1?α2?…αn?…×10P,如果誤差限??=12×10P?n\epsilon^* = \frac{1}{2}\times 10^{P-n}??=21?×10P?n,也就是
∣x??x∣≤12×10P?n|x^*-x| \leq \frac{1}{2}\times 10^{P-n} ∣x??x∣≤21?×10P?n
則稱x?x^*x?具有n位有效數(shù)字。
例7:
a1a2.a3a4=0.a1a2a3a4×1020.00a1a2a3=0.a1a2a3×10?2a_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
?1?=12×102?4?1?=12×10?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. 相對誤差的定義
定義 近似數(shù)的誤差和準確值的比值,稱為近似數(shù)的相對誤差。
er?=e?x=x??xxe^*_r=\frac{e^*}{x}=\frac{x^*-x}{x} er??=xe??=xx??x?
如果er?e^*_rer??較小,可以用x?x^*x?代替xxx,然后用
er?=e?x?=x??xx?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:
?r?=0.0012.35≈0.0043\epsilon_r^*=\frac{0.001}{2.35} \approx 0.0043 ?r??=2.350.001?≈0.0043
?r?=0.000083.14159≈0.000025\epsilon_r^*=\frac{0.00008}{3.14159} \approx 0.000025 ?r??=3.141590.00008?≈0.000025
3. 相對誤差與有效數(shù)字的關(guān)系
(1)設(shè)近似數(shù)(采用規(guī)格化浮點數(shù))x?=±0.α1α2…αn…×10px^*=\pm 0.\alpha_1\alpha_2\ldots\alpha_n\ldots\times 10^px?=±0.α1?α2?…αn?…×10p,那么它的相對誤差限可以選為
?r?=12α1×10?(n?1)\epsilon_r^*=\frac{1}{2\alpha_1}\times 10^{-(n-1)} ?r??=2α1?1?×10?(n?1)
(2)若近似數(shù)x?x^*x?的相對誤差限滿足
?r?≤12(α1+1)×10?(n?1)\epsilon_r^*\leq \frac{1}{2(\alpha_1+1)}\times 10^{-(n-1)} ?r??≤2(α1?+1)1?×10?(n?1)
那么近似數(shù)x?x^*x?至少有n位有效數(shù)字。
誤差的傳播
1. 基本四則運算結(jié)果的誤差限
設(shè)有兩個近似數(shù)x?,y?x^*,y^*x?,y?和精確數(shù)x,yx,yx,y。x?,y?x^*,y^*x?,y?的誤差限為
??(x?),??(y?)\epsilon^*(x^*),\epsilon^*(y^*)??(x?),??(y?)
那么
??(x?±y?)=??(x?)+??(y?)\epsilon^*(x^*\pm y^*)=\epsilon^*(x^*)+\epsilon^*(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?)
??(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?)?
這些誤差限都可以用定義結(jié)合三角不等式得出。
例9: 已知a=1.21×3.65+9.81a=1.21\times 3.65+9.81a=1.21×3.65+9.81,每個數(shù)的絕對誤差限都為0.005,求aaa的誤差限
??(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. 基本四則運算結(jié)果的相對誤差限
設(shè)有兩個近似數(shù)x?,y?x^*,y^*x?,y?和精確數(shù)x,yx,yx,y。x?,y?x^*,y^*x?,y?的相對誤差限為
?r?(x?),?r?(y?)\epsilon^*_r(x^*),\epsilon^*_r(y^*)?r??(x?),?r??(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?)}
?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?)?
?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的數(shù)的相對誤差限
?r?(a)=?r?(1.21×3.65+9.81)=max?{?r?(1.21×3.65),?r?(9.81)}=max?{0.0051.21+0.0053.65,0.0059.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. 函數(shù)運算后的誤差限
設(shè)準確值xxx有近似值x0x_0x0?,用f(x0)f(x_0)f(x0?)去近似f(x)f(x)f(x)時,誤差可用Taylor展開式得到
e?(f(x)?f(x0))=e?(f′(x0)(x?x0))e^*(f(x)-f(x_0))=e^*(f'(x_0)(x-x_0)) e?(f(x)?f(x0?))=e?(f′(x0?)(x?x0?))
誤差限
??(f(x0))=∣f′(x0)∣??(x0)\epsilon^*(f(x_0))=|f'(x_0)|\epsilon^*(x_0) ??(f(x0?))=∣f′(x0?)∣??(x0?)
再來看一個特殊的例子
例11: 請問0.25用來表示14\frac{1}{4}41?有幾位有效數(shù)字?
0.25=0.25000…0.25=0.25000\ldots 0.25=0.25000…
所以有無限位有效數(shù)字
例12: 已知xxx的相對誤差限為α%\alpha\%α%,求xnx^nxn的相對誤差限。
?r?(xn)=??(xn)∣xn∣=n∣xn?1∣??(x)∣xn∣=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α%
總結(jié)
以上是生活随笔為你收集整理的计算方法(一):误差的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机兴趣小组活动教学教案,计算机兴趣小
- 下一篇: c语言程序设计徐立辉答案,C语言程序设计