Shader筆記——3D數(shù)學(xué)基礎(chǔ)

1.0 坐標(biāo)與坐標(biāo)系

1.1 坐標(biāo)及坐標(biāo)系的概念

在3D世界中绣硝,為了確定不同頂點(diǎn)所在的位置,需要使用坐標(biāo)表示,二坐標(biāo)的數(shù)值是基于一個固定的參照點(diǎn)進(jìn)行定位的勺三,這個點(diǎn)就是坐標(biāo)原點(diǎn)。

通常情況下需曾,原點(diǎn)的坐標(biāo)一般都是(0吗坚,0)祈远。

如果把所有的坐標(biāo)匯集在一起管理,那就構(gòu)成了一個坐標(biāo)系商源。一個完整的坐標(biāo)系會包含原點(diǎn)车份,方向和坐標(biāo)。

1.2 3D中的坐標(biāo)系

3D中涉及各種坐標(biāo)系牡彻,從維度進(jìn)行區(qū)分扫沼,所有坐標(biāo)系可以分為平面直角坐標(biāo)系和空間直角坐標(biāo)系。

  • 平面直角坐標(biāo)系庄吼,是在一個平面上定位的坐標(biāo)系缎除,坐標(biāo)系由互相垂直的橫,縱坐標(biāo)軸組成总寻。平面直角坐標(biāo)系中的坐標(biāo)通常表示為(x,y)器罐,模型UV,屏幕空間都是二維坐標(biāo)系。如圖:


    平面直角坐標(biāo)系
  • 空間直角坐標(biāo)系在平面直角坐標(biāo)系的基礎(chǔ)上添加了一個維度——深度废菱,空間直角坐標(biāo)系又互相垂直的三個坐標(biāo)軸組成技矮。空間直角坐標(biāo)系中的坐標(biāo)通常表示為(x,y,z)殊轴,模型空間衰倦,世界空間,裁剪空間等都是空間直角坐標(biāo)系旁理。如圖:


    空間直角坐標(biāo)系

1.3 左右手坐標(biāo)系

在空間坐標(biāo)系中樊零,根據(jù)坐標(biāo)方向的不同又可以分為左手坐標(biāo)系和右手坐標(biāo)系。

  • 左手坐標(biāo)系:伸出左手孽文,讓大拇指和食指擺成“L”型驻襟,然后將中指指向大拇指和食指所在的平面。
  • 右手坐標(biāo)系:伸出右手芋哭,讓大拇指和食指擺成“L”型沉衣,然后將中指指向大拇指和食指所在的平面。

若將大拇指設(shè)定為x軸减牺,食指設(shè)定為y軸豌习,中指設(shè)定為z軸,左右手坐標(biāo)系如圖:


左右手坐標(biāo)系

倆種不同的坐標(biāo)系沒有優(yōu)劣之分拔疚,可以根據(jù)不同的領(lǐng)域或者使用場景選擇適合的坐標(biāo)系肥隆。如Unity,Unreal稚失,3D Max是左手坐標(biāo)系栋艳,而Maya是右手坐標(biāo)系。

2.0 向量

在數(shù)學(xué)中句各,坐標(biāo)屬于標(biāo)量吸占,只表示大小晴叨,不表示方向。
而同時表示長度和方向信息的旬昭,稱之為向量(Vector)篙螟,或者叫“矢量”。頂點(diǎn)的法線向量问拘,切線向量等都是向量。

2.1 向量的表示方法

  1. 向量可以使用粗體小寫字母表示惧所,比如a,b.
  2. 在幾何中骤坐,向量可以在空間直角坐標(biāo)系中通過帶有箭頭的線段形象地表示出來。
    向量從起點(diǎn)開始繪制下愈,指向向量的終點(diǎn)纽绍。線段的長度就是向量的長度,而箭頭所指的方向就是向量的方向势似。如圖:


    空間坐標(biāo)系中的向量
  3. 在代數(shù)中拌夏,向量可以通過數(shù)對的方式表示,如(x,y,z)履因,分別表示向量的x分量障簿,y分量和z分量。

2.2 向量的計算方法

假設(shè)二維向量a的起點(diǎn)A栅迄,終點(diǎn)為B站故,使用B的坐標(biāo)減去A的坐標(biāo),即可計算出個向量a毅舆。
二維向量a的計算公式如下:

二維向量計算公式

若將公式推廣到三維空間西篓,假設(shè)三維向量a的起點(diǎn)A,終點(diǎn)B憋活,則三維向量a的計算公式如下:

三維向量計算公式

因為向量本身不包含位置信息岂津,因此可以將向量移動到坐標(biāo)系的任何位置,最終的到的向量與之前的向量完全相等悦即。因此可以將所有向量的起點(diǎn)都設(shè)定成坐標(biāo)原點(diǎn)吮成,而終點(diǎn)的坐標(biāo)就是向量本身。如圖:


平移向量

2.3 相反向量

如果倆個向量的長度相等但方向相反盐欺,則這倆個向量互為相反向量赁豆。

零向量的相反向量是它本身。

從幾何的角度來講冗美,將一個向量的起點(diǎn)作為終點(diǎn)魔种,而原本的終點(diǎn)作為起點(diǎn),最終得到的向量就是原向量的相反向量粉洼。

假設(shè)向量a的起點(diǎn)A节预,終點(diǎn)B叶摄,a的相反向量b,表示如下:

相反向量

因此安拟,向量a的相反向量為-a蛤吓,即乘以-1。

2.4 向量的模

向量包含長度和方向糠赦,向量的長度被稱為向量的模会傲。如向量a的模表示為|a|。

如圖通過勾股定理拙泽,求得


直角坐標(biāo)系計算向量的模長

二維向量a的模長計算公式為:

二維向量模長計算公式

向量的模一定是非負(fù)數(shù)淌山,而零向量的模為0。

如圖通過倆次勾股定理顾瞻,求得

空間坐標(biāo)系向量的模長

三維向量a模的計算公式為:
三維向量模長計算公式

2.5 標(biāo)準(zhǔn)化向量

“單位向量”是指模長為1的向量泼疑。
在很多情況下向量的方向比向量的長度更值得關(guān)注,如燈光的照射方向荷荤,攝像機(jī)的查看方向等退渗。為了計算方便,可將這種向量轉(zhuǎn)變?yōu)閱挝幌蛄吭棠桑@個轉(zhuǎn)變的過程稱為向量的標(biāo)準(zhǔn)化(Normalize)会油。

從代數(shù)的角度來講,一個非零向量除以自身的長度袱蚓,既可以將自身長度縮放為1钞啸。零向量的長度為0,在數(shù)學(xué)中0作為被除數(shù)沒有意義喇潘。
因此非零向量a的標(biāo)準(zhǔn)化向量為:

非零向量**a**的標(biāo)準(zhǔn)化

單位向量與原向量相比体斩,只是長度發(fā)生了改變,方向保持不變颖低。

2.6 向量運(yùn)算

2.6.1 向量的加法運(yùn)算

從幾何的角度來講絮吵,向量的加法運(yùn)算滿足三角形法則。


向量的加法運(yùn)算幾何表示

向量的加法運(yùn)算可以推廣到多個數(shù)量相加忱屑,最終結(jié)果是從第一個向量的起點(diǎn)指向最后一個向量的終點(diǎn)蹬敲,長度為起點(diǎn)與終點(diǎn)之間的距離。

從代數(shù)的角度來講莺戒,向量的加法就是將相同的分量進(jìn)行相加伴嗡。


向量的加法運(yùn)算代數(shù)表示

2.6.2 向量的減法運(yùn)算

向量的減法運(yùn)算可以理解為一向量與另一向量的相反向量做加法運(yùn)算,同樣滿足三角形法則从铲。
向量ab的減法運(yùn)算轉(zhuǎn)變?yōu)榕c相反向量的加法運(yùn)算:

向量的減法運(yùn)算

向量的減法運(yùn)算幾何表示

相同起點(diǎn)的倆個向量相減瘪校,得到的向量為第二個向量的終點(diǎn)指向第一個向量的終點(diǎn),長度為倆終點(diǎn)之間的距離。

從代數(shù)的角度來講阱扬,向量的減法運(yùn)算就是將相同的分量相減劲阎。計算公式如下:


向量的減法運(yùn)算代數(shù)表示

2.6.3 標(biāo)量與向量相乘

將向量乘以一個標(biāo)量餐胀,可產(chǎn)生向量縮放的效果痢甘。如圖:

向量的縮放

