程式扎記: [ RubyAlg ] MIT Linear Algebra, Spring 2005 - Lec10

標籤

2014年12月28日 星期日

[ RubyAlg ] MIT Linear Algebra, Spring 2005 - Lec10

Source From Here 
4 Fundamental Sub-Space: C(A), N(A), R(A)=C(A^T), N(A^T) 
這邊將介紹 4 個基礎的 Vector Sub-Space. 除了已經過的 Column Space 與 Null Space, 另外兩個如下: 
R(A) = C(A^T): Row sub-space 
N(A^T) = The left nullspace of A 

Let A be an mxn Matrix: 
 

For C(A)
dim(C(A)) = r (Rank)
basis = pivot column


For C(A^T)
dim(C(A^T)) = r (Rank) <-- and="" column="" dimension="" font="" has="" row="" same="" space="" the="">
basis =


For N(A)
basis = Special solution
dim(N(A)) = n - r


For N(A^T)
dim(N(A^T)) = m - r
basis =


 
首先來看 N(A^T), 也就是 Null Space of A^T
 

 
因為 EA=R, 接著來看一些運算: 
>> require "alg/math/LinearAlgebra"
>> LA = LinearAlgebra
>> A = LA.newMtx3(3,4,[1,2,3,1, 1,1,2,1, 1,2,3,1])
>> printf("A:\n%s\n", A) # 建立測試的 Matrix A
A:
1 2 3 1
1 1 2 1
1 2 3 1


>> E = A.E # EA=R
>> printf("E:\n%s\n", E)
E:
-1.0 2.0 0.0
1.0 -1.0 -0.0
-1.0 0.0 1.0


>> R = A.rref # Reduced Row Echelon Form 
>> printf("R:\n%s\n", R)
R:
1 0 1.0 1.0
0 1 1.0 -0.0
0 0 0.0 0.0

而 Matrix E 放在 Matrix A 的左邊說明對 row 進行操作, 舉 EA=R 的 row1 為例: 
 

由上面的結果可以知道 C(A^T) 的 rank=2 ( C(A) 的 rank 一樣). 接著考慮 EA=0 可知知道 [-1, 0, 1] 是 N(A^T) 的解 (A 的 -1*row0 加上 A 的 row2 得到 [0,0,0,0]

如果硬解的話, 可以參考下面運算過程: 
>> AT = A.t # 得到 A 的轉置矩陣
>> printf("A^T:\n%s\n", AT)
A^T:
1 1 1
2 1 2
3 2 3
1 1 1


>> RofAT = AT.rref
>> printf("A^T's rref:\n%s\n", RofAT)
A^T's rref:
1 0 1.0
0 1 -0.0
0 0 0.0
0 0 0.0

 

Connection between Row Space and Column Space 
Consider A as a matrix mxn
1. dim(C(A)) = dim(C(A^T)) = r 
2. dim(C(A)) = n - r
3. dim(C(A^T)) = m - r

沒有留言:

張貼留言

網誌存檔

關於我自己

我的相片
Where there is a will, there is a way!