1. 程式人生 > >【線性代數】矩陣的零空間

【線性代數】矩陣的零空間

矩陣A的零空間就Ax=0的解的集合。 零空間的求法:對矩陣A進行消元求得主變數和自由變數;給自由變數賦值得到特解;對特解進行線性組合得到零空間。

假設矩陣如下:


對矩陣A進行高斯消元得到上三角矩陣U,繼續化簡得到最簡矩陣R:


由於方程Ax=0的右側是零向量,所以只對矩陣A進行消元不會影響解,因此不需要增廣矩陣,所以有:


從上面的高斯消元的結果可以看出,矩陣A的秩為2,其中第1,3列為主元列,2,4列為自由列,對應於方程主來說,形式轉變如下:


從上式可以看出,x2,x4是自由變數,我們可以隨意賦值,x2=0,x4=1;x2=1,x4=0可以分別得到兩個特解(幾個自由變數就有幾個特解):


然後我們將兩組特解進行線性組合就得到了矩陣A的零空間:



上面我們從數值解的角度描述了矩陣零空間的求法,下面從公式角度分析: 上面我們經過消元(行變換,不改變行空間和零空間,只改變列空間)得到了最簡形式R。我們將R經過列變換得到如下矩陣:

我們可以對方程式作如下變形:



我們之所以進行上述變換,是為了有更好的表示形式(不進行列變換也行,但是要記住哪一列是單位矩陣I中的,哪一列是自由變數矩陣F中的):



這樣我們代入方程式可以得到零空間矩陣:


從上面的推導可以看出,得到的零空間矩陣的每一列就是我們前面的特解(注意要變換順序!交換第2,3行,結果便和前面相同)。因此,我們可以從通過消元法得到最簡式R,然後就可以直接得到零空間矩陣,則零空間就是零空間矩陣各列向量的線性組合
,而不需要像前面那樣先給x2,x4賦值,然後回代到方程中得到兩個特解,從而得到矩陣的零空間。 下面再舉一例:

由於R本來就具有很好的形式,就不用進行列變換了:


於是通過解方程得到零空間矩陣:


注:最簡矩陣R和零空間矩陣x在MATLAB中可以分別用命令rref(A),null(A,'r')得到

作者:nineheadedbird