線性代數學習之向量空間,維度,和四大子空間


空間:

在上一次https://www.cnblogs.com/webor2006/p/14306046.html學習了諸多在線性代數中非常核心的概念(線性組合、線性相關、線性無關、生成空間,空間的基...),這次則繼續學習重要的核心概念(空間、維度、四大子空間)。在之前的學習中用到了很多的“空間”這倆詞,比如二維空間、三維空間,n維空間,但是一直還木有嚴謹的對它進行定義,而數學又是一門非常講究嚴謹的學科,所以這次專門針對“空間”的概念進行一個學習。

什么是空間?

空間是一個集合,通常叫這些空間為歐幾里得空間,它是有序實數元組的集合,比如:

(6,666)屬於二維歐幾里得空間【對於上面的”有序“這個修飾詞也很好理解,因為(666,6)表示的是二維空間的另一個點】,其中用這個符合來表示:

(3.14,0,sqrt(2))屬於三維歐幾里得空間,其中用這個符合來表示:

如果是n維歐幾里得空間,則表示為:

其中對於歐幾里得空間概念中的"有序實數元組"有點繞,所以也可以簡單說歐幾里得空間是點集;而以向量的視角來理解又可以說歐幾里得空間是起點到原點的向量集合

什么是向量空間?

由於空間【為了敘述方便,通常將歐幾里得這四個字給省略掉】是一個集合,對於線性代數而言不關心雜亂無章的集合,而只關心具有某些特殊性質的空間---向量空間。向量空間就是指空間中的元素是"向量",關於向量咱們已經非常熟悉了,不過這里還是以嚴謹的態度對它再做出一個定義【當然是數學科學家們給出的】,對於向量而言:

我們必須定義兩種運算:加法和數量乘法,回憶一下之前所學向量基本運算:

另外只定義這倆運算還不夠,因為有可能胡亂定義的對吧,所以還必須滿足十條性質【不需要記,有個了解既可,因為本身我們在線性代數中所學的向量本身就具備有這十條性質了】:

1、如果u,v都屬於v,則u+v屬於v;

2、如果u屬於v,k是一個實數,則ku屬於v;

這兩條是向量的核心性質,通常在數學上又被稱為封閉(closure),對於這個封閉也很好理解,也就是對於上面兩個操作之后的向量還是在該空間中,不管怎么算都逃不過這個空間。舉一個簡單不滿足封閉性的空間例子,比如對於一個整數集合的加法是滿足封閉性的,因為整數+整數一定還是整數,但是對於除法是不滿足的封閉性,整數/整數可能會是小數。

在此基礎上,其它剩余的性質就比較好理解了:

3、加法交換律:u + v = v + u;

4、加法結合律:(u + v) + w = u + (v + w);

5、存在O【零向量】屬於向量空間,使得u + O = u;

6、對於每一個u存在-u,使得u + (-u) = O;

7、如果u屬於V,k是一個整數,則ku屬於V;

8、數量乘結合律:(kc)u = k (cu);

9、數量乘分配律:k(u + v) = ku + kv;

10、1 * u = u;

而對於我們所說的歐幾里得空間:

就是向量空間,因為它滿足向量空間的定義,因為本身對於向量的兩個基本運算【向量的加法和數量乘法】就已經滿足了,對於剩下的8條性質也可以由這倆基本運算推導出來,其實在之前向量的學習過程中已經推導過的,其中對於十條性質中有兩個稍特殊一點,第一個是在歐幾里得空間中一定是有一個零向量,如下:

有序實數元組中每一個元素都為0,另一條性質中的第6條【對於每一個u存在-u,使得u + (-u) = O】,它長這樣:

 

這里要注意:向量空間不僅僅只有歐幾里得空間,世界上有無數的向量空間,每一個不同的向量空間其中所對應的元素也是不一樣的,所以對於不同的向量空間的基本運算其實也是不一樣的,所以下面來對非歐幾里得空間進行一個了解。 

廣義向量空間【了解】:

先來回憶一下向量空間的定義:

向量空間是指一個集合,集合中的元素可以定義兩種運算:加法和數量乘法,使得滿足十條性質。

其中歐幾里得空間就是向量空間,我們通常說起向量,就是指歐幾里得空間中的元素。為了區別,通常把非歐幾里得空間的向量空間,稱為廣義向量空間。那這些廣義的向量空間長啥樣呢?下面舉個例子:

方陣:

對於所有的2*2方陣,其實就構成了一個向量空間,因為它的加法就是滿足矩陣加法,而數量乘法就是矩陣的數量乘法, 另外還遵行另外的8個向量空間的性質的,所以說這個向量空間中的元素不再是向量了,而是一個2*2的方陣了,同樣的可以上升到n階也是滿足的,也就是所有的n階方陣其實都可以構成一個向量空間,注意:這個向量空間中的n階的n必須是一樣的,如果像2*2和方陣和3*3的方陣構成的空間就不是向量空間了。

矩陣:

其實進一步的,像所有的2*3的矩陣,也可以構成一個向量空間。同樣的對於所有的n*m的矩陣也可以構成一個向量空間。

多項式:

所有的多項式,也可以構成一個向量空間,如:

其中加法就是多項式的加法;而乘法就是多項式乘以一個數。其中要注意這里對階數沒有要求,上面式子是一個p階的多項式,而它可以跟非p階的一起構成向量空間的。

函數:

所有的某類函數,也可以構成一個向量空間,這塊就不舉例子了,了解一下。

那有木有不能形成一個向量空間的例子呢?有!!!看下面:

 

很顯然這樣的矩陣【主對角線之外都是0】可以形成一個向量空間。但是!!

它形成不了向量空間的,因為如果這樣的矩陣相加第一個元素就變為2了,也就是不在是同一個空間上了,所以就不滿足向量空間的定義了。

子空間:

先來看一下子空間的定義:假設V是一個向量空間,如果S是V的子集,且S還是一個向量空間,則稱S是V的一個子空間。 比如:

所有的2階方陣都形成了一個向量空間,我們用V表示,而所有如下形式的方陣也可以形成一個向量空間,我們用S來表示:

很明顯S就是V的子空間。但是!!在上面也舉了一個這樣的方陣是構成不了向量空間的,將其記為S:

 

此時S就不是V的子空間了。所以對於子空間的定義可以是如下:

假設V是一個向量空間,如果S是V的子集,且S還是一個向量空間,則稱S是V的一個子空間;

