線性代數(shù)本質(zhì)系列(三)逆矩陣,列空間,秩與零空間,克萊姆法則
本系列文章將從下面不同角度解析線性代數(shù)的本質(zhì),本文是本系列第三篇
向量究竟是什么?
向量的線性組合,基與線性相關(guān)
矩陣與線性相關(guān)
矩陣乘法與線性變換復(fù)合
三維空間中的線性變換
行列式
逆矩陣,列空間,秩與零空間
克萊姆法則
非方陣
點積與對偶性
叉積
以線性變換眼光看叉積
基變換
特征向量與特征值
抽象向量空間
快速計算二階矩陣特征值
張量,協(xié)變與逆變和秩
目錄
逆矩陣,列空間,秩與零空間
克萊姆法則
逆矩陣,列空間,秩與零空間
前面我們已經(jīng)通過直觀的線性變換來理解矩陣與向量運算,也了解到了線性變換是如何描述對空間的操縱,這對計算機圖形學(xué)和機器人學(xué)有很大的幫助,但線性代數(shù)的作用不僅限于此,今天我們從另一個角度來看看線性代數(shù)是如何幫助我們求解特殊線性方程組的。

?
上面提到的特殊線性方程組,這個“特殊”是指未知量都是一次的,并不包含其他特殊函數(shù),例如指數(shù),對數(shù),n次方,三角函數(shù)等,且未知量都是通過乘上一個系數(shù)后進行相加操作,對于這樣的方程組我們稱為:多元一次線性方程組。
既然要用線性代數(shù)求解線性方程組,那就要將上面方程轉(zhuǎn)換為矩陣和向量相乘的形式,我們將系數(shù)提取成系數(shù)陣,未知量提取成向量形式,結(jié)果提取成向量形式,最終轉(zhuǎn)換為:

上面的矩陣乘法是不是很熟悉?這就是前面提到的矩陣與向量的乘法,它代表的幾何含義是:向量在矩陣A的作用下變換得到向量
,要想求解上面的方程組,也就是在空間中找到一個向量
在A的線性變換后與向量
重合。

上面的例子是三維空間中的變換,更直觀的,接下來讓我們看一個二維空間的例子:

那么如何判斷是否有解呢?也就是說是否存在一個向量
經(jīng)線性變換后能與向量
重合呢?這就用到了前面我們講過的行列式的知識了,在行列式章節(jié)中,我們說過,矩陣行列式代表變換前后空間的縮放比,根據(jù)行列式的不同,可以分為兩種情況:行列式不為零和行列式為零。
行列式不為零:
矩陣行列式不為零意味著線性變換后空間維度不變,也就是說基向量沒有被壓縮到在一條直線上,或者一個點上,那就肯定存在一個向量,也就是肯定能找到一個基向量縮放因子能與向量
重合;那如何求
呢?這時我們反向思考,剛才是找向量
在矩陣的作用下能與
重合,反過來就是:變換矩陣A的逆矩陣
作用在向量
上,變換后的向量就是我們要求的向量
這里我們再來直觀的看一下逆矩陣的含義,例如,一個逆時針旋轉(zhuǎn)90度的變換如下:

其對應(yīng)的逆變換就是順時針旋轉(zhuǎn)90度:

對任意向量先施加一個變換,再施加逆變換,向量將回到原始狀態(tài),也就是說兩個矩陣的乘積是一個恒等變換。

總結(jié)一下就是如果變換矩陣的行列式不為0,則線性方程組存在唯一解,這個在高維空間同樣適用。
行列式為零:
當(dāng)變換矩陣的行列式為零時,也就是說,基向量經(jīng)過變換后落在了同一個直線上,或者一個點上,如果這個直線與向量不共線,則找不到一個向量
,能使得x*i_transformed+y*j_transformed能與向量v重合,也就是說不存在逆變換能讓一條線解壓縮成一個面;但如果這個直線與向量
共線,即便不存在逆變換,但仍可能存在解,且解的個數(shù)為無數(shù)個。

如上圖,棕紅色和綠色為變換后的基向量,黃色是結(jié)果向量,這個同樣適用于三維空間。
注意了,這時候我們又提出一個新的名詞:秩,秩就代表變換后空間的維數(shù),前面的例子中,如果變換矩陣的行列式為0,說明空間被壓縮成了一條線,所以空間維度為1,也即是說秩為1;如果變換矩陣的行列式不為零,說明空間沒有被壓縮,原空間為2維,變換后的空間也是2維,秩就是2,原空間是三維,變換后的空間也是3維,秩就是3;秩就代表變換后空間的維數(shù),不管變換結(jié)果是一條直線,一個平面還是三維空間,所有可能變換結(jié)果的幾何叫做矩陣的列空間。

