本文的閱讀等級:初級
考慮線性方程 ,其中
為一
階矩陣。如果係數矩陣
存在一個
階左逆矩陣
使得
,我們可以解出線性系統,如下:
不過,當你試圖反向推導時,卻遇到了麻煩:
我們並不能斷言 也是
的右逆矩陣,即
。問題出在那裡呢?
假設 階矩陣
存在一左逆
使得
,則
。
因此,,也就是說
有線性獨立的行向量 (column vector)。令
表示
的行空間 (即值域)。若
,則
有唯一解。若
,則
不存在解。
線性方程 左乘
階矩陣
,可得
。這個步驟看似順理成章,其實是整個推論出錯的源頭。為了使
的解維持不變,我們只能左乘一個
階可逆矩陣
,如此方可保證
同義於
。高斯消去法的每一個運算都遵守這條法則,因為對增廣矩陣
執行基本列運算 (elementary row operation) 等同於左乘可逆基本矩陣 (見“特殊矩陣 (10):基本矩陣”)。見下例,
。
利用基本列運算化簡,可得
最底列顯示 不屬於
,故
不存在解。在這個例子,
的左逆有無窮多個,我們最常選擇
,稱為偽逆 (pseudoinverse) 或廣義逆矩陣 (generalized inverse)。代入數值計算出
,按照上述錯誤的推論方式,可得
。這裡我們得到的
並不是
的真解而是最小平方近似解,記為
,此解使得
有極小值 (見“從線性變換解釋最小平方近似”)。
另一方面,若 ,則
是一致的 (即存在解)。這時候,左乘
得到的
確實是唯一的真解。上式左乘
,即有
。因為
是
至子空間
的正交投影矩陣,且
,故
。換句話說,雖然
未必等於
,但
一定成立。請讀者自行驗證:在
屬於
的前提下,縱使將
替換為其他左逆矩陣,上述不周延的推導方式所得到的結果仍然正確的。這個案例提醒我們:除了輕率粗心,人們之所以難察推理過程暗藏的陷阱正是因為它具備完好的隱蔽性。
rank(A)可能小於m,因為相乘矩陣的rank<=個別的所以AA'的rank<m。
相當於AA'!=I,因為下面有0。
所以呢?
還是
?
不相等,因為AA’不是I
可是,這樣就與原命題相矛盾了。
A的秩不夠,x不是唯一的。
A的秩是n,因為n=rank(AA’)≤rank(A)≤n。
而b的rank有可能是m,所以這個x未必存在。
不存在這樣推導就有問題。
抓漏水往往比蓋房子來得困難。這個問題可以用來檢驗我們的基本觀念是否正確穩固。
真的,本來以為自己挺懂得,現在卻發現還是不夠。
阿,上面那個是A’A才是。
相似的事,好像也不少!
程式碼的debug,有時耗費大量時間。
假如程式不大,重新寫一個程式,有可能較快,使問題解決。
大型程式,需要良好的debug工具,耐心用時間去除錯。