假設(shè)向量a=(x,y,z),向量縮放k倍公式為:

向量的縮放

2.6.4 向量的點(diǎn)積運(yùn)算

向量ab的點(diǎn)積寫作a.b宪拥。
在代數(shù)中,點(diǎn)積又叫做內(nèi)積窃蹋,倆個向量點(diǎn)積的結(jié)果就是對應(yīng)所有分量相乘之后的和卡啰。點(diǎn)積的結(jié)果是數(shù)值。
點(diǎn)積計算公式為:

點(diǎn)積計算公式代數(shù)表示

在幾何中脐彩,倆個向量點(diǎn)積的結(jié)果就是一個向量在另外一個向量上的投影長度與這個向量長度的積碎乃。
點(diǎn)積的計算公式為:


點(diǎn)積計算公式幾何表示

向量投影

點(diǎn)積運(yùn)算的幾何意義用來判斷倆個向量的相似程度,倆個向量越相似惠奸,點(diǎn)積的結(jié)果越大,當(dāng)倆個向量的方向方向完全一致時恰梢,點(diǎn)積的結(jié)果是最大的佛南。因此可以根據(jù)點(diǎn)積結(jié)果的正負(fù)號大致判斷這倆個向量的方向是否一致。
當(dāng)向量之間的夾角小于90°嵌言,點(diǎn)積結(jié)果為正嗅回,等于90°,點(diǎn)積結(jié)果為0摧茴,夾角大于90°绵载,點(diǎn)積結(jié)果為負(fù)。


余弦函數(shù)曲線

2.6.5 向量的叉積計算

向量的叉積又稱為外積苛白,叉積的結(jié)果是向量娃豹。向量ab的叉積寫作a × b
叉積的計算公式為:

叉積計算公式代數(shù)表示

在幾何中购裙,叉積得到的向量與ab所在平面垂直懂版,長度等于向量ab組成的平行四邊形的面積,該向量被稱為法向量躏率。如圖:

叉積計算公式代數(shù)表示

法向量方向:使用右手定則躯畴,首先伸出右手,并豎起大拇指薇芝,并將其余的四個手指握緊蓬抄。如圖:

通過右手定則確定向量方向

以最小角度旋轉(zhuǎn)向量a,使其與向量b的方向一致夯到,四個手指朝向如上圖嚷缭,大拇指所指的方向就是法向量的方向。
法向量的長度:也就是平行四邊形的面積黄娘,因此法向量的模長計算公式為:
法向量的模長計算公式

假設(shè)將叉乘的倆個向量顛倒順序峭状,ba叉乘所得向量的方向?qū)隆?br>

交換向量順序軸的右手定則

2.7 向量的運(yùn)算法則

常用的向量運(yùn)算法則如下所示:


向量運(yùn)算法則

3.0 矩陣

向量可以使用橫向排列的數(shù)組表示克滴,假設(shè)縱向上繼續(xù)排列相同維度的數(shù)組,最后組成的數(shù)組就是——矩陣(Matrix)优床。

3.1 矩陣的表示方法

向量的維度表示表示該向量所包含數(shù)的個數(shù)劝赔,同樣的,矩陣的維度表示了該矩陣所包含的行和列的數(shù)量胆敞。通常使用r(raw的首字母縮寫)表示行數(shù)着帽,使用c(column的首字母縮寫)表示列數(shù),而矩陣本身則使用黑斜體大寫字母表示移层,如M仍翰。
一個3×3的矩陣M以及所對應(yīng)的所有分量可以如下表示:

3×3的矩陣

3.2 方陣和單位矩陣

行數(shù)和列數(shù)相等的矩陣稱為方陣。
方陣中行號和列號相等的分量稱為對角元素观话,其他分量稱為非對角元素予借。非對角元素全為0的矩陣稱為對角矩陣。


對角矩陣

在對角矩陣中频蛔,對角元素全為1的矩陣叫作單位矩陣灵迫。


單位矩陣

任何矩陣乘以單位矩陣,最終得到的結(jié)果與原矩陣相同晦溪。單位矩陣對于矩陣的作用就像1對于標(biāo)量的作用一樣瀑粥。

3.3轉(zhuǎn)置矩陣

假設(shè)將一個r×c的矩陣M沿著對角線翻轉(zhuǎn),得到的新矩陣稱為矩陣M的轉(zhuǎn)置矩陣(Transpose Matrix)三圆。

