數值分析 2 誤差

2021-09-18 04:21:34 字數 2708 閱讀 9109

在計算中,計算結果的精確度十分重要,誤差就是影響精度的東西

數學模型,即表示計算的公式或方程,本身就是近似的,就不就不精確,這種情況導致的誤差,就叫模型誤差。

對物理世界中的引數進行觀測時產生的誤差,比如測定乙個人的身高,無論用多麼精密的工具,肯定都會存在誤差。

用近似方法所產生的誤差,也叫方法誤差,比如利用泰勒(taylor)公式:

e x=

1+x1

!+..

.+xn

n!+x

n+1(

n+1)

!eθx

e^x=1+\frac+...+\frac+\frac}e^

ex=1+1

!x​+

...+

n!xn

​+(n

+1)!

xn+1

​eθx

我們要計算左邊的值,那麼現實不允許我們計算無窮多項,所以只能近似使用:

e x≈

i=1+

x1!+

x22!

+...

+xnn

!ex

≈i=1

+1!x

​+2!

x2​+

...+

n!xn

​ 此時上面公式的截斷誤差就是:

r =e

x−i=

xn+1

(n+1

)!eθ

x,

0<

θ<

1r=e^x-i=\frac}e^ , 0<\theta <1

r=ex−i

=(n+

1)!x

n+1​

eθx,

0<

θ<1

由於計算機字長有限和浮點數表示方法的問題,計算機會按照捨入原則對超出其表示精度的資料捨入,導致結果的不精確。

數值分析中,一般假定模型正確,不考慮模型誤差和觀測誤差。

模型誤差和截斷誤差的區別

根據前面所說,這兩種誤差都是公式上存在誤差。

實際上泰勒公式本身這個模型是精確的,只是我們實際計算的數值方法是近似的,這就是二者區別。數學模型是精確的情況下,為了能夠計算(無窮多項是計算不出來的),我們會使用帶有截斷誤差的近似數值方法

設x是精確值x

∗x^*

x∗的乙個近似值:

e =x

∗−

xe = x^* -x

e=x∗−x

e就稱為x的絕對誤差,簡稱誤差。如果:

∣ e∣

≤ε

|e|\le \varepsilon

∣e∣≤

ε則稱ε

\varepsilon

ε為近似值x的絕對誤差限或者絕對誤差界,簡稱誤差限、誤差界

需要知道的是,絕對誤差是無法精確求出來的,因為我們無法知道精確值的真實數值到底是多少。

同時,絕對誤差也存在侷限性,因為它沒有反應相對於精確之誤差所佔比例。比如,(1,1.1)、(100,100.1)這兩組數都是誤差為0.1,但是因為其數值大小不同,誤差造成的影響也大有不同。所以便產生了下面概念: er=

ex∗=

x∗−x

x∗

e_r = \frac=\frac

er​=x∗

e​=x

∗x∗−

x​ e

re_r

er​就是相對誤差,但是同樣因為精確值是未知的,所以相對誤差也常取:

e r=

ex=x

∗−1x

e_r=\frac=\frac

er​=xe

​=xx

∗−1​

同時,相對誤差絕對值的上界∣er

∣|e_r|

∣er​∣;

ε r=

ε∣x∣

\varepsilon_r=\frac

εr​=∣x

∣ε​∣er

∣≤εr

|e_r|\le\varepsilon_r

∣er​∣≤

εr​

稱ε

\varepsilon

ε為相對誤差限相對誤差界

書上原話:

設數x是x

∗x^*

x∗的近似值,如果x的絕對誤差限是它的某一數字的半個單位,並且從x左起第乙個非零數字到該位共有n位,那麼就稱這n個數字為x的有效數字,也稱用x近似x

∗x^*

x∗時具有n位有效數字。

這會讓有效數字減少,相對誤差放大

由於計算機位數限制,和大數在一起,小數可能會被低位溢位掉

絕對值太小的除法結果,會非常大,可能會導致資料高位溢位

還是由於計算機位數,每一步計算都會放大誤差,積累誤差

數值穩定:捨入誤差積累可控制。

誤差積累必須可控制,否則演算法沒有實用價值。

數值分析 誤差分析

方法誤差與捨入誤差 方法誤差 在用數學模型去 某個值的時候,由於選取的數學模型產生的誤差 例如使用泰勒展開式求取近似f x 時,其對應的拉格朗日餘項即為方法誤差 捨入誤差 計算機進行數值計算時產生的誤差,然後計算時產生的新誤差 比如用計算機用3.14去近似pi 誤差限對於某個演算法或者說數學模型,我...

數值計算誤差

在matlab上執行 5.1 5 0.1和 1.5 1 0.5,給出執行結果,並簡要分析一下產生現象的原因 x1 5.1 5 0.1 x1 3.608224830031759e 16 x2 1.5 1 0.5 x12 0原因 浮點數表示時數字時位數有限,以雙精度浮點數為例,共64位。對於5.1,符號...

數值分析實驗一 捨入誤差與數值穩定性

通過上機程式設計,複習鞏固以前所學程式語言 通過上機計算,了解捨入誤差所引起的數值不穩定性。通過上機計算,了解運算次序對計算結果的影響,從而盡量避免大數吃小數的現象。通過正反兩個例項的計算,了解利用計算機進行數值計算中捨入誤差所引起的數值不穩定性,深入理解初始小的捨入誤差可能造成誤差積累從而對計算結...