ker矩阵是什么意思_直观理解!你一定要读一下的“矩阵和线性代数入门”
首發于 | 知乎 作者 |?家里有只肉丸子
鏈接 | https://zhuanlan.zhihu.com/p/137112358
許多同學一聽到高等代數(線性代數)的名字就瑟瑟發抖,覺得似乎是極困難的科目。
在我大一那年,學完高等代數后,確實有不知所云之感。一本高代學完,除了記住各種概念,定義,什么若爾當標準型,什么矩陣的秩……其他什么也不了解,最后考研的時候拿起教科書重新啃了一遍,宛若新學。
很多朋友可能覺得,這門課就是來折磨廣大大學生朋友的吧!
其實不然,隨著讀書越久,加上工作了幾年,越發覺得當年的線性代數學得不夠,學得不好。
那么,我就拋磚引玉,來聊聊,線性代數到底是個什么東西,那些稀奇古怪的概念是怎么來的,又要到哪去。聊到哪算哪哈。
下面我的討論主要集中在工程領域,主要涵蓋一些線性代數和數值分析的知識。
(因為并非嚴格論述,所以難免有所疏漏,歡迎斧正)
? ?1.線性代數怎么來的?
有些線性代數教材上來就給大家講線性空間,這不禁會讓人頭暈腦脹。其實,線性代數這門學科,是和生產生活聯系極其緊密的,它的來源也并不復雜。
線性代數這門學科的出現,最開始應該是來源于線性方程組。下面這個就是一個典型的線性方程組:
方程大家都知道,初中就學過是吧,那么什么是線性方程?
就是未知數都是一次的方程。比如
這樣的方程。
線性方程是比較簡單的一類方程,但它的實用性一點都不簡單。在復雜的工業控制系統中、生物學家和人口學家的模型里,或是風洞實驗室的分析過程中都有現行方程的影子。
當然,更復雜的非線性方程也很重要,但限于難度和篇幅原因,這里暫時先不討論。
方程是數學家們用來描述世界的工具(之一),也可以說,是數學家用來描述世界規律的工具。
什么是世界的規律?那就是道
——道可道?可道!
而線性方程組就是線性方程的擴展。這也就引出了我們今天所說的主題——線性代數
數學家們一開始可能覺得寫那么多字太麻煩,干脆創新一種“記號”——矩陣。
創新記號,簡寫什么的是數學家的最愛。君不見微積分符號引發了萊布尼茲和牛頓的曠日持久的爭議?
于是,通過用一個大寫字母,比如A:
來表示一個樣子是方陣的數陣,數學家將線性方程組寫成了這個樣子:
請注意:矩陣的最初目的,就是線性方程組的簡寫!
于是,現在的線性方程組就可以用三種等價的方式來表述:
矩陣方程?
線性方程組
或者向量方程:??(這種表述其實是后續線性代數的核心思想,但在這里先不多說了)
以上三種表述方式,都有相同的方法來解——通過行化簡算法,化簡增廣矩陣。比如這樣:
(這個知識后面會用到,先放一邊)
既然創造了新的“記號”,矩陣,數學家們自然要研究一下。
? ?2.矩陣的本質以及線性代數到底研究什么
2.1 我們先說說矩陣的本質
我們看到一個矩陣,真的是平平無奇。這東西有啥可研究的呢?
對于矩陣,其實可以有兩種認識:
矩陣可以看作一個數的矩形表(大部分同學應該都是這么看的)
也可以看作一組列向量!(這個認識是后面線性空間等一系列知識的基礎)
而后者,是線性代數的基本思想之一。反過來也成立,向量的線性組合可以看作矩陣與向量的積。
我們現在重新給線性代數確定一下研究范圍:
它是研究可以表示為某一固定向量集合??的線性組合的所有向量的一門學科。
剛剛我們說了,我們可以把線性代數方程組表示為矩陣方程的形式:??。
這個方程表示什么意思呢?
可以這樣理解:在空間中有一個向量??,通過矩陣??的作用后,變成了向量?
這種理解,就揭示了矩陣的本質~
而矩陣的本質,可以看作是一種運動或者變換。
那么,事實上,一個??矩陣,就是描述n維線性空間到n維線性空間的線性變換(比如:拉伸, 壓縮,投影……)
2.2 再聊一下矩陣的運算
既然矩陣是一種變換,那么自然而然地,我們會想到兩個矩陣之間相互作用一下會有什么結果。這就自然地引出了矩陣的運算!
下面來看看矩陣的運算(不具體列舉公式了):
加法運算
標量乘法運算
乘法運算
記得我在第1節表粗的那句話嗎?——矩陣的最初目的,就是線性方程組的簡寫!
如果想要理解這些運算的規則,最好的方式是從線性方程組的角度考慮!
比如矩陣的加法運算:
如果你把它還原成線性方程組,那么加法運算不過是線性方程組中未知數的系數相加!
標量乘法和乘法也都可以從線性方程組去理解。
當你知道了這些運算規則之后,可以代入矩陣的幾何意義進行理解~
比如矩陣的乘法運算:??。
進行一次變換(??),在進行一次變換(??),相當于進行了(??)變換。(你也可以這樣理解矩陣的乘法的幾何意義:兩次變換的疊加)
(但注意:??)
然后,既然矩陣是一種變換,那么自然而然地也有逆向的變換,這個變換就是矩陣的逆。
……………………緩一口氣,稍微理解一下的分割線……………………
2.3 一個重要的概念——矩陣的逆
我們在矩陣運算中,研究了兩個或多個矩陣相互作用所達成的效果。
矩陣的逆類似于一個數的倒數,你看矩陣逆的定義:
如果滿足:
(??是一個對角線均為1,其他位置為0的矩陣,簡稱單位矩陣)
那么,矩陣就是可逆的,且逆矩陣記為?
如果用幾何的觀點來理解,矩陣的逆就是一個反向變換
比如:
若 A表示順時針旋轉90°的話,那么??就表示逆時針旋轉90°
你看:
經過矩陣??變換,在經過矩陣??變換,又變為原來的矩陣。
那么,如果矩陣A是可逆的,可逆矩陣又稱為非奇異矩陣。
接下來,很自然的想法就是——
矩陣可逆是否有辦法判斷呢?
2.4 行列式
有一個辦法——那就是通過行列式!(這不是唯一的辦法,還可以通過矩陣的秩……)
這里又引入了一個極其重要的概念,它一開始可能僅僅是判斷矩陣可逆與否,但后來,數學家逐漸發現了更多作用和意義。
下面我們說說行列式。
行列式的定義看起來很難懂
看看,這是人能記住的么!
當然,如果從低階往高階推廣,還是稍微有點助記作用。
我們知道,如果一個矩陣行列式不為零,那么這個矩陣可逆。
但是不要著急,行列式可不會這么簡單~
我們看這個稀奇古怪的東西雖然一頭霧水,但數學家經過仔細思考后發現:
?其實描述了矩陣??的列確定的平行四邊形的面積(??為??矩陣時)
或者由??確定的平行六面體的體積(??為??矩陣時)
所以,推而廣之啊,行列式的本質就出來了!
行列式的幾何性質(本質),是描述n維線性空間中線性變換“大小”的量
……………………………上面的論述請多理解一下哈…………………………
比如在2維空間中,我可以推導出這樣一個定理:
設??是一個由??矩陣??確定的線性變換,若??是這個??空間中的一個平行四邊形,則
請好好理解上面的事實,有助于逆理解行列式~
好了,回過頭來看看矩陣可逆這回事。
想象一下,在一個二維平面上,如果一個A矩陣把一個平行四邊形a變成另一個b,這個矩陣A的行列式可以理解為放大的倍數。
當行列式=0的時候,就把這個平行四邊形a的面積就變沒了!(一條線的面積是0)那肯定沒有逆矩陣可以把這條線再變回原來的向量了。
因此,“矩陣A可逆” 完全等價于??不難理解。
講了這么多,似乎只說了線性代數中一點點微不足道的概念。那么,我們還聽說過矩陣分解,譜半徑,條件數……一大堆稀奇古怪的東西,那些是怎么來的?
不要著急,所有的事情都不會是無來由的。
下面我說的這個問題很關鍵,這也是線性代數中無數稀奇古怪的知識的來源。
? ?3.真實世界中,線性方程組的數值解法
3.1 線性方程組的一般解法
在一開始說起線性方程組的時候,我們說了真實世界中求解線性方程組和我們在學校中做的一樣,采用行化簡得方法進行求解。(就是我在開頭說后面會用到的那個知識點)
我們對這種方法簡稱為線性方程組的直接數值解法,包括Gauss消去法,列主元Gauss消去法,Gauss-Jordan消去法……
當然,既然有直接的解法,自然還有間接的解法,也就是迭代法,包括Jacobi迭代法,Gauss-Seidle迭代法等(這個暫不討論)
那么,在運算過程中,什么是最重要的?
精度和運算量!
我們一定要記住,真是世界的問題是充滿了誤差并且計算力有限的。
我直接告訴你結論:以上三種消去法計算線性方程組的運算量都是??,(n為變量個數)
這里有一個很有趣的知識點,當年一直覺得很無聊,所以特意拿出來說說。
3.2 矩陣的分解
將矩陣分解為兩個或更多個矩陣的乘積。
那么,為什么要引入矩陣的分解呢?其實還要從真實世界說起。
我們以一個最常見的矩陣分解——LU分解為例先說說
?,其中??是一個下三角矩陣(對角線元素全為1),??是一個上三角矩陣
那么,線性方程組
就可以變成:
這樣,就可以拆解為:
好吧,一個方程變成了兩個。正像你看到的,矩陣分解就是這么無聊,似乎沒啥用處。可是,事實并非如此——
我們來看看矩陣??分解的計算量。如果你去解一個方程組,??分解的運算量是多少呢?哦,沒錯,也是?
似乎在運算上也不比其他方法強是吧
但是,要知道,我們現實生活中遇到的問題,往往不是一錘子買賣。
比如,你考慮
這樣一個由m個方程組組成的系列(這種問題很常見,我們常常把新的數據帶入到已有的模型里),那矩陣的LU分解就顯現出它的威力了!
LU分解的方法只需要作一次LU分解,然后做m次解三角方程(m為方程組系列中方程組的數目)
比之前說的那幾種消去法的運算量少了??次運算!
這就是LU分解的真實意義所在。
那么我們再看一個真實世界的例子:
3.3 一個有趣的小問題:蝴蝶效應,以及所引出的條件數,矩陣范數……在實際問題中,線性方程組是由計算機求解的。
但要知道,計算機一般把數字用浮點數來表示,數位通常為8-16位,這樣就給線性方程組的求解引入了誤差
插播一句:為什么理論家沒辦法治國?因為現實世界是充滿了誤差和摩擦力的,而理論家往往并不考慮這些。
我們都聽說過“蝴蝶效應”。微小的初始誤差有可能導致巨大的結果差異。
其實,在求解線性方程組中我們就會遇到這樣的問題。
比如這樣一個方程組:
這個方程的解是?
我們再看這個方程組:
這個方程組的解是多少呢?乍一看,應該和上一個差不多吧?
可惜,差得有點多!不要眨眼睛~它的解是:
這就說明:
初始條件(A)的微小擾動,造成的結果有巨大的差異!
……………緩一口氣,稍微理解一下的分割線………………
我們不妨把這類方程組叫做“蝴蝶效應”方程組(它的正確稱呼應該是“病態的”方程組,但這個名字沒有我起的名字那么浪漫不是)
那么,我們如何確定這個方程組是這種“蝴蝶效應”方程組呢?這里引入一個概念——條件數(??)
而條件數的定義又則涉及到了矩陣的范數。
其實,范數的引入是很自然的,我們描述一個“數”的大小,用“數值”,描述一個向量的長度(歐式距離),用“歐氏距離”,那么如果我想描述矩陣的“大小”(姑且這樣說)該用什么?
用到的就是范數。
范數可以看作抽象的“大小”。而不同的范數可以看作不同度量方式。
范數,譜半徑,條件數,甚至特征值這些東東統統都是在研究現實問題中逐漸開發出來的新東西。
? ?總結
所以,到此稍微總結一下吧:
看了這么多,其實我相信你對線性代數已經有了一個初步的認識了。它就是一門從研究線性方程組起家的學問。當然,后續抽象的部分,比如向量空間,矩陣的秩等等在這里都沒有涉及。但我相信,如果你明白了矩陣的一些基本事實,以及他們的來龍去脈,弄懂那些知識并不難~
最后,祝大家好好學習,天天向上~
—完—
為您推薦
IoU、GIoU、DIoU、CIoU損失函數的那點事兒
GitHub重大更新:在線開發上線,是時候卸載IDE了
史上最爛的項目:苦撐12年,600多萬行代碼...
數據分析入門常用的23個牛逼Pandas代碼
知乎高贊:985計算機視覺畢業后找不到工作怎么辦?
總結
以上是生活随笔為你收集整理的ker矩阵是什么意思_直观理解!你一定要读一下的“矩阵和线性代数入门”的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 近视眼
- 下一篇: 如何设置文件夹背景色为全黑色