轉(zhuǎn)置矩陣

轉(zhuǎn)置矩陣的重要法則:將一個矩陣轉(zhuǎn)置之后再進(jìn)行轉(zhuǎn)置狞换,得到的矩陣與原矩陣相同,公式如下:


轉(zhuǎn)置矩陣法則

將一個矩陣轉(zhuǎn)置偶次后舟肉,得到的矩陣與原矩陣相同修噪。
所有對角矩陣的轉(zhuǎn)置矩陣都是原矩陣,單位矩陣也屬于對角矩陣度气,因此單位矩陣也符合該法則割按。

3.4 矩陣運(yùn)算

3.4.1 標(biāo)量與矩陣的相乘

跟向量類似,矩陣也可以與標(biāo)量相乘磷籍,中間不需要寫運(yùn)算符號适荣,相乘之后的結(jié)果與原矩陣維數(shù)相同,然后將每個分量乘上這個標(biāo)量院领。公式如下:


標(biāo)量與矩陣的相乘

3.4.2 矩陣之間的乘法

當(dāng)?shù)谝粋€矩陣的列數(shù)等于第二個矩陣的行數(shù)弛矛,這倆個矩陣才可以相乘,得到矩陣的行數(shù)等于第一個矩陣的行數(shù)比然,列數(shù)等于第二個矩陣的列數(shù)丈氓。


矩陣之間的乘法

矩陣乘法計算公式

3.4.3 矩陣與向量相乘

在Shader中,向量也可以與矩陣相乘,相乘的時候可以把向量看作行數(shù)為1或列數(shù)為1的矩陣万俗。

向量(x,y,z)可以橫向?qū)懗?×3的矩陣湾笛,被稱為行向量:


行向量

也可以寫成3×1的矩陣,被稱為列向量:


列向量

向量與矩陣相乘的幾何意義是實現(xiàn)向量的空間變換闰歪。

與矩陣相乘的時候是采用行向量還是列向量得到的結(jié)果是完全不同的嚎研,并且向量左乘矩陣還是右乘矩陣得到的結(jié)果也是截然不同。
<1> 行向量左乘矩陣:


行向量左乘矩陣

<2> 行向量右乘矩陣库倘,沒有意義:


行向量右乘矩陣

<3> 列向量左乘矩陣临扮,沒有意義:
列向量左乘矩陣

<4> 列向量右乘矩陣:
列向量右乘矩陣

結(jié)論:只有行向量左乘和列向量右乘,結(jié)果才有意義教翩,并且倆種情況所得到的結(jié)果完全不同杆勇。
行向量左乘矩陣,所得結(jié)果依然是行向量饱亿;
列向量右乘矩陣蚜退,所得結(jié)果依然是列向量。

3.5 矩陣的運(yùn)算法則

矩陣的運(yùn)算法則

4.0 矩陣變換

在3D中彪笼,所有的變換都是通過矩陣完成的关霸,包括常用的平移,旋轉(zhuǎn)杰扫,縮放,除此之外膘掰,還有坐標(biāo)空間之間的變換也是通過矩陣完成的章姓。

4.1矩陣變換向量的原理

假設(shè)向量v = (x,y,z),可以表示為


然后將每個向量寫成數(shù)值與單位向量相乘的形式:

觀察以上列向量可知识埋,每個單位向量其實表示的就是x,y,z軸的正方向凡伊。
假設(shè)+x,+y,+z軸的單位向量分別為p,q,r,于是上述公式可以簡寫為:

上述公式可以理解為:用向量pq窒舟,r將向量v進(jìn)行了變換系忙,向量pq惠豺,r被稱為基向量银还。
將這3個基向量打包成一個基向量集合,以一個3×3的矩陣進(jìn)行表示:

將任意向量(x,y,z)左乘以上述矩陣洁墙,計算如下:

上述的計算結(jié)果其實就是向量的加法運(yùn)算蛹疯,將相加的三個向量分離開:

可以發(fā)現(xiàn):上面使用向量與矩陣相乘得到的結(jié)果與向量v變換之后的結(jié)果相同。
因此可以這樣理解:矩陣對向量的變換等價于向量乘以矩陣热监。
假設(shè)a M=b,則可以說矩陣M把向量a變換為向量b捺弦。

