參考 Giorgio Grisetti 的投影片,對線性代數所做的筆記,主要包含:
向量(Vectors)、矩陣(Matrices)、線性系統(Linear Systems)、特徵向量(EigenVectors)、正交矩陣(Orthonormal Matrices)、仿射變換(Affine Transformations)、二次型(Quadratic Forms)。

另外補充:線性轉換(Linear Transformation)、齊次座標(homogeneous coordinates)。




向量(Vector)

由 n 個數字組成,代表一個點在 n 維空間的位置





向量加法

具有交換性,視覺上就像是把這些向量串起來





向量乘法,有三種不同的情況:

scalar-vector product
k.a
只改變向量的長度,不會改變向量的方向


scalar product, dot product, inner product (純量積、點積、內積)
向量的內積是一個純量,可以定義為:

其中 θ 為兩向量之間的夾角

如果 向量a 為單位向量(長度為 1),則 向量a 與 向量b 的內積為 向量b 投影在 向量a方向 的長度。
如果 向量a 與 向量b 的內積為 0,則 向量a 與 向量b 正交。(orthogonal)。


vector product, cross product, outer product (向量積、叉積、外積)
向量的外積是一個向量,可以定義為:

其中 θ 為兩向量之間的夾角, n^ 為與 向量a、b 平面垂直的單位向量,所以兩個向量的外積會與原來的兩個向量都垂直。




線性獨立、線性依賴(Linearly (In)dependent)

如果 向量b 可以從 {a1, a2, a3, ... an} 經由加法及純量乘法取得,則稱 向量b 對 {a1, a2, a3, ... an} 為線性依賴(Linear Dependent)。
{a1, a2, ..., an} if b = Σki.ai


反之,如果不存在 {ki},使得上式成立,則稱 b 對 {a1, a2, a3, ... an} 為線性獨立(Linear Independent)。




矩陣(Matrix)

一個 n × m 矩陣 是一個由 n 列 m 行元素排列成的矩形陣列

一個 d維向量 可以等於一個 dx1矩陣

矩陣可以視為行向量(Column Vector)的集合:

也可以視為列向量(Row Vector)的集合:





矩陣與純量的乘法

純量c 與 矩陣A 的純量乘法為 cA 的每個元素是 矩陣A 的相應元素 與 c 的乘積:
cA = (cA)i,j = c · Ai,j




矩陣與向量的乘法

可以視為矩陣的 第i列 與 向量b 的內積。

