線性代數精華——講透矩陣的初等變換與矩陣的秩

NO IMAGE

本文始發於公眾號:TechFlow

矩陣的初等變換這個概念可能在很多人聽來有些陌生,但其實我們早在初中的解多元方程組的時候就用過它。只不過在課本當中,這種方法叫做消元法。我們先來看一個課本里的例子:

線性代數精華——講透矩陣的初等變換與矩陣的秩

假設我們要解這個方程,怎麼做呢?

首先,我們把(1)式加到(2)式,把(4)式加到(3)式,把(1)式乘6加到(4)式可以得到:

線性代數精華——講透矩陣的初等變換與矩陣的秩

我們再把(4)式減去(2)式乘5,可以解出線性代數精華——講透矩陣的初等變換與矩陣的秩

線性代數精華——講透矩陣的初等變換與矩陣的秩

我們把線性代數精華——講透矩陣的初等變換與矩陣的秩帶入,可以解出線性代數精華——講透矩陣的初等變換與矩陣的秩

線性代數精華——講透矩陣的初等變換與矩陣的秩

因為消元之後,方程組的數量少於變量的數量,我們無法解出所有的變量。其中的線性代數精華——講透矩陣的初等變換與矩陣的秩可以取任何值。

上面這個計算的方法我們都非常熟悉,如果我們用一個矩陣來表示所有的次數,那麼這個矩陣D可以寫成:

線性代數精華——講透矩陣的初等變換與矩陣的秩

那麼,我們剛才消元的過程,其實就是對這個矩陣做初等變換。我們把這個過程總結一下,矩陣的初等變換操作包含以下三種:

  1. 對調兩行
  2. 以數線性代數精華——講透矩陣的初等變換與矩陣的秩乘上某行的所有元素
  3. 以數線性代數精華——講透矩陣的初等變換與矩陣的秩乘上某行所有元素並加到另一行

以上的三種都是針對行為單位的,因此上面的三種變換也稱為“行變換”。同樣我們也可以對列做如上的三種操作,稱為“列變換”。行變換和列變換結合就是矩陣的初等變換。

同樣,我們可以對線性代數精華——講透矩陣的初等變換與矩陣的秩這個矩陣使用剛才我們上述的初等變換操作,將它變成如下這個結果:

線性代數精華——講透矩陣的初等變換與矩陣的秩

它就對應方程組:

線性代數精華——講透矩陣的初等變換與矩陣的秩

線性代數精華——講透矩陣的初等變換與矩陣的秩矩陣是經過初等行變換的結果,我們還可以再對它進行列變換,將它變得更簡單,我們只要交換第三和第三列,之後就可以通過初等列變換把第五列消除,之後它就變成了下面這個樣子:

線性代數精華——講透矩陣的初等變換與矩陣的秩

我們用數據歸納法可以很容易證明,所有的m*n的矩陣經過一系列初等變換,都可以變成如下的形式:

線性代數精華——講透矩陣的初等變換與矩陣的秩

r就是最簡矩陣當中非零行的行數,它也被稱為矩陣的秩。我們把A矩陣的秩記作: 線性代數精華——講透矩陣的初等變換與矩陣的秩

之前我們在介紹行列式的時候說過,行列式還存在多種性質。其中之一就是一個矩陣經過初等變換,它的行列式保持不變。我們又知道,如果行列式當中存在某一行或者某一列全部為0,那麼它的行列式為0。

所以,我們可以得到,對於n階矩陣線性代數精華——講透矩陣的初等變換與矩陣的秩而言,如果它的秩線性代數精華——講透矩陣的初等變換與矩陣的秩,那麼線性代數精華——講透矩陣的初等變換與矩陣的秩

再根據我們前文當中有關可逆矩陣的定義,可以得到,可逆矩陣的秩就等於矩陣的階數,不可逆矩陣的秩小於矩陣的階數。所以,可逆矩陣又稱為滿秩矩陣,不可逆矩陣(奇異矩陣)又稱為降秩矩陣。

之前我們在複習行列式以及逆矩陣的時候,總覺得少了些什麼,現在有了矩陣的秩的概念之後,這些知識就能串起來了。

代碼計算

同樣,numpy當中也繼承了計算矩陣秩的工具。我們可以很輕鬆的用一行代碼算出矩陣的秩,這樣我們在判斷矩陣是否可逆的時候,就不需要通過行列式來判斷了。因為矩陣秩的計算要比行列式的計算快得多。

import numpy as np
np.linalg.matrix_rank(a)

線性代數精華——講透矩陣的初等變換與矩陣的秩

有了矩陣秩的概念之後,我們後續的很多內容介紹起來都方便了許多,它也是矩陣領域當中非常重要的概念之一。

線性方程組的解

我們理解了矩陣的秩的概念之後,我們現學現用,看看它在線性方程組上的應用。