4.2 旋轉(zhuǎn)矩陣

4.2.1 平面坐標(biāo)系中的旋轉(zhuǎn)矩陣

假設(shè)平面坐標(biāo)系的倆個坐標(biāo)向量分別為p = (1,0),q=(0,1),繞原點(diǎn)逆時針旋轉(zhuǎn)角度之后如圖:

將平面坐標(biāo)系逆時針旋轉(zhuǎn)

假設(shè)在平面坐標(biāo)系中逆時針旋轉(zhuǎn)表示正方向(通常情況下都是這樣),計算出旋轉(zhuǎn)軸的基向量,將基向量構(gòu)建矩陣列吼,于是實現(xiàn)旋轉(zhuǎn)角度的矩陣為:

4.2.2 左右手坐標(biāo)系的旋轉(zhuǎn)方向

左右手坐標(biāo)系中的旋轉(zhuǎn)方向完全不同幽崩,倆種坐標(biāo)系中的旋轉(zhuǎn)方向的判斷方法:先伸出與坐標(biāo)系對應(yīng)的那只手,握住旋轉(zhuǎn)軸并且保持大拇指的朝向與旋轉(zhuǎn)軸的正方向一致寞钥,其余四指的朝向即為旋轉(zhuǎn)的正方向慌申。如圖,弧線箭頭所示的方向即為右手坐標(biāo)系的旋轉(zhuǎn)正方向凑耻。


右手坐標(biāo)系旋轉(zhuǎn)正方向

左右倆種坐標(biāo)系對應(yīng)的旋轉(zhuǎn)方向歸納如下:


右手坐標(biāo)系旋轉(zhuǎn)方向

左手坐標(biāo)系旋轉(zhuǎn)方向

4.2.3 空間坐標(biāo)系繞x軸的旋轉(zhuǎn)矩陣

這里只講解繞坐標(biāo)軸旋轉(zhuǎn)的情況太示。
將空間坐標(biāo)系繞x軸旋轉(zhuǎn),空間坐標(biāo)系中的旋轉(zhuǎn)方向如圖:


將空間坐標(biāo)系繞x軸旋轉(zhuǎn)

x軸上的所有坐標(biāo)都不會發(fā)生改變香浩,從x軸正方向朝負(fù)方向觀察坐標(biāo)系类缤,y軸和z軸的旋轉(zhuǎn)情況完全跟平面坐標(biāo)系的旋轉(zhuǎn)情況一樣,如圖:


x方向的平面坐標(biāo)系

最終繞x軸旋轉(zhuǎn)角度的變換矩陣為:


4.2.4 空間坐標(biāo)系繞y軸的旋轉(zhuǎn)矩陣

空間坐標(biāo)系繞y軸的旋轉(zhuǎn)方向如圖:


將空間坐標(biāo)系繞y軸的旋轉(zhuǎn)

從y軸正方向朝負(fù)方向觀察坐標(biāo)系邻吭,x軸和z軸的旋轉(zhuǎn)情況如圖:


y方向的平面坐標(biāo)系

4.2.5 空間坐標(biāo)系繞z軸的旋轉(zhuǎn)矩陣

空間坐標(biāo)系繞z軸的旋轉(zhuǎn)方向如圖:


將空間坐標(biāo)系統(tǒng)繞z軸旋轉(zhuǎn)

從z軸正方向朝負(fù)方向觀察坐標(biāo)系餐弱,x軸和y軸的旋轉(zhuǎn)情況如圖:


z方向的平面坐標(biāo)系

4.3 縮放矩陣

縮放矩陣

4.4 平移矩陣

為什么要使用矩陣來表示平移,而不使用簡單的坐標(biāo)相加運(yùn)算呢囱晴?
這是因為通過矩陣可以將常用的平移膏蚓,旋轉(zhuǎn),縮放這三種變換合并成一個變換矩陣畸写,乘以這一個變換矩陣即可完成平移驮瞧,旋轉(zhuǎn),縮放這三種變換枯芬。

image.png