而向量 A.b 與 {a*i 為線性相依,其係數為 {bi}

如果 向量b 代表一個 參考系統(reference system),則 A.b 的計算為 向量b 根據 矩陣a 所作的 全域轉換(global transformation)。


每個 ai,j 可以被視為是 線性混合係數(linear mixing coefficient),對 (A.b)j 產生固定量的影響。
例如多維度函數的 Jacobian matrix:





矩陣與矩陣的乘法

可以定義為:
1、對 列向量 與 行向量 作內積
2、將矩陣A 乘上 矩陣B 的行向量係數 作結合


以第二個定義來考慮的話,可以說每個 矩陣C 的 行向量,是 每個 矩陣B 的 行向量 透過 矩陣A 的投影。

以上兩個解釋,都能合理解釋矩陣乘法。
C = A.B = (A.b*1 A.b*2 ... A.b*m)
C*i = A.b*i




線性轉換(Linear Transformation)

設 V 和 W 是在相同域 K 上的向量空間。
法則f : V → W 被稱為是線性映射,如果對於 V 中任何兩個向量 x 和 y 與 K 中任何純量 a,滿足下列兩個條件:
可加性: f(x+y) = f(x) + f(y)
齊次性: f(ax) = af(x)

如要判斷該轉換是否為線性轉換,可以作以下測試:
  1. f(零向量) = 零向量
  2. f(-x) = -f(x)
  3. f(x-y) = f(x) - L(y)




線性系統(Linear System)

A x = b
在經過 A 的作用後,其結果為 b,求出 x 的最佳值

許多的有效解法:
Conjugate gradients (共軛梯度法)
Sparse Cholesky Decomposition (if SPD)


利用去除線性相依的列可以將此系統的矩陣(A b)作簡化,得到 (A' b')

所以經簡化過的系統為:
A'x = b'
其中 A'為 m' x n 又 b 為 m' x 1,而 rank A' = min(m', n)

如果 (m' > n),則為 over-constrained system(過約束系統)。
如果 (m' < n),則為 under-constrained system(欠約束系統)。

如果是 over-constrained system 不會有正確的值,然而,如果 rank A' = cols(A),則可以利用 closed form pseudo inversion(封閉式偽反轉),得到極小範數解(minimum norm solution)。


如果是 under-constrained system,則可能會有無限多組解,它的 degree of infinity 為 cols(A') - rows(A')。




反矩陣(Inverse Matrix)

A.B = I
假設 A 為方形矩陣,且為全秩(full rank),則必存在一個唯一 矩陣B = A-1,滿足上式。
矩陣A 的第 i 列 與 矩陣B 的第 j 行的關係為:
正交,內積為 0,如果 i != j
內積為 1,如果 i == j

可以利用以下方式,求出矩陣A-1 第 i 行 的值:
A.a-1*i = i*i




跡數(Trace)

為方形矩陣的主對角元之和
tr(A) = a11 + a22 + ... + ann
= Σaii
跡數是 n x n 矩陣的線性函數,滿足下列性質:
tr(A + B) = tr(A) + tr(B)
tr(c.A) = c.tr(A)
tr(AB) = tr(BA), tr(ABC) != tr(ACB)

滿足相似變換不改變一個矩陣的跡數:
tr(P-1AP) = tr((AP-1)P) = tr(A)

tr(A) = tr(AT)

給定 a, b 兩矩陣,則:
tr(aTb) = tr(abT)




秩(Rank)

矩陣中,最大數目的線性獨立的列(行)
在 f(x) = Ax 的線性轉換中,可以視為像(image)的維度。

假設 A 是一個 m x n 矩陣,則:
  1. rank(A) >= 0,iff A != null matrix
  2. rank(A) <= min(m, n)
  3. f(x) 稱為 一對一(one-to-one) 或 單射(injective),iff rank(A) = n
  4. f(x) 稱為 滿射(surjective or onto),iff rank(A) = m
  5. 如果 m == n,則 f(x) 為 對射(bijective) 且可逆,iff rank(A) = n


計算矩陣的秩:
1、利用高斯消去法(Gaussian elimination)
2、計算非全 0 的列的數目,即為該矩陣的秩




行列式(Determinant)

只存在於方陣
A . A-1 = I,iff det(A) != 0
以 2x2 矩陣來看,其行列式為:


以 3x3 矩陣來看,其行列式為:(Sarrus rule)


以 n x n 矩陣來看,該如何計算其行列式?

將 Ai,j 定義為從 矩陣A 減去第i列,減去第j行,而得的 子矩陣:


重新定義 3x3 矩陣的算法為:
det(A3x3) = a11a22a33 + a12a23a31 + a13a21a32 - a11a23a32 - a12a21a33 - a13a22a11
= a11.det(A11) - a12.det(A12) + a13.det(A13)

所以 n x n 矩陣,其行列式為:
det(A) = a11det(A11) - a12det(A12) + ... + (-1)1+na1ndet(A1n)
= Σ(-1)1+ja1jdet(A1j)

令 Cij = (-1)i+jdet(Aij),則行列式可以表示為:
det(A) = a11C11 + a12C12 + ... + a1nC1n
= Σa1jC1j
這也就是對第一列所做的餘因子展開(cofactor expansion)

但,餘因子展開存在個問題,它需要 n! 個乘法,以 25x25 的矩陣為例,它會需要作 1.5 x 1025 次的乘法,運算時間會超乎想像。

有一個比較快的計算方式,先利用高斯消去法(Gauss elimination),將矩陣轉變成三角形的形式(triangular from):

因為在三角矩陣的行列式,會等於其所有對角元相乘的乘積。

行列式的特性:(A, B 同為 n x n 矩陣)
  • 如果 B 是由 A 的任意兩列交換而成,則 det(B) = -det(A)
  • 如果 B 是由 A 任意一列乘上 常數 c 而成,則 det(B) = c.det(A)
  • 如果 B 是由 A 任意一列加上任意一列而成,則 det(B) = det(A)

  • det(AT) = det(A)

  • det(A.B) = det(A).det(B)
    注意:加法不會成立,只適用於乘法


行列式的應用:
  • 在克拉瑪公式 (Cramer’s rule)中,可以用來計算反矩陣,A-1 = adj(A) / det(A),其中 adj(A) 為 A 的伴隨矩陣(adjugate matrix)
  • 計算特徵值(Eigenvalue),用來計算其特徵多項式: det(A - λ.I) = 0
  • 計算面積、體積 = |det(A)|:





正交矩陣(Orthonormal Matrix)

若矩陣Q 為正交矩陣,則 iff 它的行(列)向量為正交基底(orthonormal basis):


在線性變換中,如果滿足下列關係:
|| Ax - Ay|| = ||x - y||
則此線性變換稱為 等距同構(isometry)、正交變換(orthogonal transformation) 或 保距映射(distance preserving)。
若 A 為實矩陣,則:
AT = A-1
A 稱為正交矩陣。

正交矩陣的特性:
其 轉置矩陣(Transpose Matrix) 就是它的 反矩陣(Inverse Matrix)
QQT = QTQ = I
其行列式特性為:
1 = det(I) = det(QTQ) = det(Q) det(QT) = det(Q)2




旋轉矩陣(Rotation Matrix)

旋轉矩陣是一個正交矩陣,其行列式為 +1
二維旋轉矩陣:


對 X, Y 軸旋轉的三維旋轉矩陣:


旋轉旋陣不具有交換性:





齊次座標(homogeneous coordinates)

所謂齊次坐標就是將一個原本是n維的向量用一個n+1維向量來表示。
例如,二維點(x,y)的齊次坐標表示為(hx,hy,h)

齊次坐標的優點:
1、許多圖形應用涉及到幾何變換,以矩陣表達式來計算這些變換時,平移是矩陣相加,而旋轉和縮放則矩陣相乘,綜合起來可以表示為p' = m1*p + m2,引入齊次坐標的目的主要是合併矩陣運算中的乘法和加法,表示為 p' = M*p 的形式。
2、它可以表示無窮遠的點。n+1維的齊次坐標中如果 h=0,實際上就表示了n維空間的一個無窮遠點。




以矩陣表示仿射轉換(Affine Transformation)

利用矩陣來表示三維轉換(旋轉+位移):


在 二維平面 和 三維空間 的轉換行為是相同的。

仿射變換有兩個相當特殊的性質:
共線 (collinearity) 不變性和比例不變性,意思是 Rn 的任一直線經仿射變換後,仍是一直線,而且直線上各點之間的距離比例維持不變。




結合轉換

假設這一連串的轉換都是以齊次矩陣表示:
矩陣A 表示 機器人 以 世界座標為原點 的 轉換矩陣
矩陣B 表示 感應器 以 機器人座標為原點 的 轉換矩陣
而感應器偵測到一個物體的位置為 p
則求 p 在 世界 的座標為何?





對稱矩陣(Symmetric Matrix)、斜對稱矩陣(Skew_Symmetric Matrix)

如果 矩陣A 為對稱矩陣,為 A = AT,例如:
(1 4 -2)
(4 -1 3)
(-2 3 5)


如果 矩陣A 為斜對稱矩陣,為 A = -AT,例如:
(0 4 -2)
(-4 0 3)
(2 -3 0)


每個對稱矩陣都是可對角化矩陣(diagonalizable matrix):
D = Q A QT
其中 D 是為由 A 的 特徵值(eigenvalues) 所構成的對角矩陣(diagonal matrix);而 Q 是正交矩陣,其 行向量 由 A 的 特徵向量(eigenvectors) 所構成。

每個對稱矩陣的 二次型(Quadratic Forms) 定義為:





正定矩陣(Positive Definite Matrix)

對角元都是正的
正定矩陣的定義為:
如果 M 為正定矩陣,iff 所有的非零實係數向量z,都滿足 zT M z > 0

例如:


正定矩陣的特性為:
每個正定陣都是可逆的,它的逆矩陣也是正定陣。
所有的特徵值都大於 0
跡數大於 0

若 A 為正定矩陣,則跟據 Cholesky Decomposition,A 可以分解為:
A == LLT
L 為下三角矩陣,且其主對角元皆為正數

具有偏序關係(Partial Ordering):(M, N 為兩正定矩陣)
M > N iff M - N > 0
若 M > N > 0,則 N-1 > M-1 > 0
若 M > 0 且 N > 0,則 M + N > 0




雅可比矩陣(Jacobian Matrix) (尚不理解)

一般來說為 n x m 的非方形矩陣,假設給定一向量值函數(Vector-valued Function):


則其 Jacobian Matrix 定義為:


當我們將非線性函數予以線性化時,Jacobian 矩陣就是描述該線性關係的矩陣。





二次型(Quadratic Forms)

很多重要的函數可以局部地近似於二次型:


通常二次型被用來找尋最小值(或最大值):


該如何利用 矩陣的特性 來快速計算最小值的問題?


在求最小值中,可以認定:


利用矩陣乘法的特性,可以計算 f'
f(x) = xT A x + b x + c
f'(x) = ATx + Ax + b

f(x) = xT A x + b x + c 的最小值就為它的導數值為 0 的情況,也就是:
0 = ATx + Ax + b
因此可以利用:
(AT + A)T x = -b
來作計算 x 值

若 A 為對稱矩陣,則問題可以簡化為:
2Ax = -b
來計算 x 值




Reference

A Reminder of Linear Algebra

線代啟示錄

文字內容 或 影像內容 部份參考、引用自網路,如有侵權,請告知,謝謝。
創作者介紹

拾人牙慧點滴

silverwind1982 發表在 痞客邦 PIXNET 留言(0) 人氣()