數值線性代數:直接法
三角系統
三角系統是線性系統中最容易的一種——你可以一條一條讀方程式逐一解出,永遠不必繞回頭。之所以叫「三角」,是因為寫成矩陣時,所有非零數字都擠進一個三角形:要嘛對角線以下全為零(上三角),要嘛對角線以上全為零(下三角)。直接法所有繁重機器的目的,就是把一個困難、完全耦合的系統化成三角的。
三角為何這麼容易?在上三角系統中,最後一條方程式只含 x_n,可立即解出;倒數第二條只含 x_{n-1} 與 x_n,知道 x_n 後便得 x_{n-1};如此沿鏈往上——這就是回代。下三角系統則由上而下同樣求解,這是前代。無論哪種,每個未知數都是在減掉已知項後做一次除法求得,整個求解只約需 n^2 次浮點運算,而非一般系統的 n^3。三角矩陣的行列式也很簡單:就是對角元的乘積。
三角系統是 LU、喬列斯基、QR 等分解的終點:你花一次 O(n^3) 的功夫把 A 分解成三角(與正交)片段,之後每次求解都只是一對便宜的三角求解。所以「化成三角」是直接線性代數的核心技巧。一個注意點:三角矩陣正好在某個對角元為零時奇異,而對角元雖然技術上可逆但極小時,會讓求解在數值上變得脆弱。
列為 (2, 1, 1)、(0, 3, 2)、(0, 0, 4)、右端為 (9, 8, 8) 的系統由下而上求解:x_3 = 2,x_2 = (8 - 4)/3 = 4/3,x_1 = (9 - 4/3 - 2)/2。
上三角系統只需一次由下而上的掃描即可解開。
三角結構正是讓已分解矩陣便於求解的原因——但你起初拿到的矩陣很少是三角的;你付出立方的分解成本,正是為了製造出它。
又稱
另見