若 A 和 B 是維度相同的兩個方陣,而且 B 是可逆方陣,則 B-1 是另一個同維度的方陣。但是因為矩陣乘法並沒有交換律,所以
B-1 A 和 A B-1一般而言並不相等,所以 Matlab 提供兩種除法符號。 如果在 A 的左邊乘 B-1,亦即 B-1A,稱為 B 除 A, 運算符號是
B \ A如果在 A 的右邊乘 B-1,亦即 A B-1,稱為 A 除以 B, 運算符號是
A / B
凡是按規則可以和 B-1 相乘的矩陣, 都可以根據左乘或右乘而做「除」或「除以」的計算。 例如線性聯立方程式可以寫成 Ax=b 的形式,其中 A 是一個 n 維可逆方陣, b 是一個 n 維向量,則
x = A\b就是前述聯立方程式的一組解。例如以下線性聯立方程式
可以如此求解:令
A = [4 6 -1; 5 -8 3; 1 4 1]得到一組數值解
b = [1 0 0]'
x = A\b
0.1667 0.0167 -0.2333
得到一組數值解之後,讀者可以驗算試試看,例如計算
r = A*x - b會得到數值很小的向量,這個向量稱為『殘量』(residue)。 理論上殘量應該是零向量,但是因為數值計算無可避免的誤差, 它未必真的是零。
延續前面的例子,殘量就是
1.0e-15 * -0.1110 0 0.0278這組數字的意思是
r(1) = -0.1110 * 10-15雖然它們都很小,但是 r(1) 和 r(3) 並不是零, 這就是『數值計算無可避免的誤差』所致。 我們經常會計算殘量的向量長度 (norm),例如
r(2) = 0
r(3) = 0.0278 * 10-15
norm(r)得到
1.1444 * 10-16通常只要殘量的向量長度在 10-14 以下, 我們就認為數值解還蠻接近真解的。
雖然 Matlab 可以計算 B-1, 但是這個指令有嚴重的缺點,如果讀者養成了使用它的習慣, 那就非常不好,所以我們故意不去強調那個指令。 詳細的原因,請讀者在『數值分析』或『矩陣計算』那一類課程中學習。 反正,簡單地說,請用上述方法求解線性聯立方程式,不要用逆矩陣。
讀者如果胡亂做實驗,就會發現,即使 A 不是可逆方陣, 甚至 A 不是方陣,以下指令
x = A\b也會得到答案。至於這個答案是什麼意思? 也是要請讀者到其他課程去學習,例如線性代數、數值分析、矩陣計算、數學規劃, 甚至統計課程也可能談到。 稍後,在 關於矩陣的基本函式 那一節也會看到一個例子。
習題
xA = b之解
xA = b之解