- 數學建模教程
- 潘斌 于晶賢 衣娜
- 4369字
- 2020-02-26 13:18:34
3.1 誤差分析
所謂誤差就是真實值或精確值與近似值之差。由于計算機對浮點數的存儲、運算都是有誤差的,因此需要對計算過程和計算結果進行誤差分析、度量誤差的大小,“范數”是分析矩陣計算中誤差、收斂性問題的重要手段,這些內容也是整個計算方法課程的基礎知識。用計算機解決實際數學問題的過程中會產生多種誤差,而引起誤差的原因也是多方面的,本節將學習誤差的基本概念以及數值計算中誤差的傳播。
3.1.1 誤差的來源
一般使用計算機解決實際問題需經過如下幾個過程:
根據實際問題建立數學模型的過程中通常會忽略某些次要因素而對問題進行簡化,由此產生的誤差稱為模型誤差;很多數學模型都含有若干個參數,而有些參數往往又是觀測得到的近似值,如此取得的近似參數與真實參數值之間的誤差稱為參數誤差或觀測誤差。例如,自由落體運動規律公式是忽略了空氣阻力的影響,由此產生的誤差就是模型誤差;重力加速度通常取g=9.8,實際上參數g的值與落體所在位置的地球緯度和海拔高度有關,此近似參數將導致出現參數誤差。
通常在選定數學模型及參數后還要選擇數值算法,很多數值算法往往是將一個無限過程截斷為有限過程,此類誤差稱為截斷誤差或方法誤差。例如前述的差商近似導數的計算方法實質上是在如下展開式中
(3.1)
“截斷”式(3.1)中Δx的二階以上無窮小項得到的計算公式,由此產生的誤差就是截斷誤差。
另一方面,因為計算機表示浮點數的字長有限(通常4字節或8字節),除極少量能夠準確表示的數據外絕大部分是在超過界定的某位四舍五入所得的近似值,比如圓周率π,等存入計算機內存時均需要在某位進行四舍五入,此種誤差稱為舍入誤差。雖然舍入誤差在單步運算時或許微不足道,但是在一個較為復雜且連貫的數值算法中,舍入誤差可能會積累、傳播,誤差分析的任務就是討論這些誤差對最終結果的準確性和整個復雜計算過程的穩定性的影響。
3.1.2 誤差類型
(1)絕對誤差
定義3.1 設x是準確值,x*是它的一個近似值,稱其差
e*=x-x* (3.2)
為x*的絕對誤差,簡稱誤差,絕對誤差的絕對值的上限記為ε*,稱為x*的絕對誤差限,簡稱誤差限,即有
|e*|=|x-x*|≤ε* (3.3)
例如在使用圓周率時通常取為π*=3.14,其絕對誤差及誤差限為:
e*=π-π*=3.1415926…-3.14=0.0015926…
|e*|=|π-π*|=0.0015926…≤0.002=ε*
一般情況下我們無法知道準確值,當然也就無法知道準確的誤差值,但是誤差限可以限定誤差的最大值,也限定了準確值的范圍,如用3.14近似圓周率誤差不超過ε*=0.002,圓周率的準確值π∈[3.14-ε*,3.14+ε*]。在工程技術或商品規格中通常用如下方式表示產品的誤差限:x*=x±ε*。
(2)相對誤差
度量誤差的另一種方式是相對誤差,例如從10±0.1和1000±1中我們肯定不會認為絕對誤差限小的比絕對誤差限大的更精確。
定義3.2 設x為準確值,x*是它的一個近似值,稱比值
(3.4)
為近似值x*的相對誤差,相對誤差的絕對值的上限記為,稱為x*的相對誤差限,即有
(3.5)
對于10±0.1和1000±1,我們可以計算出它們的相對誤差分別為:
從絕對誤差看,后者誤差更大些,但從相對誤差的角度看,后者卻是更為精確。
在式(3.4)中,在可以確定準確值x的前提下也可以取為x作為分母。
(3)有效數字
定義3.3 設x為準確值,其近似值為
x*=±0.a1a2…an×10m (3.6)
這里a1≠0,ai∈{0,1,2,…,9},i=1,2,…,n,m為整數,且
則稱近似值x*有p位有效數字。
【例3.1】 圓周率π=3.14159265…,如果取π*=3.1415和π*=3.14159,問分別有幾位有效數字?
【解】 ①取π*=3.1415=0.31415×101,有
則取π*=3.1415有4為有效數字,最后一位數字5是無效數字。
②取π*=3.14159=0.314159×101,有
則取π*=3.14159有6為有效數字。
定理3.1 設近似值x*具有式(3.6)的形式,如果x*有n位有效數字或x*是由其準確值四舍五入后得到的近似值,則x*的相對誤差限為:
證明:如果x*有n位有效數字,則其絕對誤差限為,相對誤差限為
如果x*是由其準確值四舍五入后得到的近似值,則此近似值必然有n位有效數字,從而結論也必然成立。
(4)近似計算中減少誤差的幾個策略
①避免兩個相近的數相減。我們知道一個近似值,其有效數字越多越為精確,如果兩個相近的數相減勢必減少其有效數字的個數,使得相對誤差變大。
【例3.2】 已知x=1.5846,y=1.5839,求x-y的值。
【解】 x-y=1.5846-1.5839=0.0007,x,y均有5位有效數字,而x-y僅有1位有效數字,使得其有效數字大大地減少。
【例3.3】 已知x=18.496,y=18.493,取4位有效數字,計算x-y的近似值,并估計其相對誤差。
【解】 按4位有效數字取近似值,x*=18.50,y*=18.49,計算近似值
x*-y*=18.50-18.49=0.01
按準確值計算的結果 x-y=18.496-18.493=0.003
相對誤差為:
在編程序時,可采取以下措施減少誤差。
a.盡量使用雙精度定義變量。
b.當兩個接近的量相減時,最好做等價變換避免損失有效數字,如當x的值較大時,令:
當x與y非常接近時,令:
②避免取絕對值太小的數作為分母。如|y*|?1時,計算會使絕對誤差變大,通常也做等價變換,如|x*|?1時:
③防止大數“吃掉”小數。
【例3.4】 計算定積分,其中N是一個非常大的正數。
【解】 根據牛頓-萊布尼茨公式得到
但是如果按此式進行計算,由于計算N+1時1可能被N吃掉,所以實際計算時可能會出現N+1=N的情況,因此計算結果會是,但是實際上
結果嚴重失真。正確的計算方法是:
另一方面,根據積分中值定理有
我們對于N=1010編程實算,計算結果如下:
因為,說明后兩個結果的精度優于第一個計算結果。
3.1.3 向量和矩陣的范數
如同誤差分析是計算方法的預備知識一樣,有關范數的概念也是學習計算方法所必須具備的基礎知識。通常用絕對值來度量實數的大小,用模來度量復數的大小,用范數來度量向量、矩陣的大小,范數是論述、證明某些數值方法的收斂性和穩定性所必需的工具,本節將簡單介紹范數的有關概念。
(1)向量的范數
定義3.4 如果定義在Rn上的一個實值函數‖?‖,對于任意的x,y∈Rn,α∈R都有
①非負性:‖x‖≥0且僅當x=0時等號成立。
②齊次性:‖αx‖=|α|‖x‖。
③三角不等式:‖x+y‖≤‖x‖+‖y‖。
則稱該實值函數‖?‖為Rn上的一個向量范數。
滿足定義3.4中三個條件的實值函數均是向量范數,但最常用的向量范數有:
(3.7)
(3.8)
(3.9)
這三種向量范數分別稱作1-范數、2-范數、∞-范數,其中2-范數也可表示成內積的形式
(3.10)
對于2-范數與內積的關系,有著名的Cauchy-Schwarz(柯西-許瓦爾茲)不等式:
xTy≤‖x‖2‖y‖2 (3.11)
以上三種向量范數可以統一于p-范數定義之下,p-范數定義如下:
(3.12)
當p=1、2時式(3.12)與式(3.7)和式(3.8)顯然是一致的,對于p=∞情況,考慮下列不等式
對此式取p→∞時的極限,則有。
【例3.5】 求向量x=(1,-2,3)T前述的三種向量范數。
【解】 ‖x‖1=1+2+3=6
‖x‖∞=max{1,2,3}=3
如前所述向量范數可以度量向量的“大小”,而范數又不是唯一的,雖然對應同一個向量不同的范數值是不一樣的,但是我們可以證明任意兩種向量范數是等價的,首先給出向量范數等價性的定義。
定義3.5 設有兩種范數‖?‖α,‖?‖β,如果存在常數C1,C2使
C1‖x‖α≤‖x‖β≤C2‖x‖α (3.13)
成立,則稱兩種范數‖?‖α,‖?‖β是等價的。
按此等價性的定義,常用的三種范數是等價的。事實上很容易證明以下三式成立
三種范數關系的綜合不等式為:
(2)矩陣的范數
定義3.6 如果定義在Rn×n上的一個實值函數‖?‖,對于任意的A,B∈Rn×n,α∈R都有如下特性。
①非負性:非負性:‖A‖≥0且僅當A=0時等號成立。
②齊次性:‖αA‖=|α|‖A‖。
③三角不等式:‖A+B‖≤‖A‖+‖B‖。
④相容性:‖AB‖≤‖A‖·‖B‖。
則稱該實值函數‖?‖為Rn×n上的一個矩陣范數。
一個最常用而且便于計算的矩陣范數為弗羅貝紐斯(Frobenius)范數,定義如下:
(3.14)
該矩陣范數也簡稱為矩陣的F-范數,如果把矩陣按相鄰行的首尾連接構成向量,則F-范數正是此向量的2-范數。
定義3.7 對于給定的Rn上的向量范數‖x‖和Rn×n上的矩陣范數‖A‖,如果有
‖Ax‖≤‖A‖·‖x‖,?x∈Rn,?A∈Rn×n
則稱矩陣范數‖A‖與向量范數‖x‖是相容的。
也可以按相容性條件定義從屬于向量范數的矩陣范數,即對于指定的向量范數‖?‖來定義矩陣的范數:
(3.15)
如此定義的矩陣范數‖A‖稱為向量范數的從屬范數,可以證明此從屬范數滿足矩陣范數定義的4個條件。
從屬于向量范數的矩陣1-范數、2-范數、∞-范數的表達式:
(3.16)
(3.17)
式中,λmax(ATA)是矩陣ATA的最大特征值。
對式(3.16)給出證明:將矩陣A按列分塊記為A=(A1,A2,…,An),假設第k列向量為范數最大的,即
從可推得
特別取,則
,從而式(3.16)成立。
再證明式(3.17),注意到矩陣ATA是半正定對稱矩陣,因此必有n個非負的特征值及n個互相正交的特征向量(不妨設是標準正交向量),對其按特征值從大到小排序,記為:
任取x∈Rn,可表示為,再假設‖x‖2=1,則有:
取x=u1,則有,從而有式(3.17)成立。
【例3.6】 求矩陣的各種矩陣范數。
【解】 先計算。
其特征值為:
(3)有關范數的一些結論
向量與矩陣范數的概念在描述一些數值方法的穩定性,證明算法的收斂性方面起到至關重要的作用,本書并不試圖在理論方面對范數展開討論,但是為了支撐之后各章有關定理的理論基礎,以下不加證明地給出一些范數的有關定義和定理。
定理3.2 (范數等價定理)設‖?‖α與‖?‖β是兩種不同的向量范數和從屬的矩陣范數,則存在常數c1,c2(c2≥c1>0),使得對任何x∈Rn,A∈Rn×n,有
c1‖x‖α≤‖x‖β≤c2‖x‖α (3.18)
(3.19)
由于任何兩種范數都是等價的,在本書其后的某些章節討論數值算法的收斂性、穩定性時我們可以以任一種范數對向量、矩陣的“大小”進行度量。
定義3.8 設矩陣A∈Rn×n,其特征值為λ1,λ2,…,λn,則稱
(3.20)
為矩陣A的譜半徑。
矩陣2-范數與譜半徑的關系:
對于對稱矩陣:‖A‖2=ρ(A),對于正交矩陣Q,因為QTQ=I,所以有‖Q‖2=1。
定理3.3 設矩陣A∈Rn×n,則對矩陣的任何范數‖?‖均有:
ρ(A)≤‖A‖ (3.21)
本定理說明,譜半徑是所有范數的一個下界。
定理3.4 設A∈Rn×n,的充要條件是ρ(A)<1。
以下我們再看一個矩陣范數與矩陣奇異性關系的定理,以便在以后分析線性方程組算法的穩定性、收斂性時使用。
定理3.5 設矩陣B滿足‖B‖<1,則矩陣I±B非奇異且
(3.22)
定理3.6 設矩陣Q∈Rn×n是正交矩陣,則對于任意x∈Rn,有
‖Qx‖2=‖x‖2
即正交變換具有2-范數不變性。
【證明】 因為Q是正交矩陣,所以‖Q‖2=‖QT‖2=1,則
‖Qx‖2≤‖Q‖2‖x‖2=‖x‖2=‖QTQx‖2≤‖QT‖2‖Qx‖2=‖Qx‖2從而結論成立。
3.1.4 誤差的傳遞
設x1,x2,…,xn的近似值依次是,
,…,
,把近似值代入函數y=f(x1,x2,…,xn)運算得y*,顯然y*是y的近似值。y*的誤差、相對誤差如何估計?如果函數y=f(x1,x2,…,xn)在(
,
,…,
)附近有連續的二階偏導數,函數值y*的誤差可用多元函數在(x1,x2,…,xn)處的泰勒展開式得到。
令,Δy=y-y*于是y的誤差:
(3.23)
按相對誤差定義,y的相對誤差為:
(3.24)
【例3.7】 測得某桌面的長a的近似值a*=120cm,寬b的近似值b*=60cm,若已知|a-a*|≤0.2cm,|b-b*|≤0.1cm,試求近似面積s*=a*b*的絕對誤差限與相對誤差限。
【解】 因為s=ab,,
,
故s*的絕對誤差限為24cm2,相對誤差限為0.33%。