第五章 線性代數(shù)
前言
到數(shù)學(xué)部分就深刻的感受到自己的菜 QAQ抱环,不過沒關(guān)系贤惯,這也說明了這篇文就很適合跟我一樣的菜看伤哺。
每一行都在上演小劇場(chǎng)
- 咦燕侠,這是為啥?
- 哇立莉。好神奇呀~
- 哎贬循,這又是啥?
- 哇桃序。好神奇哎~
5.1 行列式
比如向量 ,向量 烂瘫,那么行列式 媒熊。
二維的行列式就是 面積,如下圖坟比, 就是圖中平行四邊形的面積芦鳍。
三維的行列式就是 體積,如下圖葛账, 就是圖中立方體的體積柠衅。
縮放 其中一個(gè)向量會(huì) 等比例 改變整個(gè)行列式代表的面積的大小,如圖所示:
于是有下面的公式:
錯(cuò)切 一個(gè)向量不會(huì)改變面積菲宴,因?yàn)榈缀透邲]變呀~ 如下圖所示:
所以有如下公式:
行列式滿足 “分配律”,如下圖所示趋急,左邊粗線所圍成的區(qū)域面積是和右邊粗線所圍成的區(qū)域面積是一樣的喝峦。
所以有如下公式:
向量也可以用 笛卡爾坐標(biāo)系 來表示,比如 可以表示為 呜达,有如下運(yùn)算:
二維:
三維:
(MarkDown 寫公式好累呀)
5.2 矩陣
矩陣可以不是方的撬槽,行列式必須是方的此改。但這里的矩陣我們依然只討論方的。
矩陣 數(shù)乘:
矩陣 相加:
矩陣 相乘:
矩陣 交換律:
矩陣 等號(hào)兩邊同除:
也就是說即使 侄柔, 也不一定等于 共啃。
矩陣 結(jié)合律:
矩陣 分配律:
矩陣的 逆:
逆這個(gè)字的理解可以想象 ,這里的 在矩陣中是單位向量而已暂题,一般用 來表示:
有以下公式:
矩陣的 轉(zhuǎn)置:
不管是不是方的矩陣移剪,都是在心里補(bǔ)全成方的,然后按對(duì)角線對(duì)稱一下就好了:
轉(zhuǎn)置有以下性質(zhì):
矩陣和行列式 有以下的性質(zhì):
矩陣和 向量:
我們可以通過一個(gè)向量和矩陣相乘來以一定規(guī)則改變這個(gè)向量薪者,比如將點(diǎn) 逆時(shí)針旋轉(zhuǎn) 90°纵苛,那么也可以寫成如下的形式,這里的 其實(shí)是 言津,具體怎么來的暫時(shí)不需要知道攻人,后面會(huì)學(xué)到。
向量寫在矩陣后面是目前的標(biāo)準(zhǔn)形式纺念,也有老的書上是向量寫在矩陣前面的贝椿,那需要將矩陣進(jìn)行轉(zhuǎn)置,如下所示:
使用矩陣表示向量 點(diǎn)乘(內(nèi)積):
使用矩陣表示向量 叉乘(外積):
對(duì) 矩陣乘向量 的理解:
首先陷谱,把概念具象化烙博,假設(shè)有一個(gè) ,展開來是這樣的:
然后可以從兩個(gè)角度來思考烟逊,把這個(gè) 的矩陣分成三行:
也就是每一行都對(duì) 做了內(nèi)積渣窜。
把這個(gè) 的矩陣分成三列:
對(duì)角矩陣:所有非零元素都出現(xiàn)在對(duì)角線上的矩陣
對(duì)稱矩陣:滿足
(注意,對(duì)角矩陣一定是對(duì)稱矩陣宪躯,但對(duì)稱矩陣不一定是對(duì)角矩陣乔宿,比如說 。)
正交矩陣:每一行都當(dāng)成一個(gè)向量访雪,模都為 1详瑞,并且向量之間兩兩正交掂林;對(duì)于每一列也是一樣;并且正交矩陣的行列式值為 1 或者 -1坝橡;正交矩陣的逆矩陣就是他們的轉(zhuǎn)置泻帮,有 ,這很容易理解计寇,因?yàn)樵诜菍?duì)角線上都是正交的向量的內(nèi)積锣杂,而在對(duì)角線上則是向量自身內(nèi)積,也就是向量取模番宁。
(注意:正交矩陣跟對(duì)角矩陣和對(duì)稱矩陣沒關(guān)系... 是正交矩陣不能說明他們就是對(duì)角或者對(duì)稱的)
單位向量 既是對(duì)角矩陣元莫,又是對(duì)稱矩陣,還是正交矩陣蝶押。
5.3 矩陣與行列式的計(jì)算
行列式的 轉(zhuǎn)置 與本身相同踱蠢,可以從面積上理解:
理解行列式的 幾何意義 是很有意思的,比如下面的行列式是代表了經(jīng)過 的平面。很好理解离陶,因?yàn)樗砹艘?img class="math-inline" src="https://math.jianshu.com/math?formula=%5Coverrightarrow%7BOA%7D%EF%BC%8C%5Coverrightarrow%7BOB%7D%EF%BC%8C%5Coverrightarrow%7BOC%7D" alt="\overrightarrow{OA},\overrightarrow{OB}衅檀,\overrightarrow{OC}" mathimg="1"> 為邊所圍成的立方體的體積招刨,但體積為零,所以三向量共面哀军。
拉普拉斯展開 計(jì)算行列式:
先求余因子沉眶,比如下面的 行列式, 位置上的 余因子杉适,就是 谎倔,也就是把自身所在行和列 去掉 之后組成一個(gè)新的行列式。因?yàn)? 的下標(biāo)和為 猿推,是偶數(shù)片习,所以余因子的符號(hào)是正的,如果下標(biāo)和是奇數(shù)蹬叭,則余因子的下標(biāo)和是負(fù)的藕咏。加了正負(fù)號(hào)的余因子也叫作 代數(shù)余因子,寫作
求出代數(shù)余因子之后秽五,可以用任意一行或者任意一列進(jìn)行展開孽查,上面例子假設(shè)是使用的第二列展開,那么結(jié)果為:
再看一個(gè)帶數(shù)字的坦喘,維度少一點(diǎn)的例子 ~ 是以第一行展開的盲再。
因?yàn)樾辛惺浇Y(jié)果為 0西设,所以我們可以判斷由每一行(或者每一列,因?yàn)樾辛惺脚c其轉(zhuǎn)置相同)為向量構(gòu)成的立方體體積為 0答朋。這也就等于說每一行(或者每一列)向量都不是線性獨(dú)立的二鳄,也就是存在一個(gè)向量可以由其他向量線性表示蓄坏。在這里就是
矩陣的 逆 的計(jì)算,公式為:
其中 叫做 的 伴隨矩陣,他是對(duì)應(yīng)位置上 代數(shù)余因子(有正負(fù)號(hào)) 組成的矩陣的 轉(zhuǎn)置亚隙。
其實(shí)很好理解(書上說的,我拿來裝逼一下... )摹恨,對(duì)于在 的對(duì)角線上的運(yùn)算登下,其實(shí)就是在求 ,所以求出來之后再 淹冰,對(duì)角線上就都是 了库车,如下所示:
對(duì)于不在對(duì)角線上的運(yùn)算,假設(shè)用 的第二行去乘伴隨矩陣的第一列:
展開來的計(jì)算如下:
這個(gè)為什么就等于零呢樱拴?我們構(gòu)建另外一個(gè)矩陣 :
現(xiàn)在假設(shè)以 第一行 進(jìn)行拉普拉斯展開求矩陣 對(duì)應(yīng)的行列式的值柠衍,那么計(jì)算過程應(yīng)該為:
很神奇,這個(gè)式子跟上面的是一樣的晶乔,而矩陣 的結(jié)果可以直接判斷是 珍坊,因?yàn)榈谝恍泻偷诙惺且粯拥模簿褪钦f他組成的空間幾何體有兩條邊是一樣的正罢,那么體積自然為 阵漏。
再看一個(gè)帶數(shù)字的例子驗(yàn)證鞏固一下 ~
這種求逆矩陣的運(yùn)算適用于任何矩陣,不只是 的翻具,這里只是為了方便排版履怯;并且這種方式對(duì)于大型矩陣來說效率并不高,但在圖形學(xué)中一般都是小矩陣裆泳,所以并沒有多大影響叹洲。
用矩陣來表示和計(jì)算 線性方程(一次方程),下面是一個(gè)常見的線性方程組:
我們可以用矩陣來表示:
還可以用更簡(jiǎn)單的寫法 工禾,其中 是所有已知的常數(shù)組合运提,也就是上面 的矩陣, 是所有未知數(shù)的列矩陣闻葵,也就是上面的 糙捺, 是已知的常數(shù)列矩陣,也就是上面的 笙隙。
雖然有很多種解法洪灯,但是因?yàn)閳D形學(xué)中的矩陣維度都 ,所以只介紹一種,叫做 克萊姆法則(Cramer's Rule)签钩,上述方程的解法是:
規(guī)則就是掏呼,分母是 ,分子是 替換了 中的某一列所產(chǎn)生的的行列式,被替換的列的位置是未知數(shù)的位置铅檩,比如說 在未知數(shù)列矩陣中排 第二憎夷,所以它的分子的 第二列 被 替換了。如果 (奇異矩陣) 的話昧旨,那么除法將沒有意義拾给,也就是意味著沒有該方程組沒有唯一解。
5.4 特征值與矩陣對(duì)角化
矩陣 的特征向量 和特征值 (lambda) 滿足 兔沃,這也就意味著經(jīng)過了 的變換(有可能是旋轉(zhuǎn)蒋得,縮放等),向量 的方向不變乒疏。我們先假設(shè) 存在特征向量和特征值额衙,那么有如下過程:
因?yàn)槲覀兗僭O(shè)特征向量存在,所以 怕吴,所以有 窍侧,為了方便表述,我們假定 是 的转绷,那么有如下式子:
都是已知的伟件,所以我們可以知道 有兩個(gè)值(有可能是重根,實(shí)數(shù)或者復(fù)數(shù))议经。對(duì)于 對(duì)稱矩陣 ()來說锋爪,如果矩陣內(nèi)都是 實(shí)數(shù),那么它的特征值也都是 實(shí)數(shù)爸业,如果兩個(gè)特征值不同的話,那么它的兩個(gè)特征向量就是 正交 的亏镰,求出特征向量和特征值之后扯旷,可以把 寫成 的形式。其中 是一個(gè)正交矩陣索抓, 是對(duì)角矩陣钧忽, 的每一列是一個(gè)特征向量, 的對(duì)角線是特征值逼肯。把 變成這種形式也叫作 特征值分解耸黑。
帶數(shù)字的練習(xí)來驗(yàn)證一下理解是否出現(xiàn)偏差:
求出了兩個(gè)特征值 ,然后分別帶回原來的式子求對(duì)應(yīng)的特征向量篮幢,結(jié)果為 (注意這里的是非平凡解大刊,不是 ),可以看到確實(shí)是正交的三椿,并且對(duì)于每一個(gè)特征向量缺菌,其實(shí)都是無數(shù)個(gè)平行的向量葫辐,這里只是取了單位向量而已。
最后寫成 的形式:
上面的特征值分解只針對(duì)對(duì)稱矩陣伴郁,對(duì)于非對(duì)稱矩陣耿战,特征值分解不太好搞(?)焊傅,而且即使 全是實(shí)數(shù)的剂陡,也可能會(huì)出現(xiàn)復(fù)數(shù)的特征值和特征向量。所以針對(duì)非對(duì)稱矩陣(甚至 不是 方的矩陣)狐胎,我們一般使用 奇異值分解(singular value decomposition (SVD)) 鸭栖, 將會(huì)被分解成 ,這與特征值分解的區(qū)別在于左邊和右邊的正交矩陣不再是同一個(gè)顽爹。
和 可能是不同的正交矩陣纤泵, 的列是 的左奇異向量, 的列是 的右奇異向量镜粤, 的對(duì)角線是 的奇異值捏题。當(dāng) 是對(duì)稱矩陣,并且所有特征值都是非負(fù)的時(shí)候肉渴,那么奇異值分解跟特征值分解沒有什么不同公荧。首先我們定義 (注意我們要求的還是 , 只是我們構(gòu)造出來的對(duì)稱矩陣同规,并且這樣構(gòu)造出來的矩陣一定是對(duì)稱的循狰,因?yàn)?),并假設(shè)我們可以對(duì)矩陣 進(jìn)行 SVD:
以上式子是基于三條定理(上面都提過的):
- 绪钥, 是正交矩陣
- ,是對(duì)角矩陣
看到 的形式关炼,有木有恍然大悟~ 這其實(shí)就是 的特征值分解程腹, 相當(dāng)于上面的 , 相當(dāng)于上面的 儒拂。所以我們發(fā)現(xiàn) 矩陣的奇異值就是它和自身轉(zhuǎn)置的乘積的特征值的平方根寸潦,左奇異向量就是它和自身轉(zhuǎn)置的乘積 () 的特征向量,右奇異向量就是自身轉(zhuǎn)置和自身乘積 ()的特征向量社痛。
做個(gè)題鞏固一下:
是上一節(jié)的矩陣见转,我們知道它的特征值為 ,特征向量為 蒜哀。所以 ,所以 。又因?yàn)?校焦,所以將 帶入得:
將稍微變換一下形式成:
是對(duì)角矩陣赊抖,所以 就是在對(duì)應(yīng)位置上的倒數(shù)。我們使用 (sigma)來標(biāo)記奇異值再說一次~寨典,對(duì)于對(duì)稱矩陣來說氛雪,奇異值和特征值是沒有區(qū)別的。
常見問題解答(FAQ)
為什么矩陣乘法要定義成這個(gè)亞子耸成,不能對(duì)應(yīng)元素相乘嘛报亩?
答:為了良好的計(jì)算屬性,為了方便(我 瞎翻譯 的井氢,不過大概就是這個(gè)意思弦追,感興趣可以去看原文)有時(shí)特征值和奇異值是一回事,有時(shí)一個(gè)是另一個(gè)的平方花竞。哪個(gè)是對(duì)的?
答:對(duì)于 實(shí)數(shù)對(duì)稱矩陣劲件,并且它的特征值不是負(fù)數(shù),那么它的特征值和奇異值就是一樣的约急。如果 不是對(duì)稱的零远,就構(gòu)建 , 是對(duì)稱的并且有非負(fù)的特征值厌蔽,并且 和 的特征值是一樣的牵辣,為 的特征值(奇異值)的平方根。
作業(yè)中的定理
- 如果矩陣的列是正交的奴饮,那么行也是正交的
- 對(duì)角矩陣的奇異值使其對(duì)角元素
- 對(duì)于三個(gè) 3D 向量 纬向,存在
- 組成的空間 四面體 的體積是