但是標紅的S要判斷它是否是向量空間則需要看向量空間的十條性質啊,其實不用這么麻煩,可以簡化成下面這個定義:

假設V是一個向量空間,如果S是V的子集,且S對加法和數量乘法封閉【滿足這兩條就一定滿足向量空間的十大性質】,則稱S是V的子空間;

那為啥只要S對加法和數量乘法封閉滿足就能說明這個S就能滿足向量空間的十大性質呢?下面證明一下,目前對於十大性質已經滿足了這兩條:

 

其中根據2個基本運算其實是可以很自然的推出其它6個性質,因為本身V是一個向量空間就已經滿足各個加法和數量乘法的各個運算的性質了,而由於S是V的子集,所以對於S上的加法和數量乘法是沒有變化的,依然是滿足剩下的6個性質,所以最后只剩下對於5、6條進行證明就可以說S這個子集就滿足向量空間的十大特性了,不過要來證明最后的這倆特性得先繞一下小彎,先來看下面的東東。

向量空間的性質:

這里先回到向量空間的性質上來,若V是一個向量空間,則滿足:

  • 存在O零向量屬於向量空間,使得u + O = u;
  • 如果向量u屬於V,k是一個實數,則ku屬於V;
    那如果k=0,是不是0u = O(零向量)?如果O零向量用歐幾里得空間來理解就是向量里面的元素全為0,這個等式很容易推出來,但是!!!目前是站在更一般的空間角度來思考這個問題,所以下面來證明一下0u = O:
    若V是一個向量空間,則:0u = O:
    證明:
    1、0 = 0 + 0,這個沒啥可說的;
    2、此時等式兩邊同時乘以u,就有:0u = (0 + 0)u;
    3、而根據分配率【向量空間十大性質第9點】,右邊的又可以變為:0u = 0u + 0u;
    4、根據向量空間的第6條性質:向量空間V中的每一個向量u,都存在-u,使得u + (-u) = O,所以可以假設對於0u,存在-0u,使得0u + (-0u) = 0,所以等式兩邊都可以加上-0u,如下:0u + (-0u) = 0u + 0u + (-0u),之前的要這么繞,就是為了往0u = O這個待論證的等式上靠,所以此時就可以變為:

    5、而等於右邊的(0u + O)= 0u,所以等式就可以化為O = 0u,而左右交換一下,不就是0u = O了么?
    這樣求出來的這個等式有啥意義呢?就可以很輕松的求解出向量空間中的O零向量了,也就是用0乘以空間中的任何一個向量就可以得到O零向量了。

 下面再來看一個性質,對於V是一個向量空間,則滿足:

  • 對於每一個u存在-u,使得u + (-u) = O;
  • 如果向量u屬於V,k是一個實數,則ku屬於V;
    其中有一個新的性質,就是-u = -1u,下面來證明一下:

若V是一個向量空間,則:-u = -1u:
證明:
1、這里看u + (-1u)它的結果,根據向量空間的最后一條性質就可以變成:1u + (-1u)。
2、根據分配率又可以變為:(1 - 1)u。
3、此時就變為0u。

4、而根據上面所證明的0u=O,所以就可以得到u + (-1u) = O,而根據十大性質的第6條u + (-u) = O,是不是此時就可以證明-u = -1u了?
這樣求出來的這個等式有何意義呢?同樣的根據這個等式就可以很輕松的求解出向量空間中負向量是多少了,也就用-1*向量既可。

好,知道了上面標紅的兩條性質之后,接下來就可以回到子空間的概念待證明的地方了:

此時需要根據S對加法和數量乘法封閉來證明向量空間的最后兩個性質也能成立,下面來證明一下【這塊比較繞,一定要結合上面論證的兩個紅色的關於向量空間的新性質來進行理解】:

對於u屬於S,

5、存在O【零向量】屬於向量空間S,使得u + O = u;

由於u屬於S,很明顯0u也屬於S,而根據上面的新的性質0u=O,是不是說明O零向量屬於S。此性質就得證了。

6、對於每一個u存在-u屬於S,使得u + (-u) = O;

同樣的,由於u屬於S,那-1u也是屬於S,而根據上面的新的物質-1u=-u,那也說明-u也屬於S。此性質就得證了。

此時S已經就滿足向量空間的十大特性了,而由於S是V的子集,V本身也是一個向量空間,那么S就是V的子空間了。這里用了一些論證的過程,其實不用太過在意推論過程,這里記住如果S是V的子集,然后對於S不用一一來驗證它的向量空間的十大特性,只需要滿足對加法和數量乘法封閉這兩條特性,就可以很安全的說S是V的子空間【子空間的意思就是它也是一個向量空間】。另外還要知道這么個結論:

如果V是一個向量空間,那么V的任何子空間都一定包含O(零向量);對於V的子空間S,如果u屬於S,則-u也一定屬於S。

直觀理解歐幾里得空間的子空間:

上面咱們已經對於子空間有了一定的理論上的了解之后,下面回到二維坐標平面直觀的感受一下子空間,對於歐幾里得空間的零向量為x軸和y軸所交叉的位置:

而在這空間中任意拿到一個向量u:

就一定能找到和它反向的向量-u,如下:

接下來看一下什么是子空間:

 

過原點畫一條直線,所以落在這直線上的點所對應的向量都在這條直線所表示的子空間中,比如:

很顯然對於在這直線上的所有向量都是對加法和乘法封閉的,因為在這直線上任意取一個向量對其進行加法或者一個數量乘法肯定也還是在這條直線上,因此!!我們就可以說這條直線是整個二維歐幾里得空間的子空間。

問題一:那是不是二維平面上所有的直線都是歐幾里得空間的子空間呢?

答案是不是的,比較咱們讓這條直線稍稍挪動一下位置讓其不過原點了:

很顯然這根直線也是二維平面的一個子集【注意:此時還不知道它是不是它的子空間】,也就是這根直線上所有的向量也都在這個平面上,注意加粗的這句話,此時在歐幾里得空間中對於該直線上所有的向量是指從原點到這根直接上的點的有向的線段,比如以下兩個向量:

這樣一畫出來是不是就可以看出這兩個向量對於加法是不封閉的,因為這兩個向量加法之后的向量是長這樣:

所以很顯然這根直線確實是一個空間,並且這個空間上所有的元素確實是歐幾里得空間所對應的一個“子集”,但是!!!我們不能說這根直線是歐幾里得的一個子空間,因為這個空間根本不是一個向量空間,對於加法根本不封閉,同樣的對於向量的數量乘法也不封裝,比如咱們對其中一個向量乘以一個負數,得到的結果如下【如綠色的向量】:

 

