主要是想把當下有多記錄的技巧用比較好懂的方式寫出來
所以可能沒有很嚴謹也沒有很完整 QuQ
然後 Rust 系列斷有點久,我盡量不耍廢 QuQ
矩陣可逆性 (Matrix Inversion)
定義:對於 nxn 的矩陣 A 若存在一個 nxn 的矩陣 B,使得 AB=BA=I
則稱 A 為可逆矩陣 (invertible)、也為非奇異矩陣 (nonsingular)
其中 I 為單位矩陣 (identity matrix)、B 稱作 A 的逆矩陣 (inverse of A) 記作 A−1
定理:若 A 可逆,則 A−1 唯一
證明:假設 A 有兩個相異的逆矩陣 B、C
則 AB=I、AC=I
使得 B=BI=B(AC)=(BA)C=IC=C
與假設矛盾,故 A 僅有唯一一個逆矩陣
定理:若 A 可逆,則 Ax=b 的有唯一解 x=A−1b
證明:Ax=b⇔A−1Ax=A−1b⇔Ix=A−1b⇔x=A−1b
定理:若 Ax=0 有非零解 x 存在,則 A 不為可逆
證明:假設 A 可逆下 x 存在非零解
Ax=0⇒A−1Ax=A−10⇒x=0
因為 x 必為零解所以矛盾,故假設錯誤,即 A 不可逆
定理:若對角矩陣 (diagonal matrix) 可逆,則對角線上元素皆不為 0
證明:(107.08.28 更正)可以利用上一個定理證明
對角矩陣 A=[a110⋯00a22⋯0⋮⋮⋱⋮00⋯ann]
假設 a11=0,則可使得 Ax=0 的 x 存在非零解,如下 α 可不為 0
[00⋯00a22⋯0⋮⋮⋱⋮00⋯ann][α0⋮0]=[00⋮0]
由上個定理可知 Ax=0 存在非零解,則 A 不可逆,故矛盾,因此 a11 不可為 0
同理可知,aii≠0,∀1⩽i⩽n
Note:若對角矩陣 A 可逆
A=[a110⋯00a22⋯0⋮⋮⋱⋮00⋯ann] 則逆矩陣 A−1=[1a110⋯001a22⋯0⋮⋮⋱⋮00⋯1ann]
a11 ~ ann 皆不為 0
定理:若 A、B 為可逆矩陣,則 AB 亦為可逆,且 (AB)−1=B−1A−1
證明:(AB)(B−1A−1)=A(BB−1)A−1=AIA−1=AA−1=I
所以 B−1A−1 是 AB 的逆矩陣
延伸:
(A1A2⋯An)−1=A−1n⋯A−12A−11
使用 Gauss-Jordan Elimination 求逆矩陣
Gauss-Jordan Elimination 為求方程式解的列運算 (elementary row operations)Gauss Elimination 為使用 forward elimination 求出上三角矩陣 (strict
triangular form)
Gauss-Jordan Elimination 則包含 back substitution 將左方矩陣進一步化簡成單位矩陣
舉例:
A=[2−10−12−1022] 求 A−1
過程:
從定義知 AA−1=I,把 A−1 拆作三欄方便說明
A[x1x2x3]=[100010001]=[e1e2e3]
則可等價於下方三個方程式,且所求 A−1 為求出 (x1,x2,x3) 的向量解
{Ax1=e1⇒A−1Ax1=x1=A−1e1Ax2=e2Ax3=e3
求解可利用增廣矩陣 (augmented matrix) 與列運算把左邊化簡成單位矩陣來同時解三個方程式
[2−10100−12−10100−12001]⇒[2−10100023−112100−12001]⇒[2−10100023−11210004313231]⇒
[2−101000230343234004313231]⇒[200321120230343234004313231]⇒[10034121401012112001141234]
所求 A−1 即為 [34121412112141234]
詳細原理如下
[AI]G.J.E.⇒[A−1AA−1I]=[IA−1]
Q: 為何可以合併運算?
A: 因為左方矩陣化為單位矩陣的列運算相同,且列運算在向量間不會互相干擾
以 x1 向量 (a,b,c) 來看
[2−101−12−100−120]G.J.E.⇒[100340101200114]
可得 {1a=341b=121c=14⇒x1=(a,b,c)=[341214],x2、x3 同理
參考資料:
Linear Algebra (Chapter 1: Matrices and Systems of Equations) Chao-Chun Chen (NCKU)