既然將變換矩陣擴(kuò)展成了齊次矩陣论笔,頂點(diǎn)坐標(biāo)自然也需要增加一維才可以與矩陣相乘。于是頂點(diǎn)坐標(biāo)最后增加一個分量w,將其擴(kuò)展成齊次坐標(biāo)千所。這里會產(chǎn)生 一個分歧狂魔,擴(kuò)展出來的w分量是按照平移矩陣的對角元素那樣補(bǔ)上1,還是按照第四列元素那樣補(bǔ)上0呢?
下面對這兩種情況分別進(jìn)行嘗試淫痰。
先計算w分量等于1的情況最楷,將頂點(diǎn)坐標(biāo)寫成矩陣的形式,左乘平移矩陣待错,計
算過程如下:



由此可知籽孙,相乘之后得到的結(jié)果與最開始使用加法運(yùn)算得到的結(jié)果一樣。
因此朗鸠,將w分量填充為1可以得到平移變換后正確的頂點(diǎn)坐標(biāo)蚯撩,并且變換之后的w分量依然為1。

那么將w分量填充為0結(jié)果會怎樣呢烛占?計算過程如下:



由此可知胎挎,相乘之后的結(jié)果與原頂點(diǎn)的坐標(biāo)一樣沟启,并且w分量依然為0。因
此犹菇,將w分量填充為0無法起到平移變換的作用德迹。
以上是通過運(yùn)算推導(dǎo)出的結(jié)論,下面從理論角度進(jìn)行解釋:頂點(diǎn)是有位置信
息的揭芍,而向量是沒有位置信息的胳搞,因此頂點(diǎn)可以進(jìn)行平移操作,而向量無論怎么平移称杨,得到的結(jié)果都是與原向量相同肌毅。
因此,當(dāng)w分量為0的時姑原,它表示一個向量悬而,而當(dāng)w分量為1時,它表示一個坐標(biāo)锭汛。

5.0 矩陣深入講解

5.1 矩陣的行列式

在任意方陣中都存在一個標(biāo)量笨奠,這個標(biāo)量就是該方陣的行列式。方陣M的行列式可以寫為|M|唤殴,注意般婆,只有方陣才會存在行列式,非方陣是沒有行列式的朵逝。

行列式的計算方法非常簡單:“將主對角線蔚袍、反對角線上的元素各自相乘,然后將主對角線上的元素積的和減去反對角線積的和”配名。

2×2矩陣的行列式:


2×2矩陣的行列式
2階矩陣行列式對角線

3×3矩陣的行列式:


3×3矩陣的行列式
3階矩陣行列式對角線

下文會講解一個計算高階矩陣行列式更簡單的方法页响。

5.2 余子式和代數(shù)余子式

如:3×3矩陣M如下:



3階矩陣的余子式

對于方陣M,給定行i段誊,列j元素的代數(shù)余子式等于相應(yīng)余子式的有符號行列式,計算公式如下:

余子式是一個矩陣栈拖,而代數(shù)余子式是有符號的行列式连舍,因此是一個標(biāo)量。

5.3 通過代數(shù)余子式計算行列式

從矩陣中選擇任意一行或者一列涩哟,對該行或者該列的每個元素都乘以該元素對應(yīng)的代數(shù)余子式索赏,這些乘積的和就是該矩陣的行列式。

假設(shè)3×3矩陣的行列式如下:


3×3矩陣

取第一行元素進(jìn)行舉例計算:



可以發(fā)現(xiàn)贴彼,通過代數(shù)余子式計算出來的3×3矩陣的行列式與前文計算結(jié)果相同潜腻。因此可以使用該方法進(jìn)行高維矩陣的行列式計算。

5.4 逆矩陣

通過矩陣將向量進(jìn)行變之后器仗,如果將這個變換“撤銷”呢融涣?這就需要使用逆矩陣童番。

逆矩陣的計算只能用于方陣,假如一個矩陣與另一個矩陣相乘威鹿,結(jié)果為單位矩陣剃斧,則這倆個矩陣互為逆矩陣。
驗證倆個矩陣是否為逆矩陣忽你,計算公式為:


用這個公式推導(dǎo)一遍矩陣變換之后的撤銷操作幼东,如下:


并非所有的矩陣都有逆。
如果一個矩陣有逆矩陣科雳,則稱這個矩陣是可逆的或者非奇異矩陣根蟹;
如果一個矩陣沒有逆矩陣,則稱這個矩陣是不可逆的或者奇異矩陣糟秘。

