本文的閱讀等級:高級
當一個線性系統受到極微小的擾動即可引發方程解劇烈變化時,我們將無從信任計算結果,便稱它是病態系統 (見“病態系統”)。條件數 (condition number) 是矩陣運算誤差分析的基本工具,它可以度量矩陣對於數值計算的敏感性與穩定性,也可以用來檢定病態系統。本文通過一個簡單的線性方程擾動問題介紹條件數的推導過程,推演工具是矩陣範數 的定義所含的兩個不等式 (見“矩陣範數”):
,
。
問題一:考慮線性方程 ,其中
為
階可逆矩陣。假設
受到微小擾動成為
,方程解隨之由
變為
,試計算相對誤差
的可能範圍。
考慮包含擾動及誤差的線性方程
。
上式與原方程式 相減可得
,方程解的誤差為
。利用不等式
和
,可得
。
另一方面,考慮不等式 和
,合併可得
。
上面兩式指出相對誤差 的上下界由矩陣範數乘積
所決定,根據這個結果我們定義方陣
的條件數為
,
也就是說, 引起的相對誤差大小由內部因素
與外部因素
共同決定:
。
接著討論條件數的計算方法。設 階矩陣
的奇異值分解為
,其中
,
,
和
為正交矩陣 (見“奇異值分解 (SVD)”)。若
是可逆的,
,可知
,
。因為正交矩陣
和
不改變向量長度,最大奇異值和最小奇異值分別滿足
,
。
以2-範數 (2-norm) 計算的條件數為
。
若 是對稱可逆矩陣,
。
因此 ,
,
是
的特徵值,條件數可表示為
。
又若 為正交矩陣,
,則
,故
,這說明正交矩陣具有最佳的數值穩定性。
下面我們進一步討論奇異值分解與條件數上下界的關係。奇異值分解的 矩陣其行向量
稱為左奇異向量,
矩陣的行向量
稱為右奇異向量,左右奇異向量的關係如下:
。
考慮 ,
,方程解和誤差可分別表示為
,
。
計算向量長度並相除,
,
得知 ,
滿足相對誤差的上界。同樣方式也可以證明
,
滿足相對誤差的下界,亦即
。
考慮下面兩個取自“病態系統”一文的例子:
。
計算奇異值後代入條件數公式:
此例中, 小 (指
的冪
),
是良置的,小擾動
不至於對方程解造成大誤差。但
很大,
是病態的,小擾動
可能引起大
,但大擾動
也可能產生微小的
。由於難以掌握
的變化方向,在面對病態系統時我們總是要預防最壞的情形發生。
問題二:如果線性方程 的係數矩陣
和常數向量
都受到雜音干擾,這對方程解
的誤差有何影響?
考慮 和
分別受到
和
干擾,則
滿足
。
為簡化問題,以下假設 ,
。令
,當
時,下面三個性質成立。
性質一: 為可逆矩陣。
已知 是可逆的,由假設條件可得
。
根據 Neumann 無窮級數性質可知 是可逆的,且
(見“Neumann 無窮級數”),故
亦為可逆矩陣。
性質二:
將 等號兩邊左乘
,
。
性質一指出 是可逆的,就有
。
利用性質一的不等式,推得
。
但 ,所以
。
性質三:
性質二的關係式可寫為 ,計算
長度:
。
利用已知條件與三角不等式,可得
。
將上式除以 並利用性質二,
。
方程解的相對誤差來自 和
的相對擾動量和
,條件數
再將此誤差放大。換句話說,執行數值計算時,因捨入誤差而造成的方程解誤差有兩個來源:一是線性系統自身的敏感性,以
表示,另一則是真實誤差
和
。當我們用 LU 分解計算時,受限於電腦的精準度,實際得到的是近似矩陣
和
,因此無可避免地使用了錯誤矩陣
。英國數學家威爾金森 (James H. Wilkinson) 證明部分軸元法 (partial pivoting,見“PA=LU 分解”) 確實能夠有效控制
,故捨入誤差的主要決定因素為係數矩陣的條件數。感謝威爾金森提供的定心丸,除非碰上病態系統,否則我們大可放心地使用高斯消去法。
本文參考:
Gene H. Golub, Charles F. Van Loan,Matrix Computations,2nd ed.,1989。
可以請老師提供partial pivoting的證明嗎??
需要這顆定心丸
我再找找看。