06.大雜燴 線性方程組 逆矩陣 列空間 零空間 非方陣

本文內容雜而多:線性方程組,逆矩陣,列空間,零空間,非方陣.

1.矩陣的用途之一,解線性方程組

解方程組對應線性變換:

(1)當A的行列式不為0

使用sympy解方程,和用numpy解線性代數結果相同,只是numpy求得的是小數而不是分數形式:

Numpy根據求解:

即:

 from sympy import * x,y,z = symbols("x,y,z") print (solve([2*x + 5*y + 3*z+3, 4*x + 0*y + 8*z,1*x + 3*y + 0*z-2],[x,y,z])) #{x: 38/7, y: -8/7, z: -19/7} #{x: 5.428571428571429, y: -1.1428571428571428, z: -2.7142857142857144} #練習時用sympy,實戰用numpy import numpy as np A = np.matrix([[2,5,3],[4,0,8],[1,3,0]]) V = np.array([[-3],[0],[2]]) np.dot(A.I,V) # matrix([[ 5.42857143],[-1.14285714],[-2.71428571]]) # (a) .T -- 返回自身的轉置 # (b) .H -- 返回自身的共軛轉置 # (c) .I -- 返回自身的逆矩陣 # (d) .A -- 返回自身數據的2維數組的一個視圖(沒有做任何的拷貝)

(2)當A的行列式為0

當矩陣A的行列式為0時,矩陣的逆 A^{-1} 無解,不可以通過 A^{-1}vec V 求解.

顯然,當處於這個面或線或點,才有解,可以通過簡單的解線性方程組求解.此時只能處於降一維的空間(如面->線甚至點,體->面甚至線甚至點),無法通過線性變換復原.

2.什麼是列空間

列空間是指的所有可能結果的集合,也是的一組基向量的張成空間,零向量一定在任意列空間中.

3.什麼是秩Rank

秩描述整個空間經過線性變換後的(列空間,即可能的集合的)維數.

Rank=1,表示變成直線.

Rank=2,表示變成平面.

Rank=3,表示變成立體. 

當秩最大時,稱為滿秩,秩和A的列數相同.

4.什麼是零空間(Null space, Kernel)

經過線性變換後變為零向量的向量集合.

對於滿秩的情況下,零空間為零向量.

對於非滿秩的情況,行列式為0,變換矩陣列線性相關

(1)例如立體到直線,那麼過原點某個平面上所有的向量構成零空間.

(2)例如立體到平面,那麼過原點的某一條直線上所有的向量構成零空間.

(3)例如平面到線,那麼過原點的某一條直線上所有的向量構成零空間.

零空間的意義,為如下方程 vec X 的解:

5.非方陣介紹

非方陣的線性變換可以跨維度進行.

例如下面是一個將2d向量轉換為3d向量的3*2(3行2列)矩陣:

儘管如此,轉換後的列空間依然只是一個固定的平面,秩為2,與列數相等,滿秩.所以只是由2D的面,描述為3D的面而已.

本文參考3Blue1Brown視頻教程<線性代數的本質>而寫,配上python代碼,並進行一些修訂.

下一節的內容鏈接為:

袁傑雄:07.點積[python線性代數]?

zhuanlan.zhihu.com圖標
推薦閱讀:

Python實踐31-用virtualenv構建Python2和Python3的運行環境
Python為什麼代碼縮進不同,輸出結果不同?
第十六章 API例子:用Python驅動Firefox採集網頁數據
簡單的時間序列數據採樣和模擬股票折線圖
Python 做高頻交易系統適合哪個級別的延遲?

TAG:Python | 線性代數 | 可視化 |