奇異矩陣的行列式為0简逮,非奇異矩陣的行列式不為0。
因此檢測一個矩陣是否有逆矩陣可以通過檢測其行列式是否為0蚌堵。

那么如何計算一個矩陣的逆矩陣呢买决?
這里就需要引進(jìn)一個新的專有名詞——標(biāo)準(zhǔn)伴隨矩陣。

矩陣M的標(biāo)準(zhǔn)伴隨矩陣可以表示為“adjM”吼畏,它是M代數(shù)余子式矩陣的轉(zhuǎn)置矩陣督赤。
即:計算出矩陣M每個元素的代數(shù)余子式,然后將這些數(shù)值構(gòu)建成一個新的矩陣泻蚊,這個矩陣的轉(zhuǎn)置矩陣就是adjM躲舌。

得到標(biāo)準(zhǔn)伴隨矩陣之后,除以矩陣M的行列式就可以得到矩陣M的逆矩陣性雄,計算公式如下:

3×3矩陣M如下:


計算每個元素的代數(shù)余子式:

得到每個元素的代數(shù)余子式之后没卸,計算矩陣M的標(biāo)準(zhǔn)伴隨矩陣為:
得到標(biāo)準(zhǔn)伴隨矩陣之后,除以矩陣M的行列式就可以得到矩陣M的逆矩陣秒旋。
這里直接給出矩陣M的行列式值為|M|=-24约计。

通過逆矩陣的定義“互為逆矩陣的倆個矩陣相乘結(jié)果為單位矩陣”來驗證結(jié)果的準(zhǔn)確性,如下:


矩陣相乘的最終結(jié)果為:

經(jīng)過驗證迁筛,這兩個矩陣相乘得到的矩陣為單位矩陣煤蚌,因此通過標(biāo)準(zhǔn)伴隨矩陣計算出的逆矩陣是正確的。

5.5 正交矩陣


假如在計算逆矩陣之前知道了這個矩陣為正交矩陣细卧,就可以直接使用轉(zhuǎn)置矩陣作為逆矩陣了尉桩。

在計算一個矩陣的逆矩陣之前,先計算這個矩陣的轉(zhuǎn)置矩陣贪庙,然后將原矩陣與轉(zhuǎn)置矩陣相乘蜘犁,如果結(jié)果為單位矩陣,則轉(zhuǎn)置矩陣為逆矩陣止邮;如果結(jié)果為非單位矩陣这橙,則需要計算矩陣的逆矩陣奏窑。


求逆矩陣流程圖

那么有沒有其他更為簡單的方式可以判斷矩陣是否正交呢?
再來深入探索正交矩陣的判定公式:



通過矩陣的乘法運(yùn)算析恋,可以得到以下9個等式:





5.6 逆矩陣的運(yùn)算法則

逆矩陣的運(yùn)算法則
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末良哲,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子助隧,更是在濱河造成了極大的恐慌筑凫,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件并村,死亡現(xiàn)場離奇詭異巍实,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)哩牍,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進(jìn)店門棚潦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人膝昆,你說我怎么就攤上這事丸边。” “怎么了荚孵?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵妹窖,是天一觀的道長。 經(jīng)常有香客問我收叶,道長骄呼,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任判没,我火速辦了婚禮蜓萄,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘澄峰。我一直安慰自己嫉沽,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布俏竞。 她就那樣靜靜地躺著耻蛇,像睡著了一般。 火紅的嫁衣襯著肌膚如雪胞此。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天跃捣,我揣著相機(jī)與錄音漱牵,去河邊找鬼。 笑死疚漆,一個胖子當(dāng)著我的面吹牛酣胀,可吹牛的內(nèi)容都是我干的刁赦。 我是一名探鬼主播,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼闻镶,長吁一口氣:“原來是場噩夢啊……” “哼甚脉!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起铆农,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤牺氨,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后墩剖,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體猴凹,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年岭皂,在試婚紗的時候發(fā)現(xiàn)自己被綠了郊霎。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡爷绘,死狀恐怖书劝,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情土至,我是刑警寧澤购对,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站毙籽,受9級特大地震影響洞斯,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜坑赡,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一烙如、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧毅否,春花似錦亚铁、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至捆探,卻和暖如春然爆,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背黍图。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工曾雕, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人助被。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓剖张,卻偏偏與公主長得像切诀,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子搔弄,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容