線性代數(筆記三)
課程來源:網易雲課堂學習計划(課程鏈接)
作者簡述:作者為一名正在讀研的學生,自己的數學狀態較差。本科期間所學均能算跟得上,而且通過自己的努力經過了研究生考試。但是對數學的理解並不透徹,只是根據課上所學去做題而已。如今科研中,許多過程均需要用到所學的數學知識,然而一個好的理解和一個扎實的基礎才是科研之本。數學雖然是作為一種工具,如果不了解含義,無論是是使用上還是在其基礎之上進行修改均顯得支支吾吾。於是決定重新學習線性代數相關知識,並做此筆記以供復習或和他人分享。
用途:此系列文章均是作者在課上所學及其自己相關的數學思想所做的筆記,如有理解錯誤之處還望大家指出。本系列文章均可不咨詢情況下任意轉載和學習(不可商用)。
作者研究方向為機器學習,如果有相同方向的小伙伴想一起學習,請加QQ123854340(備注來源博客),如果人數較多還可能建群。同時發現文章中有錯誤之處也請發郵件到123854340@qq.com。
在上節課中,我們說了兩種形式的消元。在矩陣形式的消元中,我們利用一個矩陣左乘另外一個用來行變換的矩陣而進行消元。所以在矩陣本身的理解中,可以看做是對線性空間中的一種變換。這節課,我們來說一下矩陣之間的乘法和矩陣的逆。
一、矩陣的乘法
這里所說的矩陣的乘法是指矩陣和矩陣相乘。根據課中教授所述,矩陣乘法有五種方法,下面我們就來看看這五種方法。
1、第一種為常規的算法(這個大家都很熟悉,我們書中定義的求解方法。)具體如下:
如圖 c32 = a31*b21+a32*b22+a33*b23;類似的,求C中任何一個元素,都由該元素所在行對應的A的行向量和其所在列對應的B的列向量的乘積而得。
2、第二種在上節中已經有所引用,就是將矩陣與矩陣相乘看做是矩陣列的線性組合,其中一個矩陣為系數矩陣。具體如下:
對於這個矩陣相乘AB = C,我們可以將B看做為系數矩陣,將A的各個列通過B中對應的系數進行線性組合,即如下步驟:
A的列線性組合中的系數使用到的是B中的第一列,所以求得的結果為C中的第一列。類似的我們可以換B的第二列而求解C的第二列。(這里和之前講過的矩陣和列向量的乘積求解過程相似)
3、第三種在上節中也已經有所引用,就是將矩陣與矩陣相乘看做是矩陣行的線性組合,其中一個矩陣為系數矩陣。具體如下:
整個過程類似於方法二,將矩陣A的行看做線性組合的系數,將矩陣B的行對應系數進行線性組合即可獲得對應行的結果。
4、第四種為第一種對稱的方法,第一種用A的行乘B的列,而這里用的是A的列和B的行進行相乘。求出所有的矩陣后再相加。這種方法不太常用,可以看看有助於理解。具體如下:
利用A的第一列和B的第一行可求出一個矩陣C1,同樣的可利用第二、第三列和第二、第三行來求解C2、C3,然后C = C1 + C2 + C3。
5、第五種為分塊相乘,這種方法一般不太常用,但對於有規律的矩陣或者矩陣很大的情況下可以考慮用這種方法,這樣會非常容易求解。
對於如上兩個矩陣相乘,我們可以先給這兩個矩陣按照一定的特征分塊。第一個矩陣分為A1到A4,第二塊分為B1到B4。兩個矩陣分塊后相乘也准守矩陣乘法的規則,這里我們用的是第一種方法進行相乘。(其中每個塊也是矩陣,只是規模減少了。當分塊中矩陣比較有特點,則求解很容易。)
二、矩陣的逆
對於AB = C,由上節矩陣形式的消元可知,可以將A看做是B變成C的一種變換,即B所做的行變換均疊加在A中。然而,我們也討論了如果將C變回B,我們需要的是將所有對B的變換,逆向的作用於C上。比如我對B第一行都乘了3,那么變回的過程就把C第一行乘1/3就可以變回去了。此時所謂的逆變換就是A的逆(這里用A~表示),那么很顯然就可知道如果A和A的逆A~都作用於B,矩陣B是不變的。即A*A~ = I(I為單位矩陣)。
上面的表達式可以看做為矩陣逆的定義,我大致說了下它得來的思路。類似的A~*A = I。但是並不是所有的A都有逆矩陣。比如如下矩陣:
這個A就沒有逆矩陣,因為無法找到一個矩陣A~和他相乘得I。那么為什么呢?我的理解是這樣的,我們可以借助於矩陣乘法中的第二種方法。存在一個系數矩陣B和A相乘(A*B),相當於A的列的線性組合,那么很明顯的問題是A的兩個列對應成比例,則其線性組合后也處在同一條直線上,而不能布滿整個面(第一節中有說)。這是從一個角度進行理解的,書中對於存不存在逆還是有很好的方法的(行列式方法)。
課中給了一個方法是如果你能找到一個非零向量X滿足AX = 0則,A就是沒有逆的。具體證明如下:
首先假設A存在逆A~,那么A*A~ = I = A~*A。對於AX = 0,左右兩邊左乘矩陣A~,可得A~*AX = 0,則X = 0。但是我們的X是非0向量,所以矛盾,則可證明A為不可逆的。
三、矩陣的逆的求解
當我們想獲得A的矩陣的逆的時候,我們會試圖用定義寫出如下表達式:
通過這個表達式去求解a、b、c、d,從而獲得逆。在這個表達式中求解系數,也不是很容易。它等價於求解兩個方程組。如下:
這里課中介紹了一種方法是Gauss-Jordan消元法,同時在構造的增廣矩陣中對兩個方程進行消元。構造的增廣矩陣及消元變換如下:
第二步到第三步是利用第二行進行向上消元,用第一行減去第二行的三倍。我們的目的是將左側矩陣變為I,那么我們右側獲得的就是矩陣A的逆A~。原因如下:
我們對這個增廣矩陣做變換E,即E[A I] = [I B]。最后將左側A變為了I,那么為什么B(右側)為A的逆?由表達式可知,E A = I,那么由矩陣逆的定義A*A~ = I可知,E為A~。又因為E I = B ,則B = E。