我們之前在介紹行列式的時候,曾經介紹過n元n個等式的方程組的解,可以用行列式表示。但是現實當中我們遇見的方程組並不一定是n元n等式的,我們推廣到一般的情況來看。假設當下有一個n元m個等式的方程組:

線性代數精華——講透矩陣的初等變換與矩陣的秩

我們可以將它寫成矩陣相乘的形式:

線性代數精華——講透矩陣的初等變換與矩陣的秩

其中A是一個m*n的矩陣,線性代數精華——講透矩陣的初等變換與矩陣的秩 線性代數精華——講透矩陣的初等變換與矩陣的秩

我們利用係數矩陣A和增廣矩陣線性代數精華——講透矩陣的初等變換與矩陣的秩的秩,可以和方便地看出線性方程組是否有解。我們先來看結論:

  1. 當R(A) < R(B)時無解
  2. 當R(A) = R(B) = n時,有唯一解
  3. 當R(A) = R(B) < n時,有無數解

證明的過程也很簡單,主要就是利用矩陣秩和最簡矩陣的定義。

我們假設R(A)=r,並將B矩陣化簡成最簡形式,假設得到的結果是:

線性代數精華——講透矩陣的初等變換與矩陣的秩

線性代數精華——講透矩陣的初等變換與矩陣的秩 顯然,當R(A) < R(B)時,那麼矩陣線性代數精華——講透矩陣的初等變換與矩陣的秩中的線性代數精華——講透矩陣的初等變換與矩陣的秩,那麼第r + 1行對應的方程0 = 1矛盾,所以方程無解。

線性代數精華——講透矩陣的初等變換與矩陣的秩 如果R(A) = R(B) = r = n,那麼矩陣線性代數精華——講透矩陣的初等變換與矩陣的秩中的線性代數精華——講透矩陣的初等變換與矩陣的秩,並且線性代數精華——講透矩陣的初等變換與矩陣的秩都不出現,所以我們可以直接寫出方程組的解:

線性代數精華——講透矩陣的初等變換與矩陣的秩

此時,方程組有唯一解

線性代數精華——講透矩陣的初等變換與矩陣的秩 如果R(A) = R(B) = r < n,則B中的線性代數精華——講透矩陣的初等變換與矩陣的秩,我們寫出對應的解:

線性代數精華——講透矩陣的初等變換與矩陣的秩

我們令線性代數精華——講透矩陣的初等變換與矩陣的秩,帶入,得:

線性代數精華——講透矩陣的初等變換與矩陣的秩

由於參數線性代數精華——講透矩陣的初等變換與矩陣的秩可以取任意值,所以方程有無數解。上面寫出的解的形式即是線性方程組的通解。

齊次線性方程組

如果我們將上面的線性方程組的常數項都置為0,就稱為齊次線性方程組,如下:

線性代數精華——講透矩陣的初等變換與矩陣的秩

齊次方程組最大的特點就是當線性代數精華——講透矩陣的初等變換與矩陣的秩時一定有解,稱為方程組的零解。我們還通過增廣矩陣來判斷,寫出來其實還是剛才一樣的形式:

線性代數精華——講透矩陣的初等變換與矩陣的秩

和非齊次線性方程組不同的是,我們可以斷定線性代數精華——講透矩陣的初等變換與矩陣的秩,如此一來就不存在無解的情況。這個時候我們要判斷的就是方程組是否存在非零解,我們一樣通過矩陣的秩來判斷,判斷的條件也很簡單,如果R(A) = n,則不存在非零解,如果R(A) < n,則存在無數組非零解。我們先寫出R(A) = n的情況,這時候的矩陣線性代數精華——講透矩陣的初等變換與矩陣的秩為:

線性代數精華——講透矩陣的初等變換與矩陣的秩

也就是說:

線性代數精華——講透矩陣的初等變換與矩陣的秩

由於線性代數精華——講透矩陣的初等變換與矩陣的秩,所以唯一解為線性代數精華——講透矩陣的初等變換與矩陣的秩。當R(A) < n時方程組和非齊次方程組類似,唯一不同的是可以確定線性代數精華——講透矩陣的初等變換與矩陣的秩,我們直接帶入之前的通項公式,可以得到:

線性代數精華——講透矩陣的初等變換與矩陣的秩

線性方程組的解的公式和計算本身其實並不重要。因為在實際的算法領域,用到的也不多。但是理解線性方程組對於理解後面的向量以及線性空間非常有幫助,文中的公式看著恐怖,但冷靜下來真的去試著理解一下,會發現也就那麼回事。

衷心希望大家學有收穫,如果喜歡本文,請給個關注吧~

線性代數精華——講透矩陣的初等變換與矩陣的秩

相關文章

2019一個移動端開發者的總結與思考

聊一聊MySQL中的事務及其實現原理

【12.30~1.4週報】我當導演啦

springboot多環境(dev,test,prod)配置