秩的名字是如何得來的呢?如上圖,矩陣的列代表基向量變換后的位置,換句話說,列空間就是矩陣的列張成的空間,秩就是列空間的維數(shù),當(dāng)秩達到最大值時,秩與列數(shù)相等,這種情況我們稱為滿秩。
如下圖,線性變換一定保持原點位置不變,原點也就是零向量,滿秩時,原點是唯一一個經(jīng)變換后還落在原點位置的向量,非滿秩時,由于空間被壓縮,所以會有一些列的向量被壓縮到原點上。

克萊姆法則
前面我們從線性代數(shù)的角度來理解線性方程組,但并沒有給出一個具體的求解方法,今天我們就來看一個計算法則以及其背后的幾何原理:克萊姆法則。
?????? 先聲明一下,克萊姆法則并不是求解線性方程組最高效的方法,相比而言,高斯消元法計算的更快,學(xué)習(xí)克萊姆法則是為了擴展知識面以及加深對線性方程組的理解。
?????? 下面我們就以一個簡單的例子出發(fā),注意,克萊姆法則可以擴展到任意個未知數(shù)。

通過前面章節(jié)的學(xué)習(xí),我們知道可以將上面方程組轉(zhuǎn)換成矩陣乘法的形式:

矩陣的前兩列代表基向量變換后的坐標(biāo):

現(xiàn)在的問題就是求解哪個向量在變換后會變成。

一種思路是,輸出矩陣是矩陣列向量的線性組合,現(xiàn)在要做的就是求出x,y的值。

前面章節(jié)我們說過,方程組是否有解,依賴于矩陣行列式的值,行列式為0,方程無解或者有無數(shù)解,行列式不為0,方程組有唯一解,本文只討論行列式不為0的情況。
在正式講克萊姆法則之前,先讓我們看一個錯誤的求解思路,我們知道向量可以分解為基向量的線性組合,如下圖,變換之前,先計算出未知向量在基向量上的分量。

并且假設(shè)變換后仍然滿足上面的向量分解法則:

理想很美滿,但現(xiàn)實很骨感,很可惜,上面的公式很可能是不成立的,因為變換后的基向量很可能是不垂直的,也可能被拉伸了,例如上圖紅色和綠色箭頭就是變換后的基向量。
?????? 那所有的變換都不滿足上面的公式嗎?有一種變換很特殊,經(jīng)過它的變換后,基向量仍然垂直,且長度不變,更一般地,變換前垂直的向量,變換后仍然垂直,這種變換就是正交變換,這在計算機圖形學(xué)中對應(yīng)的是剛體運動,也就是該變換既沒有拉伸,壓縮或者變形。
所以,如下圖所示,用正交矩陣來解決線性關(guān)系問題會非常方便:

變換前:

既然是正交變換,所以下面公式在變換后仍然成立,下面公式,第一個是目標(biāo)向量,第二個是基向量變換后的位置,且都是已知的。

最終的結(jié)果:

雖然正交變換是一種特例,但給我們提供了一種思路,接下來就要進入今天的正題了,如下圖,未知向量和i形成的面積就就等于坐標(biāo)y。

同理,未知向量和j形成的面積就就等于坐標(biāo)x。

同樣,三維坐標(biāo)系下可以將立方體的體積與x,y,z坐標(biāo)關(guān)聯(lián)起來。
那為什么我們要將平行四邊形的面積,立方體的體積與坐標(biāo)關(guān)聯(lián)起來呢?根據(jù)前面章節(jié)學(xué)習(xí)的知識,當(dāng)對未知向量施加一個線性變換后,面積和體積的比例會發(fā)生變化。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
根據(jù)前面章節(jié)學(xué)到的知識,當(dāng)提到面體,體積的變換比例時,我們是不是立馬想起行列式了!面積伸縮的比例就等于變換矩陣的行列式。
變換前,平行四邊形的面積等于y值,變換后,四邊形的面積按照變換矩陣行列式進行縮放,其面積等于。

?????? ?????? ?????? ?????? ?????? ?????? ?? ? ? ? ??

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
那么我們就可以變換后的面積和行列式的值求出y:

那如何求變換后的面積呢?我們已經(jīng)知道變換后的結(jié)果向量的坐標(biāo),則其與i組成的四邊形的面積就可以用矩陣
的行列式表達,該矩陣就代表
的變換矩陣,其行列式值代表變換前后的面積變化比例。

以同樣的方式我們就可以求出另一個變量x的值:

對于三維而言也是同樣的道理:

以上就是克萊姆法則。