线性代数学习之行列式
行列式:
什么是行列式?
繼續接著線性代數學習之坐標轉換和線性變換往下學習,這次則來學習行列式相關的知識,其實很多線性代數教材都是一開始從行列式開始學習, 而咱們的學習并不是這樣的,這是因為行列式和矩陣以及空間的基等概念有密切的聯系,而很多國內的教材都比較注重行列式的具體計算,但是呢這里重點不是關注它的計算,而關注它的性質,了解清楚它的本質【你了解了本質再去看它的計算也會非常的容易】,為后續特征值與特征向量的學習打下非常堅實的基礎。
回到正題上來,什么是行列式呢?一句話來描述:行列式是方陣的一個屬性,類似的:
1、我們在研究一個數時也會涉及到屬性:數的大小、符號、約數、是否是素數?
2、研究角度時也有屬性:sin、cos、tan、ctg...
3、研究多項式:
?
它也有一些屬性值得研究,如項數、次數、多項式=0的解。
那行列式到底是方陣的一個什么屬性呢?在之前的學習中我們知道“矩陣可以表示一組向量,方陣表示n個n維向量”,也就是把向量一列列的組合起來形成了矩陣,可以表示一個空間及這空間中的一組基所對應的坐標轉換,同理方陣就可以理解成n個n維向量,還是拿二維平面空間來說,使用2個二維向量就可以作為空間中的一組基,就可以描述這個空間,也就是空間中的任何一個向量都可以被這兩個二維向量線性表示出來,下面來看這樣兩個標準基:
很顯然可以表達一個二維空間,那如果這樣兩個綠色的向量呢?
當然也可以表示一個二維平面,同樣的再來兩個藍色的向量:
那能否用一個數字表示這些向量組的不同呢?其實是可以的,每2個向量都組成了一個面積,比如單位向量組成了紅色面積:
而綠色的兩個向量就組成了綠色的面積,如:
而對于藍色的向量組成的是一個虛線部分的面積:
而這些面積的大小就能一定程度的刻畫不同的基它們的一個特征,而行列式就是描述這個n個n維向量它所對應的面積的大小這樣的一個屬性,當然這里說面積是針對二維平面來說的,如果對于一個三維平面空間就要有三個三維向量,如下:
它表示的是一個體,而非面啦,很顯然三個三維向量不同則表達的體積也會不同,比如像這個:
再往高維去看就很抽象了,比如四維、五維...,都能找到n個n維空間所構成的體,而行列式就是描述的這個n個n維向量所構成的n維體所對應的體積,當然在二維空間中就是面積了。
如何求行列式?
還是以二維平面來例,比如有這么兩個向量:
而它的行列式表示法是這樣的:
其中det是行列式英文Determinant的縮寫,而且它一定是方陣,另外它里面是把向量以行來進行排列的,其實學到后面對于行列式的矩陣表示以行還是以列其實都是一樣的,之后再說,目前用行進行排列,另外行列式不是行寫在前面嘛,所以也可以這么理解,另外對于行列式還可以這樣表示:
看到它是不是跟一個數的絕對值符號一模一樣?是的,所以對于數學當中要區分雙豎線里面的數據是什么類型,如果它是一個矩陣那就是在求這個矩陣的行列式,它的值也是一個數,不過它跟絕對值不一樣的是有可能是一個負數,接下來看一下對于這么一個行列式要怎么求它的值呢?其實就是求圖中平行四邊行的面積,看下面:
先來將向量的坐標值標出來:
然后再在平行四邊行最遠的一點分別向x,y劃輔助線:
其實要求平行四邊行的面積就是用整個這個長方型的面積減掉它周邊塊的面積就可以了,為了求出此時還得畫輔助線:
具體計算就不過多解釋了,比較簡單,整個式子為:
此時就可以化為:
所以對于二維行列式的求解結果為:
其中發現規律沒有?其實就是矩陣的主對角線兩個元素(a、d)的乘積減去非主對角線兩個元素(b、c)的乘積,但是!!!這種規律只適合二階方陣,如果是三階行列式的求法就不能用這種方式了,關于更多階行列式的求法在后面會來學到,目前先只看二階的。
接下來做一個變換,來尋找一些特性:將行列式的兩行交換一下位置就有:
有啥意義么?這兩個行列式是不是有這么一個關系:
就能說明:行列式表示向量組在空間中形成的有向【有向的含義是求出來的值有可能是正,也有可能是負的】體積【二維空間叫面積】,其中在二維空間中的有向面積還是很容易直觀理解的,看圖說話:
但是!!!在三維及以上的空間中,體積的方向將變得極其復雜,但是可以簡單總結如下性質,高維的也一樣滿足:
在行列式中,向量排列的順序是有意義的。交換兩行,則行列式的值取反。
行列式的四大基本性質:
了解了行列式之后,接下來則從更加抽象的層面出發來來看行列式的四大基本性質:
性質一:
也就是說對于單位矩陣的行列式的值為1,很明顯兩個向量的模都為1,面積當然為1:
在之前學單位矩陣時說它可以當成數字1來看待,但是矩陣和數字1還是有很大的區別的,而兩者之間掛上真正的聯系就是通過這個行列式。
性質二:
交換行列式的兩行,則行列式的值取反。這個性質在上面已經說過了,比較簡單。
性質三:
方陣的某一行乘以一個常數k,則其對應的行列式也縮放了k倍。
用一個數學式子來表達的話就是:
這里回到二維坐標上來理解:
比如k是2,也就是a,b這個向量延伸了2倍,成了綠色的這根向量了,如下:
此時這個行列式就是綠色向量跟(c,d)這根向量組成的平行四邊行的有向面積,此時就得做輔助線了就為:
是不是它剛好是原來藍色平等四邊行面積的2倍?不過對于這條性質一定要注意!!!是某一行乘以常數k,而不是所有行,像矩陣如果乘以常數k則矩陣的所有元素都會乘以常數k對吧,換言之也就是矩陣的所有行都乘以了常數k,所以矩陣跟常數做乘法和咱們探討的這個行列式的某一行乘以常數k是不一樣的,所以經常容易犯的錯誤就是式子可能這樣寫:
這是因為kA其實是A中的每一行都乘以k,正確的寫法應該是:
這是因為有n行的行列式的行都乘以了k。
性質四:
方陣的某一行加上一行數,則有:
對于這一性質還是回到二維平面上來理解:
比如(a,b)向量加上了(3,2),此時向量就變為綠色部分的了:
此時的行列式就是綠色向量跟(c,d)這個向量的面積了,如下:
而它的面積就等于原來藍色平行四邊行的面積加上?(3,2)和(c,d)所構成的平行四邊行黃色的面積,如下:
其實也可以算出來驗證此特性是成立的,如下:
總結:
下面來看一下其中的兩個性質,你會發現新大路:
又是加法和數量乘法!!!又一次驗證了這兩種基本運算貫穿了整個線性代數的學習。
行列式與矩陣的逆:
在上面已經學習了行列式的四大基本性質了,接下來則來應用它們來看一下它跟矩陣的逆之間的關系, 先來貼一下這四大性質:
接下來則利用上面的性質得到一些非常有用的結論:
結論一:如果行列式的兩行相同,則行列式的值為0;
證明:
假設矩陣A交換兩行后,為A’,
det(A) = -det(A’),
因為兩行相同,所以A=A’,
det(A) = -det(A)
所以此時變換等式就有2*det(A) = 0,所以此時det(A)=0。
其實回到二維平面也可以直觀的證明一下,因為二維空間兩個向量共線,所以面積肯定為0。
如果是三維空間,則是兩個向量是共線的,形成了一個平面,體積也為0。
進一步n維空間只要有兩行相同也就是最終是構成了一個n-1空間,很顯然在n維空間中的體也是為0。
結論二:如果行列式有一行為0,則行列式的值為0;
證明:
很明顯其中的行列式就滿足第一條結論了,k*0當然結果也為0嘍。
結論三:如果行列式的一行是另一行的k倍,則行列式的值為0;
證明:
也可以用結論二的性質來證明,如下:
結論四:如果行列式的一行是其他行的線性組合,則行列式的值為0;
這個就比較好想像了,因為如果一行是其他行的線性組合,很明顯這一行不是空間中的一組基,可以把線性相關的這一行給刪除掉的,剩下的n-1行很顯然構成的是一個n-1維的體,而不是n維的體,也就是從n維的角度來看這個n-1維的體積為0,下面以代數的方式來證明一下:
與矩陣的逆關系:
上面所述的四大結論其實歸結一下就是:“如果行列式的一行是其它行的線性組合,則行列式的值為0”,也就是說行列式形成的一個向量組,如果這組向量線性相關,則行列式的值為0,而根據之前所學對于n個n維的向量如果線性相關,所組成的矩陣一定是不可逆的,所以有個結論就出來了:
相反還有一條:
所以總結如下就是:
這個性質是之后學習特征值與特征向量的求解時的關鍵性質,一定要理解。
最后,對于方陣的若干個命題又可以添加上一個新的命題了,如下:
計算行列式的算法:
性質證明:
上面已經對于行列性的性質進行了了解之后,接下來則學習行列式的計算,在計算之前先來證明一個很重要的性質:
如果一個行列式的一行加(減)另一行的k倍,行列式的值不變, 啥意思?比如:
下面來證明一下:
將式子可以演變了:
知道了這一條性質之后,下面就可以來看行列式的具體計算了。
計算行列式的值:
對于上面的性質,其實對于一個方陣的行列式的值,等于其進行Gauss消元法后的結果,也等于其進行Gauss-Jordan消元法后的結果,但是需要注意的是此時在消元時不能歸一化,因為一歸一化就改變了行列式元素的值了,另外在消元過程中進行行置換列置換操作變需要變符號(也就是每置換一次就得取一次反,如果置換了偶數次則行列式的值不變,如果是奇數次則需要給行列式的值取一下反),總結一下:
所以接下來的核心就是要求對角矩陣的行列式了。
對角矩陣的行列式:
比如這么一個行列式:
其中可以把對角元素都提出來,如下:
所以就得到一個非常重要的計算方法,如下:
也就是對于對角矩陣的行列式的值就是對角元素相乘,而對于對角矩陣還有其它的兩種形式,其結果也跟這個對角矩陣的是一樣的,總結一下:
因為對于上三角矩陣和下三角矩陣都可以將其化為對角矩陣的形式,所以其實就沒必要進行高斯約旦消元了,直接只要高斯消元既可,所以對于一個方陣的行列式的值的求解,就可以簡化:
也就是只需要對方陣進行高斯消元,如果消元結果有零行,則行列式的值就為0,否則就是上三角矩陣對角線元素的乘積的結果。?
驗證算法:
接下來簡單用2階行列式驗證一下上面所述的求矩陣的行列式的算法的正確性,比如有這么個二階行列式:
它的結構用之前的描述可以用代數的方式寫出來:
但是!!這里用高斯消元的方式求一遍,看一下結果是否如預期這樣:
這樣行列式的值就等于主對角元素的乘積,如下:
初等矩陣與行列式:
接下來則來探討行列式稍微不一樣的性質,為了探討清楚這個性質需要在之前https://www.cnblogs.com/webor2006/p/14306045.html研究的初等矩陣它們所對應的行列式,先來回憶一下啥是初等矩陣:
而要討論的這個行列式稍微不一樣的性質是指:
這個性質之所有不太一樣,是因為之前行列式的性質都可以以幾何的視角來直觀的理解,但是!!!對于這個性質來說,幾何理解就沒啥用了,因為等式的右邊是兩個行列式的乘積,從幾何的角度就是指兩個體積的乘積,所以要來探究它得從純的代數角度出發,下面分幾種情況來探究:
1、如果A或者B中的某一行和其他行線性相關:
此時det(A * B)=0,假如A中的某一行元素與其他行線性相關,A中的每一行相應的元素就可以寫成k1*第一行對應的那個元素+k2*第二行對應的那個元素...可以寫成其它所有行元素的線性組合,然后再做乘法的過程中,A中這一行中所有的元素會相應的和B中的矩陣中的某一些元素進行相乘再相加操作,想象一下在整個這個過程中A中這一行的所有元素一定還保持著是其它行的線性組合,只不過前面的那些系數會產生一些變化,會有B矩陣中的數字被參與進來,但是線性組合的線性關系依然是存在的,所以A*B中相應的那一行也和其他行是線性相關的,根據上面的規則:
所以行列式的值一定為0;同理如果是B中的某一行和其它行線性相關和A做乘法其相關性也不會消失,所以式子還是為0 。而根據A或B中是線性相關的,所以就有:
所以此等式
肯定成立。
2、如果A和B中的所有行都線性無關
由于行列式一定是方陣,所以此時就可以把方陣的等價命題搬過來了,其中就可以往初等矩陣上靠了:
回憶一下初等矩陣的概念:它是對單位矩陣進行初等行操作,所以此時就可以把矩陣A轉換成初等矩陣的形式,如:
此時就需要研究初等矩陣的行列式了,而它有三種初等變換的操作,下面一一來看一下:
1、如果E是單位矩陣的某一行乘以k:det(E) = k
這是因為單位矩陣的行列式的值為1,而某一行乘以k就可以將k提出來,所以為k。
2、如果E是單位矩陣的某兩行交換,det(E) = -1
單位矩陣的行列式的值為1,而交換兩行的位置根據之前所述的:
所以結果就為-1了。
3、如果E是單位矩陣的某行加(減)另一行的k倍:det(E) = 1
由于單位矩陣的行列式為1,其加減另一行的k倍,根據之前的這個性質:
知道了初等矩陣的行列式的值之后,接下來還是回過頭來證明它:
不過這里需要先證明:
這里也分為三種情況分別證明:
1、如果E是單位矩陣的某一行乘以k:det(E) = k
方陣E*B是B中的某一行乘以k,所以等號左邊的式子就有:
而等號右邊的式子結果也一樣:
所以此式子就得證了。
2、如果E是單位矩陣的某兩行交換,det(E) = -1
等式左邊的方陣E*B是B中某兩行交換,所以:
而等式右邊也是:
3、?如果E是單位矩陣的某行加(減)另一行的k倍:det(E) = 1
等式左邊的方陣E*B是B中的某行加(減)另一行的k倍,此時:
而右邊等式:
左右相等。
所以它就得證:
而回到咱們要證明的式子上來,對于一串E是不是也能證明如下等式成立呢?
而證明也比較簡單,也是根據這個性質來證明:
如下:
是不是可以拆成兩塊,按照咱們已證明的式子就可以化為:
同樣的思路,最終就可以:
好,此時就可以回到咱們要證明的式子上來了:
而由于矩陣A就是經過一系列初等矩陣的轉換而來,所以可以有:
很明顯可以看出來:
所以就得證了。這個在之后學習特征值與特征向量變得非常用,先記住它。
有了這個等式的結論:
就可以進一步進行性質推導嘍,如下:
其中看最后的這個式子:
是不是如果A可逆,那么det(A)是不等于0的,如果等于0它作為分母肯定就有問題了,又進一步的論證了之前對于行列式與矩陣的逆關系:
行式就是列式!
目前為止咱們學習的行列式都是以行的角度來看方陣的, 而在之前也提到過對于行列式而言行式就是列式:
也就是從行的角度來看和從列的角度來看,其行列式的值是一樣的,回到二維空間來說:
就有:
簡單表示就是:
下面來證明一下:
這里需要用到之前學習矩陣分解的知識,目前為止學了2個矩陣的分解:LU分解和QR分解, QR分解的條件是需要矩陣的每一列都是線性無關的,而矩陣的LU分解的條件是高斯消元法過程中不能進行行變換或列變換的操作,不過PLUP’可以解決行變換或列變換的問題,關于PLUP’可以參考https://www.cnblogs.com/webor2006/p/14306045.html,簡單回憶一下:
而它就為我們證明提供了幫助,此時式子左邊的就可以寫成:
而根據之前證明的等式:
所以又可以變化為:
而式子右邊的也可以寫成:
接下來就是看這兩結果是否相等了:
先來看這兩個矩陣的行列式,一眼就能看出相等:
接下來則來看剩下的行列式的相等性:
對于p和p'它們是啥矩陣呢?回憶一下:
其實它們是單位矩陣進行行變換或列變換后得到的矩陣,而為了證明上面的相等式,先來證明如下一個輔助的結論:
也就是對于初等矩陣來說,此時就需要分三種初等矩陣的情況來分析了,不過,這里要證明的目標P就是對單位矩陣進行行交換,何以見得?
所以,此時不需要分三種情況來分析了,只需要證明兩行交換位置上面這個輔助的結論成立就成,其實是很明顯的,如下面這個單位矩陣進行了2行位置交換如下:
很顯然此時這個矩陣的行列式的值為-1,因為交換位置就是改變操作符號嘛,而此時再讓它進行一個轉置,發現還是將E進行了兩行的交換,也是-1,所以此輔助結論就得證了。
好,回到咱們要想證明的主式上來,P是若干次行交換的結果,也就是可以把它寫成若干個表示交換兩行位置的初等矩陣乘積的結果,就可以用之前所學的結論將這些初等矩陣拆出來拆成行列式的乘積,而每一個行列式都等于其中的E轉置后的行列式的值,再乘以來就能得到P的行列式的值就等于P的轉置行列式的值,同理對于P'也是一樣的,最終它的行列式也等于P'轉置行列式的值。此時這個式子就得證了:
也就是對于行列式求解來說,橫著碼行列式還是豎著碼行列式不重要,它們的行列式的結果是一樣的。進一步的,我們之前所學的所的行列式的性質,都是基于行的,換成列也一樣存在,比如:
1、交換行列式的兩列【之前是說的行】,則行列式的值取反。
2、行列式某一列乘以常數k,也可以將常數提出來,如下:
3、行列式某一列加上另外一列數的話,就可以把兩列給拆開,形成這樣的兩個行列式:
4、如果行列式的兩列【之前是行】相同,則行列式的值為0。
5、如果行列式的一列是另一列的k倍,則行列式的值為0。
6、如果行列式的一列是其他列的線性組合,則行列式的值為0。
7、如果一個方陣加(減)另一列的k倍,行列式的值不變。
華而不實的行列式的代數表達【了解】:
代表表達:
最后再來學習一下行列式的代數表達,所謂代數表達就是已經脫離了幾何含義了, 雖然已經知道了行列式的幾何含義,可以比較直觀的理解行列式了,但是!!對于三階行列式、四階行列式、甚至是N階行列式,很顯然這個幾何含義不能幫我們求出對應的值,其實行列式是可以用代表來表達的,比如有個n階行列式,用代表表達是:
其中"∑"的讀法是:sigma【西格馬】,表示一個加和符號,表示i從1到n,n項的和,每一項是a1i*A1i,而A1i是啥呢?它是這樣定義的:
而M1i又是啥呢?比較復雜,如果i取2的話,則在行列式矩陣中找到a12這個元素:
之后再把它對應的一行和一列給刪掉,如下:
通過這樣的方式是不是剩下的n-1行n-1列又可以構成一個行列式,該行列式是一個n-1階的行列式,M1i就是通過這樣的手段構造出來的n-1階的行列式,那這樣是不是每個Mij都對應這么一個n-1階的行列式?從而就求出了整個n階行列式的值,不過真的太難理解了,不過它還是挺有意義的,它是一個遞歸的定義,也就是本來要求n階的行列式的,轉而要求n-1階,而如果要求n-1階又得求n-2階,不斷的進行遞歸,不過用這種方式來計算的話,時間復雜度是O(n!),也就是n的階乘級別的,它幾乎是時間復雜度中最高的一種了, 比指數級別的復雜度還要高,所以實際中一般也不會使用這種式子來計算行列式的值。
另外對于這個式子還有兩個專有名詞:
所以行列式的代數表達就是第一行的每個元素去乘以它所對應的代數余子式,最后將其加起來。其中代數表達除了用第一行這么做,也可以用其它行來做,也可以用列來做。
用代表表達之后就可以得到使用行列式幾何方式得不到的結論,舉例說明,在之前我們有這么一個幾何結論:
而這個式子只能求出A的逆的行列式的值,但是不能求出A的逆,但是如果通過代數表達可以直接寫出A的逆為:
其中A*為:
而A*這個矩陣它也有一個專用名詞,叫伴隨矩陣,但是!!!這種方式是一種看起來很優美但是實現起來極其復雜的一個式子,所以了解一下。
Carmer法則:
一般的教材在介紹行列式時都會提到Carmer法則,它其實就是使用行列式的方式來求解:
這樣的一個線性方程組,而Carmer法則告訴我們它的解是:
A是一個n階方陣,其對應的解中的每個元素xi的值為上述式子,而Ai(b)指的是將A中的第i列換成b,也是一樣的,看起來很優美,但是復雜度太高了,沒有太大的實用價值,了解一下。
最后再來闡述一下:在現代數學中,行列式更多是一種理論工具,它可以幫助我們有效地去思考解決一些理論問題,但是它的實際的作用:比如說通過行列式求矩陣的逆、用行列式來求解線性系統的解...,都不是太有意義,但是學好行列性對于之后更深入的學習線性代數是很有幫助的,比如下一次學習的特征值與特征向量,所以學習行列式也不能馬虎。
總結
以上是生活随笔為你收集整理的线性代数学习之行列式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 全国计算机等级考试题库二级C操作题100
- 下一篇: 使用 ServiceStack 构建跨平