既然對於加法和數量乘法都不封閉,很顯然足以說明該空間不是一個向量空間,就更別談子空間啦~~另外從上面推出的一個向量空間的性質:

從圖中可以看出,這根直線壓根不包含O(零向量),所以也能證明出該直線空間不是整個歐幾里得的子空間。
問題二:那是不是說只要包含O(零向量)的空間就一定是子空間呢?

答案也是不一定的,比如說這樣子的:

是從O為原點空間發射出去的一根射線,很顯然它是二維空間中的一個“子集【一定要注意措辭,子集非子空間】”,那它是不是一個子空間呢?那下面來看一下它是不是對於加法和數量乘法封閉,很顯然對於加法是封閉的,在這根射線上任取一個向量:

隨便取2個向量相加還是在這個射線上,但是!!!數量乘法就不滿足封閉性了,乘以負數就可以看出了【藍色向量】:

所以從這點就可以看出這根直線所代表的空間不是子空間,不過從上面所推出向量空間性質的這點也能看出來:

很顯然咱們的-u不屬於這根直線所代表的空間中,這樣就對咱們上面推出的向量空間的性質有了一個更加直觀的認識,另外對於過原點的子空間從維度角度也可以進一步直觀理解:

很顯然這根直線是一個一維平面的,而整個歐幾里得是一個二維平面,很顯然一維平面是二維平面的一個子平面,也能對於這個“子”有一個直觀的認識。

那對於三維空間呢?其實是過原點的一個平面就是三維空間中的一個子空間,對於平面上所有的向量一定是滿足加法和數量乘法的封閉性的【二維的平面】;同樣的對於過原點的一條直線也是三維空間的一個子空間,因為直線上的向量對於加法和數量乘法也是封閉的【一維的直線】;甚至對於原點本身也是三維空間的一個子空間,因為原點本身就是由(0,0,0)構成的,而它里面取出一個元素也還是(0,0,0),那很顯然對於加法和數量乘法也都是在這個(0,0,0)的集合本身中,所以原點也是三維空間的一個子空間【原點】;從這個闡述可以看到,對於三維空間來說,它的子空間可以是二維的平面 、一維的直線,原點,那么對於N維空間也可以推出:

過原點的一個m維空間(m < n),是n維空間的一個子空間。

對於子空間由於它也是一個向量空間, 這使得在向量空間中的所有性質都適用於子空間,而對於子空間最典型的應用就是機器學習的算法【關於機器學習未來有時間一定要學習學習,逼格好高的樣子】,因為在機器學習時有可能面對數據的維度太高了,通常需要做一步降維操作,而這個降維操作通常就是高維數據所代表的空間找到一個子空間,這些數據在子空間也能很好的找到它們的位置 ,同時信息也沒有丟失,這樣很多時候就只需要研究子空間就可以了,而不用管復雜的高維空間,因為子空間維度低相對而言也要簡單很多,計算速度也會更快性能也更好。

維度:

在之前線性代數的學習中通常都是以二空間,三空間或者是n空間視角來進行研究,但是到底啥是維度呢目前一直木有嚴謹數學上的定義,所以這里從線性代數更加廣義向量空間的角度來定義一下維度。

先給一個大前提說明:以后說到“空間”一詞記得就是指的“向量空間”,而向量空間最常用的一種就是我們一直在用的“歐幾里得空間”,所以以后線性代數的學習一說到“向量空間”如果沒特殊說明也是指的“歐幾里得空間”。

還記得之前https://www.cnblogs.com/webor2006/p/14306046.html學習時談到了空間的基的概念么?回憶一下:

也就是一組向量要能:

1、生成空間;

2、線性無關;

有了空間的基我們就可以用來描述整個空間了,而對於空間的基是有一組向量,而一個空間的基中,向量的個數,稱為維度。所以下面具體看一下:

1、二維歐幾里得空間的維度是2,而它的基中的向量其實就是標准正交基:

而對於維度可以用這樣的符號來表示:

 

其中dim是dimension的縮寫,表示維度的意思,R的平方表示二維歐幾里得空間。

2、三維歐幾里得空間的維度為3,而它的基中的向量也是三個標准正交基:

用符號表示就是:

3、n維的歐幾里得空間的維度為n,所以它用符號表示就為:

根據上面的幾種情況可以匯總一下:一個(歐幾里得)空間的任何一組基,其中的向量個數都是相同的,這個比較好理解,拿二維的基來看:
 

每個基的向量個數都是跟維度2個數是相同的對吧。所以對於上面關於維度的概念的描述:“一個空間的基中,向量的個數,稱為維度”也更加好理解了,也就是從空間中找到一組基,看這一組基的向量個數為多少,此數量就是空間的維度,注意,這個就是看向量里面的元數個數【如果在子空間這一點就有問題了】

子空間和維度:

對於看一個空間的維度其實就是看它的基中向量的元數的個數,但是!!如果涉及到子空間的情況此時就得要小心了,再這樣看待維度可能就是有問題的,

比如還是回到之前舉的二維空間的子空間的例子:

而這條直線為二維歐幾里得空間的子空間對吧,在這條直線上所有的向量其實都是包含有兩個數字的,比如這根直線是跟x,y軸成45度的直線,那么這根直線上的每一個點其實就是(1,1)、(2,2)、(3,3)...這樣子的點,向量的個數是2,而從空間的角度來看待這根直線,先來找這個子空間的基,其實任何一個這條直線上的非零向量,都可以生成這條直線(子空間)上的所有向量,所以這個非零向量就是這根直線子空間的一組基,而根據維度的定義,這根直線所代表的子空間的維度卻是為1的。

再拿三維空間的子空間來舉例,如之前關於子空間的說明:

對於三維空間來說,它的維度為:
 

而下面來看一下它的子空間的幾條說明:

1、過原點的一個平面,是三維空間的一個子空間,這個子空間用它來表示:

那么它的維度其實是為2的:
 

但是!!!它的基中的向量里面的元數個數是3。

2、過原點的一條直線,是三維空間的一個子空間,這個子空間用它來表示:

而它的基只能有一個,所以它的維度是1:

但是!!!它的基中的向量里面的元數個數是3。

3、原點本身,是三維空間的一個子空間,這種情況很特殊,對於原點本身來說它沒有無數組基,它只有唯一的O向量這組基,對於這種情況我們認為它是沒有任何自由度的,被壓縮到只有一個唯一的位置,所以它的維度為0,所以子空間用它來表示:

由於它的基雖說有一個O向量,但是維度為0,可以表示為:

但是!!!它的基中的向量里面的元數個數是3。

好,下面先來對歐幾里得空間的維度再來復習一下:

一個歐幾里得空間的任何一組基,其中的向量個數是相同的。

一個歐幾里得空間的維度是固定的。

 那么對於下面這句話看描述對么?

一個歐幾里得空間中的每一個有序實數元組包含n個元素,這個空間的維度就為n?

很明顯在子空間的情況下這句話就不對了,在上面的證明中也可以看到了,所以,在面對下面這個問題時回答就不是那么簡單了:

此時就得看被這三個向量所生成的空間的基中有多少個向量,這里先回憶一下之前https://www.cnblogs.com/webor2006/p/14306046.html對於生成空間的一個性質:

而其中還有這么一個性質:

 

回到咱們要解答的這個問題上,很顯然對於u和v這兩個向量是線性相關的【因為v*-2 = u;u * -1/2 = v,所以u可以表示v和w的一個線性組合,同理v也可以表示u和w的一個線性組合】,所以可以刪除u(或v),那咱們選擇把u給刪去,那看一下v和w之間的關系,顯示它們倆是線性無關的,所以這個生成空間的維度就為2,用三維空間來直觀看一下也能清晰的感受到是一個2維平面:

 

其中標灰的那個區域顯示就是個二維平面,也就是整個生成空間的維度為2。所以對於維度的計算不能以“一個歐幾里得空間中的每一個有序實數元組包含n個元素,這個空間的維度就為n”它做為標准進行計算,而應該是:

一組n維向量:

它們的生成空間,是n維空間的子空間。

拿咱們舉例的u,v,w這三個向量生成空間來理解,u,v,w是三維向量,其生成空間是三維空間的子空間,但是不能說這三個向量組成的空間的維度就是3,而實際它們生成的空間維度是2。

對於上面所說的結論都是針對歐幾里得空間而言的,實際上這們也可以擴展到更加廣義的向量空間,只是對於線性代數的學習一般是基於歐幾里得空間來進行探究的,具體如下:

一組向量:

屬於空間V,則它們的生成空間是V的子空間。

一組n維向量:

這們的生成空間,是n維空間的子空間,換言之如果這組向量生成空間的維度是m的話,那么m肯定是<= n的。

最后總的來說:“一個空間的基中,向量的個數,稱為維度”,千萬不要把向量中有多少個元素就認為是空間的維度了就成~~

行空間和矩陣的行秩:

行空間:

在上面我們對於這樣的問題進行了一個剖析:

顯然:u 和 v 是線性相關的,所以可以刪除u (或v);而又由於u 和 w 線性無關,所以這個生成空間的維度為2。

用上面的這種方式我們就可以擴展到n維向量:

給出一組n維向量:

其生成空間的維度是多少?其實就歸結為找到這組向量有多少和其他向量線性相關,然后將其給刪除掉,直到剩下的向量它們是線性無關。

那么問題來了,對於上面舉的三個向量你用肉眼一看不知道哪些向量是線性相關的,但是如果向量的數量更多一些,維度更大一些的話,這種肉眼判斷的方式肯定就很難了,那有木有一種系統性的方法能得到這個問題的答案呢?當然有,而且這方法是之前已經學過了的,之前https://www.cnblogs.com/webor2006/p/14306046.html在學習線性相關時就舉過例子:

而對於上面增廣矩陣消元的過程可以抽象為:

其中對於標紅的這個式子歸一處理之后,就可以發現:

其實它就等於原來矩陣行向量的一個線性組合,而由於咱們這個例子當上面高斯約旦消元之后最后一行是一個0行,所以此時就有如下等式:

這就意味着r1、r2、r3向量存在非0的系數,使得線性結果的組合為0,換言之就是這三個向量是線性相關的,因為線性相關的定義如下:

而對於r3這個向量很顯然就是由r1和r2的行向量進行加加減減的操作,所以就可以變換成這樣的一個式子:

也就是r3可以寫成是r1和r2的線性組合,那么此時就可以把r3這個向量給刪除掉了,好!!!基於這樣的一個結論,假如說對於一個有m行的增廣矩陣進行高斯約旦消元法后如果有x行都為0的話,那么這x行所對應的行向量可以表示成m-x行的線性組合,所以這x行的向量全都可以刪除掉,所以,對於咱們的問題就可以定結論了:

給出一組n維向量:

其生成空間的維度是多少?其實就歸結為找到這組向量有多少和其他向量線性相關,然后將其給刪除掉,直到剩下的向量它們是線性無關。

其方法是:

將這組向量按照行排列成一個矩陣,執行Gauss-Jordan消元法(化為RREF行最簡形式),非零行的個數既為其生成空間的維度。

下面以這樣的方式再對這個簡單的例子進行一個維度的求解:

將這三個向量一行行的羅列起來就形成這樣的一個矩陣:

將其執行Gauss-Jordan消元法,過程如下:

 

其中可以看到非0行為2,所以就可以根據這種方法很輕松地算出來向量生成空間的維度了。

那此時就可以回到主題上來,如小標題所示---行空間,其實很容易理解,對於一個矩陣我們知道:

其中行向量生成的空間,稱之為行空間(Row Space);

其中列向量生成的空間,稱之為列空間(Column Space);

對於這個定義不僅僅只對於咱們舉的這個方陣有效,對於一個長方陣一樣有效,比如有一個3行4列的矩陣:

其中行空間是一個4維空間的子集【因為向量是由4個元素組成,也就是4維向量】。而擴展到m行n列的矩陣,行空間則是n維空間的子集;

而列空間是一個3維空間的子集【因為向量是由3個元素組成,也就是3維向量】,而擴展到m行n列的矩陣,列空間則是m維空間的子集;

矩陣的行鐵:

其中對於求解空間的維度看的是矩陣化為行最簡形式的非零行的個數,由於對於行最簡形式的非零行是非常重要,所有一個高大上的名詞又出現了:

一個矩陣的行最簡形式的非零行數量稱為矩陣的行秩(Row Rank)

所以,我們就可以說:

行空間的維度,為矩陣的行秩。
注意:對於維度和行秩作用的對象是不一樣的,維度作用於空間,而行秩作用於矩陣,但是它們倆可以產生關聯。

另外再來探究一個話題:既然現在已經知道了行空間的維度是多少了,那能否進一步地找到行空間的一組基?畢竟只有找到了空間的一組基才能更好地理解這個空間,同時對於空間中的任何一個點就可以用這一組基表示它。其實結論很簡單,還是拿之前舉的三個簡單的三維向量為例,化為行最簡形式為:

其實最終行最簡形式的非零行就是行空間的一組基,下面來證明一下,為了證明方便,先來對於原矩陣和行最簡形式的矩陣用字母代替一下:

證明的關鍵就是A的行空間其實就是R的行空間,而怎么證明呢?其實有點像集合論中的證明方式,想一下如果想證明兩個集合A,B相等的話,只需要證明A是B的子集,B又是A的子集就行了,也就是證明A集合中的任一一個元素都屬於B,B集合中任一一個元素又都屬於A,同理,咱們只要分別證明以下結論就成,具體如下:

A的行空間的每一個向量,都在R的行空間中;

B的行空間的每一個向量,都在A的行空間中;

很顯然這條證明是成立的,因為A的行空間的每一個向量其實就是A的行向量的線性組合,而根據高斯消元法從A通過矩陣的基本行變換得到的R,而R中的每一行也是原來A中每一行的線性組合,所以就可以證明“A的行空間的每一個向量,都在R的行空間中”,反之也能推出A的每一行也是R中每一行的線性組合,所以也能證明“B的行空間的每一個向量,都在A的行空間中”,不管這證明是多么的抽象,最終結論是:“A的行空間就等於R的行空間”,所以也可以說:

R的行空間的基就是A的行空間的基,反之也成立,最后關於行空間的又一結論就出來了:“一個矩陣的行最簡形式的非零行向量,就是A的行空間的基【注意:此時不是拿原矩陣的非零行作為A的行空間的基,而是化為最簡形式矩陣的非零行向量,因為在之后的列空間的基學習中是有區別的,之后可以對比”,所以回到咱們的這個簡單例子,其中A的行空間的基就為R中的非零行的2個向量,用三維圖來看的話就是一個平面,之前也看過:

列空間:

上面已經對於矩陣的行空間進行了一個詳細學習,接下來則來看一下對應的列空間了, 還是回到這個話題:

這個問題的解答關鍵之處就是看這組向量是否線性無關對吧?而上面已經道出了怎么求解這組向量線性無關了,但是這里可以回到線性組合中來直觀的觀察出來,也就是:

 

看這個線性方程組只有唯一解?又回到了求解線性系統的問題了,很顯然要求的這個是一個齊次線性組,所以只需要看系統矩陣就好了:

將其化為行最簡形式,過程如下:

 

其中以列視角來看待的話,可以有主元列和自由列,回憶一下這塊的概念https://www.cnblogs.com/webor2006/p/14280299.html

 

而自由列上的元素意味着可以隨便取值,當然也可以取非零值!拿第一行來說:

它所對應的方程可以表示為:k1-0.5*k2 = 0,也就是k1 = 0.5*k2,是不是k2可以隨便取一個值都有一個對應的k1?而k1取非零值是是不是就意味着咱們的向量是線性相關的,所以對於自由列的個數,為可以表示為其他向量線性組合的向量個數,也就是可以刪掉的,回到咱們這個例子來看:

這個向量就可以刪掉了,而主元列的個數,為線性無關的向量個數,所以可以看出主元列的個數既為向量生成空間的維度!另外一個專列名詞又出現了:

主元列的個數,為列秩(Column Ranke),跟行秩對應的。

所以與行秩之對應的就有如下結論了:

m行n列,列空間是m維空間的子空間;

一個矩陣的行最簡形式的主元列數量稱為矩陣的列秩;

列空間的維度,為矩陣的列秩;

那既然能求出列空間的維度了,那能否求出列空間的一組基【注意這個是跟行空間有區別的地方】?其實就是將其系數矩陣化為行最簡形式:


由於自由列可以表示其它列的線性組合,所以可以很放心的將其刪除掉,剩下的主元列則全是線性無關的,所以:

主元列的對應原矩陣的列,是列空間的一組基。一定要注意:

這里一定要跟行空間求基的進行對比,回憶一下:
 

這是因為行最簡形式本身就是原矩陣的行進行行操作得來的,所以在上面也證明了行最簡形式的行空間跟原矩陣的行空間是一個空間,但是!!這個性質在列空間中是不存在的,由於列矩陣在化為行最簡形式時是對行進行變換,而非列,所以最終化為行最簡形式的列已經跟原來矩陣的列沒有關系了,這點一定要清楚。

所以總結列空間基的求法就是:行最簡形式主元列的對應原矩陣的列,是列空間的一組基。最后為了區別行空間和列空間下面對其對比總結一下【重要】:

對於一個m行n列的矩陣:
行空間:
1、行空間是n維空間的子空間;

2、行最簡形式的非零行個數為矩陣的行秩

3、行空間的維度,為矩陣的行秩;

4、行最簡形式的非零行,是行空間的一組基;

列空間:
1、列空間是m維空間的子空間;

2、行最簡形式的主元列數就是矩陣的列秩
3、列空間的維度,為矩陣的列秩;

4、主元列的對應原矩陣的列,是列空間的一組基;

矩陣的秩和矩陣的逆:

矩陣的秩:

先來回憶一下上面所講的矩陣的行秩和列秩:

矩陣的列秩是看化為行最簡形式的主元列的個數,為2;而對於它的行秩是看化為行最簡形式后的非零行的個數:

很顯然該矩陣的行秩也為2,也就是矩陣的行秩=矩陣的列秩,這是不是一個巧合呢?其實不是巧合,任何矩陣的行秩跟列秩都相等,下面咱們來證明一下為啥相等:

矩陣的行秩 = 矩陣的列秩
證明:對於任何一個矩陣:
 

經過高斯約旦消元法,其實最終會化成這樣的一個形式:

對於這個矩陣看起來有些暈,下面來解讀一下它,對於行最簡形式如果有0行一定是在行最簡形式的最下面對吧?所以可以在零行與非零行之間畫一條分隔線,像這樣:

另外對於非零行還可以繪制一條豎線,像這樣:

經過這么一個輔助線之后,有啥新發現么?其實是:

其中主元列是一個方陣,但好像咱們之前舉的矩陣化為行最簡形式之后貌似不是上面的這個樣子呀,回憶一下:

很顯然不是咱們預期要的那個形式,其實可以做一個變換讓其變成預期的行最簡形式,也就是讓第二列和第三列交換一下位置就行了:

其中左上角主元列的單位矩陣有r行r列:

通過這樣的視角通過將矩陣化為行最簡形式后它的非0行一定等於主元列數,這不就證明了矩陣的行秩=矩陣的列秩,而且都排在了這個單位矩陣中,抽象來表達上面的矩陣形式,其實也就是:

 

當然並不是所有的行最簡形式都可以化成上面這種形式,可能是沒有全0行,這點需要明白。

 既然矩陣的行秩=矩陣的列秩,那么可以統一把它們叫為“矩陣的秩(Rank)”,而秩又可以跟空間掛上勾,也就是矩陣的秩既是行空間的維度,又是列空間的維度,也能進一步推導出“一個矩陣的行空間和列空間維度相等!【注意:並沒有說行空間跟列空間相等,而是說維度相等】”,其中對於這個結論“矩陣的秩=矩陣的行秩=矩陣的列秩”有啥用呢?非常有意義,在很多時候就可以快速地做出一些基本判斷,比如看下面這個問題:

u = (1, 1, 2),v = (2, 2, 3),w = (3, 3, 4)的生成空間的維度?

很明顯肉眼直觀很難看出來,需要進行一番計算,但是!!!如果將這三個向量寫成矩陣的形式【用行的形式還是列的形式組成都無所謂】,這里以行的方式吧,如下:

以列視角一看,第一列和第二列很明顯是線性相關了,所以它的列秩肯定<=2,不可能為3,而由於行秩=列秩,所以它生成空間的維度一定是<=2,而你如果以行視角來看很難看出u,v是線性相關對不?所以如果你知道了列秩就很輕松地能知道行秩了,大大加快計算速度。

到目前為止,我們來梳理一下關於行空間與列空間的結論:

對於一個m行m列的矩陣:
行空間是n維空間的子空間;列空間是m維空間的子空間;

對於一個n階方陣(n行n列):

行空間是n維空間的子空間;列空間是n維空間的子空間;

其中關於標紅的n階方陣有個問題來了:“何時行空間和列空間都是n維空間?”,其實也就是說矩陣的行秩和矩陣的列秩都為n,那不就是矩陣的秩r = n,此時又有一個新概念來了,稱這樣的n階方陣為滿秩(Full Rank),也就是對於這個矩陣來說每一行都是非0行,每一列都是主元列,沒有自由列和0行,所以有如下結論:

對於一個n階方陣,矩陣的秩r = n是滿秩(Full Rank),而它的行最簡形式的非零行個數為n,行最簡形式的主元列個數也為n,此時可以推出:

也就是行最簡形式是單位矩陣,因為對於方陣的行最簡形式在之前的N多命題中已經明確給出結論了,回憶一下:

而經過矩陣的秩的學習,對於方陣的N多特性此時又可以進行相關的擴展了,如下:

實現矩陣的秩:

接下來則回到python中對於矩陣的秩的求角進行一下實現,對於求矩陣的秩可以用行秩也要以用列秩,這里采用行秩的方式來求,因為它相對而言較簡單,只需要化為行最簡形式之后數非0行的個數既可。

修改LinearSystem:

由於求矩陣的秩也是要對它進行線性系統的求解,所以還是在LinearSystem中定義一個方法:

而由於當時這個類在設計化為行最簡形式時是一定要指定b的,回憶一下:

而對於矩陣秩的求解是不需要傳這個b的,所以修改一下代碼,讓其可以為空,修改如下:

進行矩陣的高斯消元:

這塊就比較簡單了,由於高斯消元方法已經封裝好了,如下:

判斷行最簡形式的非0行的個數:

其實就是行最簡形式矩陣中的每一行是否是0向量,如果不是則+1既可,所以先生成一個零向量:

然后再來進行每行的判斷,如下:

重載Vector的不等號:

由於咱們在計算非0行時用到了向量的不等號運算符,如下:

 

而目前Vector類中並沒有重載此符號,所以重載一下:

判斷兩個向量是否相等其實也就是判斷向量中每個元素是否相等,那程序如何實現呢,如下:

接下來在元素相等的情況下則需要一個個元素進行比較,此時python的寫法就需要用到zip將兩個向量列表打包,具體寫法如下:

此時由於元素有可能是浮點,所以對於元素的相等得要用之前咱們封裝好的這個相等判斷:

所以修改一下:

而咱們需要所有的元素兩兩相等,此時就需要這樣辦了:

有了等於號的實現,對於不等號就可以很輕松的實現了,如下:

測試:

先來驗證一下向量的等於與不等於的邏輯:

接下來再測試一下不等:

接下來就可以測試矩陣秩的方法了:

再來看一個:

再來瞅一個:

零空間與看待零空間的三個視角:

零空間:

接下來則學習一下另外一個根據矩陣而得出的重要的子空間----零空間, 它相對於行空間和列空間要稍微抽象一點,這是因為對於行空間和列空間我們可以直接看到生成子空間中的所有向量就是這個矩陣的行向量或者是列向量,但是!!!生成一個零空間所對應的那些向量並不能通過一個矩陣獲得,那么什么是零空間呢?先來證明一個非常重要的結論:

一個齊次線性方程組的所有解,形成一個向量空間。
證明:
先來看一個例子:

其中矩陣有3列,對應的未知數就有3個(x1,x2,x3),上面待證明的結論的意思是所有滿足這個奇次線性方程組解的向量就形成了一個向量空間, 下面來看證明過程:

1、一個齊次線性方程組一定是有解的。

2、而有解就有可能是唯一零解,也就是空間中只有0這一個向量,很顯然這種情況這個線性方程的解就是一個向量空間,這個向量的維度為0;

3、而如果有無數解的情況,就稍復雜一些了,接下來就得證明無數解也能構成向量空間:如果系數矩陣為m*n的矩陣,解為n維向量,如果解形成向量空間,則該向量空間是n維歐幾里得空間的一個子空間,其中為啥n維空間就是歐幾里得空間呢?因為每一個解都是有序的實數元組,而回憶一下歐幾里得空間的定義:

而要想證明“解形成向量空間,則該向量空間是n維歐幾里得空間的一個子空間”,此時在前面已經花了很大的篇幅對於子空間的證明只需要滿足:

所以:我們只需要證明解所組成的空間對向量的加法和數量乘法封閉就好了,而證明就如下:

a、證明空間對向量的加法封閉:

假設系數矩陣為A,而向量u和v都是解,很明顯就有:

然后此時就可以將這兩式子加起來:

然后根據分配率就可以變為:

這個變化又說明啥呢?說明u+v也是解呀,此時就說明了該空間對向量加法是封閉的?所以此時a這個就得證了。

b、證明空間對向量的數量乘法封閉:

還是假設系數矩陣為A,假設u是解,就有:

然后此時可以乘以k,式子就變為:

然后它又可以變為:

 

此時就又可以說明問題了,很顯然k*向量u和向量u都是在同一空間中,那ku也是解,該空間也就對數量乘法封閉了。

 此時“一個齊次線性方程組的所有解,形成一個向量空間,稱這個空間就為零空間(Null Space)。”

也就是說A的零空間,就是Ax = 0中,所有x組成的空間

深入理解零空間:

說實話零空間還是有些難理解,下面則從另外幾個視角對其進行一個鞏固理解。

視角1:從代數角度

對於“A的零空間,就是Ax = 0中,所有x組成的空間”這句話是從代數角度來理解的,也就是求解這個方程組的解組成的空間既為零空間。

視角2: 把矩陣看作是向量的轉換函數

還是從回憶開始【可以看到,對於新的概念完全是來自於之前所學,所以對於數學的學習每個概率的理解都不能馬虎】:我們可以把矩陣看作是向量的函數(轉換函數),拿旋轉矩陣來說:

如果以這種視角來看待的話,其實可以把Ax=0中的系數矩陣A看成是一個轉換函數,此時零空間x它就是這么一個空間:零空間是一個集合,集合中的所有的向量,在A的變換下,都將映射到零點

視角3: 把矩陣看作是空間

對於矩陣還可以將其看作是一個空間,比如:

它對應的空間為:

此時看零空間x就可以為:零空間是一個集合,這個集合中的所有的向量,和A的行向量點乘結果為0! 其實也很好理解,根據矩陣和向量的乘法的定義:

套到咱們的式子中:

根據這個進一步又能推出:“這個集合中的所有的向量,和A的行空間【注意跟上面的區別,A的行空間指的是 A的行向量通過線性組合方式可以生成的那些向量,這個集合比A的行向量要大得多,一個mxn的矩陣,它的行向量只有m個,但是它的行空間的向量可以有無數個的,m個向量任意線性組合那個k值隨便取所得到的結果都在A的行空間中】中所有向量點乘結果為0。”,這是為什么呢?這是因為零空間的每一個向量和A的每一個行向量的點乘結果為0,而行空間的向量不過就是這些向量的線性組合,這些線性組合再點乘零空間的每一個向量,很顯然結果還是為0,因為就是多了些系數嘛,可以稍抽象,不能理解的記住結論就好。

既然有“零空間的所有向量和A的行空間中的所有向量點乘結果為0”,又根據之前所學能推出:

這個集合中的所有向量,和A的行空間中所有向量垂直(正交)。”,進而又能說明,“這個集合和A的行空間正交,換言之就是A的零空間和A的行空間正交【這個結論就能更加生動的理解零空間了】”,也就是說:“A的零空間中所有的向量,和A的行空間中所有向量垂直”,下面以圖來說明:

對於這兩個平面空間雖說是垂直,但是它不滿足咱們要說的零空間的性質,典型的看相交的那一個直線就不是相垂直的,那對應於咱們所述的零空間的空間形態又是怎么樣的呢?其實下面這個就滿足:

也就是一個二維平面【二維空間】和一根直線【一維空間】相垂直,把這倆空間當成子空間的話,那么在直線上的任何一個向量和在平面上的任何一個向量都是垂直的,也就說明這兩個空間的正交的,同理,對於由兩根直線組成的坐標軸也就滿足這個性質:

把直線看成是空間的話,從直線上任取兩個向量一定是正交的。那從上面舉的三種形態,是不是就可以說兩個二維平面就不可以正交呢?

答案不是的,其實它在三維平面上是不可能正交,但是!!!在四維空間中是可以正交的,但由於四維我們大腦想象不到,所以對於零空間的理解依然還是很抽象的,不過上面的方方面面的各種視角的闡述一定是比直接給出一個零空間的定義在理解上要強很多倍的。

總結:

有木有發現,上面舉了三個視角來看待零空間,其實之前學習矩陣的三個視角是一模一樣的,這就是神奇之處,下面對零空間的三個視角再歸納總結一下:

矩陣A的零空間:

1、把A看作是系統:A的零空間,就是Ax=0中,所有x組成的空間;

2、把A看作是函數(變換):A的零空間,所有被A變化為0的空間;

3、把A看作是空間:A的零空間,是和A的行空間正交的向量空間;

零空間基與秩-零化度定理:

零空間基:

先來拋出一個問題:零空間的維度是多少?能否給出一組基?

由於零空間是齊次線性方程組所有的解構成的空間,所以從解齊次線性方程組開始,比如對下面這個矩陣進行求解,也就是將其化為行最簡形式:

根據行最簡形式此時就可以寫成如下線性方程組:

進一步的:

其中x3可以取任意值,都可以求解出x1和x2了,對於線性方程組的解就已經求出來了,但是!!面對零空間的話,還需要進一步,因為零空間所有解所構成的空間,每一個解其實都是一個向量,面對咱們這個解也就是對應於:

這樣的形式就可以表示這個齊次線性方程組所有的解向量,也就是(-7,-5,1)這個向量所有的線性組合,也就是X3可以隨便取,此時就可以得出這個矩陣A的零空間的維度為1,對應的一組基就為(-7、-5、1)。

下面再來舉一個更復雜5x6矩陣的例子加深對於零空間維度的理解:

依然將其化為行最簡形式,如下:

其中有兩個非0行,對應的齊次線性方程的解為:

而由於x3...x6都處於自由列的位置,所以可以隨便取值:

同樣的可以將它寫成解向量的形式,如下:

此時再將其拆解一下,每一部分只包含一個未知數,如下:

然后再進一步,將未知數給提出來:

這形式是不是就是這四個向量的生成空間,也就是這四個向量的線性組合所能表示出來的所有的向量就是這個齊次線性方程組的解,換言之這個齊次線性方程組的角就是這個生成空間,進一步這個生成空間就是矩陣的零空間,所以此時對於這個矩陣A的零空間的維度就為4,因為這四個向量肯定是線性無關的:

下面來回憶一下上面的過程,將系數矩陣化為行最簡形式,其中主元列是2個,自由列是4個:

 

而自由列對應的就是這些未知數:

而其中對於這四個矩陣的元素是分為了兩部分,看一下:

所以零空間的一組基就是上面的這四個向量。總結一下,其實零空間的基就是看化為行最簡形式的自由列的個數就好了,而基的話就需要計算生成解空間中未知數的向量

秩-零化度定理:

回憶一下上面舉的復雜矩陣化為行最簡形式的例子:

抽象一下來說:對於一個m*n的矩陣,將其化為行最簡形式,主元列數就是列空間的維度,而自由列數就是零空間的維度,很顯然又有一個結論:

列空間的維度+零空間的維度=n,好,小標題的概念要出現:

秩(rank)【列空間的維度】 + 零化度(Nullity)【零空間的維度】 = n,所以這就是 秩-零化度 定理

列空間和零空間總結:

關於零空間的概念至此就學得差不多了,接下來對於列空間和零空間進行一下總結:

對於一個m行n列的矩陣:

列空間:

1、Ax=V(x任取);表示x可以隨便取,相應所能得到的所有的v所組成的空間。

2、列空間是m維空間的子空間。這是因為mxn的矩陣,每一個列向量都有m個元素,所以是m維空間的子空間。

3、列空間的維度,為行最簡形式中主元列數。

4、主元列的對應原矩陣的列,是列空間的一組基。

零空間:

1、Av=0;能讓這個等式成立的所有v組成的空間。

2、零空間是n維空間的子空間。這是因為零空間中的所有的向量都是Av=0的一個解,對於A來說它有n個未知數,所以相應的解就有n個元素。

3、零空間的維度,為行最簡形式中自由列數。

4、求零空間的基需要求解Av=0,求出來的角再進行一下變形,把它化為幾個線性無關的向量,每一個向量控制一個自由元,它們的一個線性組合,這些向量就是零空間的基。

最后再來看一個問題:何時零空間的維度為0?由於零空間的維度就是自由列的個數,換言之也就是對於矩陣的行最簡形式木有自由列,全是主元列,也就是列空間的維度為n,此時零空間的維度就為0,那對於方陣呢?既為滿秩的時候,零空間的維度為0,其中又繞回到了方陣,是不是又想擴充等價命題,是的,如下:

左零空間,四大子空間和研究子空間的原因:

左零空間和四大子空間:

到目前為止已經學習了N多概念了,如向量空間、子空間、維度、行空間、列空間、矩陣的秩、零空間。 接下來先對這次所學習的若干個子空間以及它們之間的關系,進而引出一個左零空間這樣的概念:

其中注意列空間和零空間符合表示法,在一些教材中可能會這樣描述的,看到得要有印象,而根據“秩-零化度 定理”,我們就可以知道它們維度,如下:

接下來再來回憶一下行空間,但是它不是用row這個符號來表示的喲,在學習向量時通常更喜歡用列向量,同時在學習矩陣時把它用一列列來排列能證明很多問題,所以也是更傾向於用列向量,所以,對於行空間也用列的符號來表示,如下:

稍加理解一下:行空間是由所有矩陣的行向量的線性組合組成的空間,將A轉置過來,A的行向量就是A轉置的列向量,所以A的行空間就是A轉置的列空間,接下來分析一這三者的關系,其中對於行空間和列空間之間的聯系就是它們的秩是一樣的,而對於行空間跟零空間也存在關系,如下:

關於為啥正交,可以回憶上面的總結:

目前從關系圖上看,明顯缺了一個右下角的,也就是跟列空間對應的零空間一樣,這塊缺失的區域應該是A的轉置的零空間,叫A的左零空間

而對於它的維度可以很空間看出來,為:

這是因為m*n的矩陣A的轉置是n*m的矩陣,有m個未知數m列,轉置的列空間為r的話,意味着A的轉置的行最簡形式的r個主元列,相應的就有m-r個自由列,所以A的轉置的零空間【也就是左零空間】的維度就為m-r,相應的,它跟列空間也是成正交關系,如下:

那接下來討論一個問題:為啥A的轉置的零空間叫做A的左零空間呢?其實可以從左零空間的定義來導出來,如下:

為啥A的轉置的零空間叫做A的左零空間呢?

對於m*n的矩陣A,左零空間它的表示為:

而根據零空間就可以知道:

然后左右兩邊都取轉置,式子就可以變換為:

此時就又可以變為:

這樣來看,拿矩陣A來說是不是就推導出來左零空間是讓x向量的轉置乘以矩陣A=0滿足這樣條件的所有x所在的空間,其中x是左乘A【關鍵點】?此時就得跟零空間的進行一個對比了,它是滿足Ax=0這樣條件的x所組成的空間,x是右乘A對吧?所以一對比對於左零空間的概念理解起來就不模糊了。

研究子空間的原因:

最后來討論一下為啥咱們要來研究子空間呢?

1、子空間維度大大降低,關於這塊在上面有描述到,這里貼一下就不過多說明了:

而咱們學習的四大子空間就是構成更加復雜的降維子空間的一些基礎。

2、子空間是其它一些應用的基礎,這里舉一個簡單的例子:

很多真實世界的問題本質都是求解Ax=b的線性系統中的x是多少,但是!!在真實的世界中得到的這個知陣A可能是有很多行的,所以大概率的A的行數是大於列數的,也就意味着方程的個數遠遠大於未知數的個數的,也就意味着大多數情況Ax=b是無解的,但是無解並不代表這個問題就真正無解,可以求它的近似解也可以描述該問題, 此時就可以使用子空間來求解了,如何求呢?

先不考慮等號右邊的b,只看Ax, 其實它就是矩陣A的列空間,矩陣x向量,以列視角來看的話,它等於向量的每一個未知數跟矩陣A中的每一列相乘最終再相加對吧?所以Ax就是矩陣A的列空間【不太理解的記得回看列空間的概念,列空間就是矩陣列向量所生成的空間】,只是過目前就是要找一個向量正好就是b這個向量呢?但目前A的行數大於列數,很顯然大概率是找不到這個向量的,那怎么辦?其實只要讓b這個向量在A的列空間中, 只要在肯定是有解了,對於A的行最簡形式的非0行的個數一定是小於等於n的,所以解決思路就是找A的列空間中離b最近的b',也就是求解:Ax = b',找到近似值最終此問題就有解了,而要找到b'看到木有就需要知道矩陣A的列空間,也就是四大子空間的一個,這也就是學習子空間的另一大意義。

對於上面的一大堆“費話”如果沒理解也不要緊,言而總之,知道學習子空間是有“意義”的就成。

tips:這次學的真的概念太多了,也太抽象了,需要好好消化,為未來更加進一步打下堅實的基礎。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM