線性代數(shù)在科學(xué)領(lǐng)域有很多應(yīng)用的場景盈罐,如下:
矩陣榜跌,是線性代數(shù)中涉及的內(nèi)容,
線性代數(shù)是用來描述狀態(tài)和變化的盅粪,而矩陣是存儲狀態(tài)和變化的信息的媒介钓葫,可以分為狀態(tài)(靜態(tài))和變化(動態(tài))信息來看待。
描述一個事物的狀態(tài)需要在一個選好的坐標系(什么樣的向量空間)中進行票顾,所以矩陣所包含的信息從來都是成對出現(xiàn)(坐標值和坐標系)础浮。而基就是坐標系的信息,可以將其拆分出來库物。
當把矩陣以動態(tài)信息來看待時霸旗,其信息的側(cè)重點在于變化二字贷帮。這時的矩陣可以看做是一個方程戚揭。
通過矩陣內(nèi)所描述的變化規(guī)則從一個狀態(tài)變換到另一個狀態(tài)。變換可以理解為事物本身的變化撵枢,也可以理解為坐標系的變化民晒。
矩陣的本質(zhì):
探討矩陣的本質(zhì)的話,可以先看這篇文章:
理解矩陣(最通俗易懂的教程——高數(shù)-線性代數(shù)-矩陣
其思路概括來說如下:
首先要有空間的概念锄禽,如果不考慮嚴謹?shù)亩x潜必,你可以用我們熟知的二維或者三維空間來想象:里面有無窮多的點,通過某些動作沃但,可以從一個點“移動”到另一個點磁滚,容納運動是空間的本質(zhì)特征。
線性空間也是一種空間,線性空間是容納向量對象運動的垂攘。如果選定了坐標系维雇,那么一個向量可以用它在每個維度上的坐標值來表示,比如二維空間里可以表示為[x, y]晒他,三維空間可以表示為[x, y, z]吱型,更高維雖然無法想象,但仍然可以用類似的數(shù)學(xué)方式表示出來陨仅。
向量共有兩種形式津滞,一種為列向量,一種為行向量灼伤。雖然我們可能比較習(xí)慣行向量触徐,但在這里,我們默認使用列向量饺蔑。比如[-1,2]就這樣表示:
我們可以通過某種運算锌介,把空間里的一個點“移動”另一個位置。比如我們想把[-1,2]移動到[5,2]猾警,可以執(zhí)行如下運算:
上圖中左邊的這個變量孔祸,就是一個矩陣,所以矩陣是線性空間中運動(變換)的描述发皿。
換言之崔慧,矩陣的乘法,本質(zhì)是一種運動穴墅。但除此以外惶室,還有另外一種理解方式。
我們知道玄货,運動是相對的皇钞,把[-1,2]變成[5,2],除了“移動”松捉,還可以通過變換坐標系的方式實現(xiàn)夹界。也就是說,找到這樣的一個坐標系隘世,在那里可柿,同樣的一個向量可以表示為[5,2]。
在這個情況下丙者,對上面那個矩陣相乘例子而言复斥,里面的那個2x2方陣就可以理解為一個坐標系,在這個坐標系下械媒,[-1,2]這個向量可以表示為[5,2]目锭。
比如上面這個動圖中,通過坐標系變化,把紅色向量[0,1]痢虹、綠色向量[1,0]變成了[3,0]和[1,-2]键俱。
因此,矩陣的實質(zhì)就是將坐標整體線性變換
矩陣的基本定義:
矩陣:有m*n個數(shù)排成m行n列的數(shù)表成為m行n列矩陣世分,簡稱m x n矩陣编振,記為A。
負矩陣:-A稱為矩陣A的負矩陣
行矩陣:只有一行的矩陣稱為行矩陣臭埋,又稱為行向量踪央;A=(a1 a2 ...an)
列矩陣:只有一列的矩陣稱為列矩陣,又稱為列向量瓢阴;
同型矩陣:兩個矩陣行數(shù)列數(shù)均相等畅蹂,稱他們?yōu)橥途仃嚕?/p>
相等:?若兩個矩陣是同型矩陣,且它們的對應(yīng)元素相等荣恐,成這兩個矩陣相等液斜。
零矩陣:元素都是零的矩陣。注意:不同型的零矩陣是不同的叠穆。
系數(shù)矩陣:線性方程組的系數(shù)構(gòu)成的矩陣稱為系數(shù)矩陣少漆。
方陣:當矩陣的行數(shù)與列數(shù)相等的時候,稱之為方陣
奇異矩陣:對應(yīng)的行列式等于0的方陣硼被。即當|A| = 0時示损。
非奇異矩陣:對應(yīng)的行列式不等于0的方陣。即|A|≠0時嚷硫。
數(shù)量矩陣:如果一個矩陣的對角線元素全部相同,其余元素都是0,這個矩陣叫數(shù)量矩陣,又叫純量矩陣检访。
對角矩陣:簡稱對角陣(默認為正對角陣)。是一個主對角線之外的元素皆為 0 的矩陣仔掸。對角線上元素可以為 0 或其它值脆贵。記為 A = diag(λ1,λ2,..,λn) ?; 分為正對角陣和反對角陣起暮。
對稱矩陣:是元素以主對角線為對稱軸對應(yīng)相等的矩陣對陣矩陣定義為:A=AT(A的轉(zhuǎn)置)衍菱,對稱矩陣的元素A(i,j)=A(j,i).
反對稱矩陣:反對稱矩陣(又稱斜對稱矩陣)定義是:A= - AT(A的轉(zhuǎn)置前加負號) 它的第Ⅰ行和第Ⅰ列各數(shù)絕對值 相等进胯,符號相反安券,于是话告,對于對角線元素排截,A(i,i)=-A(i,i),有2A(i,i)=0
單位矩陣:主對角線上的元素為1晃跺,其它元素為0的矩陣劫樟。用E表示
例如一個 3 × 3的矩陣:
別的矩陣和單位矩陣相乘楷怒,得到的結(jié)果就是其自身:A × I = A
行列式:行列式(Determinant)是數(shù)學(xué)中的一個函數(shù)葫盼,將一個n×n的矩陣A映射到一個標量残腌,記作 det(A)或 |A|。行列式可以看做是有向面積或體積的概念在一般的歐幾里得空間中的推廣。
在任意的一個方陣都存在這樣的一個標量,稱作該方陣的行列式.
余子式:代數(shù)余子式是這樣定義的,對于一個方陣M,給定行抛猫、列元素的代數(shù)余子式等于對應(yīng)的余子式的有符號的行列式
我們把上面的這句定義給提煉一下,某個矩陣的代數(shù)余子式是行列式,那么我們已經(jīng)注意到了,某個矩陣的余子式是一個矩陣.這樣我們就知道兩者的不同之處了,一個是標量,一個是矩陣,這就是兩者的不同之處.好了,了解完兩者的不同之處之后,我們來看代數(shù)余子式的計算方法是怎么定義的,如下所示.
只有上面的公式讓我們感到很無助不是,那么接下來我們用一個接著余子式的示例來求解對應(yīng)的代數(shù)余子式.如下所示
那么說了這么多余子式和代數(shù)余子式的知識,到底對我們的行列式的求解有什么幫助呢?其實,我們是可以利用余子式和代數(shù)余子式直接計算任意n維方陣的行列式,首先,我們找到矩陣的任意一行i(i不大于最大行數(shù)),然后,列數(shù)j依次增加.具體的計算公式如下所示.
那么有了公式之后避免不了就是驗證,接下來我們就用公式來推導(dǎo)4x4方陣的行列式.由于有了計算公式的便利,我們計算起來就比較方便了,但是我們要仔細判斷每一個項的正負(自己驗證的時候沒注意,驗證出錯兩三遍).這里,我選擇的i =1(自己驗證的時候可自行選擇i) ,具體的驗證過程如下所示.(由于其中的項過多,所以分兩步截圖.)
通過上面我們發(fā)現(xiàn),行數(shù)列數(shù)越多的方陣行列式的復(fù)雜度就會越高.復(fù)雜度會呈指數(shù)增長.我們計算到4x4的就已經(jīng)非常的麻煩了(其實4x4的行列式我們已經(jīng)夠用了),那么要是在來個10x10的方陣行列式,我們豈不要瘋掉?這里,書中提到了一種行列式的計算方式叫做"主元選擇"的計算方式,感興趣的小伙伴可自行查詢資料.
上面我們已經(jīng)說完了行列式,但是說了一大堆,我們還是懵圈的,那么行列式是用來干什么的呢?或者說是行列式代表著什么意義呢?其實,在2D中行列式代表著以基向量為兩邊的平行四邊形的有符號面積.在3D環(huán)境中則代表著以基向量為三邊的平行六面體有符號體積.我們看以下示例來驗證我們的想法.
如圖所示,在2D環(huán)境中有基向量v = [3 0] ,u = [1 2].那么它的面積是3x2 = 6,它的行列式是3x2-1x0 = 6,我們發(fā)現(xiàn)行列式是和面積相等的(當然了,如果基向量v = [-3 0] ,行列式最終計算出來的值為-6)
接下來,我們看一下在3D環(huán)境中的有三個基向量u = [2 0 0],v = [1 2 0],w= [0 0 1],如圖所示
然后我們計算由上面三個基向量所圍成的正六面體的體積為1x2x2 = 4,計算的三個基向量所組成的矩陣的行列式.發(fā)現(xiàn)兩者的絕對值是相等的.如下所示.
伴隨矩陣:矩陣A的伴隨矩陣就是其余子矩陣的轉(zhuǎn)置矩陣,記做:
用伴隨矩陣求逆矩陣
這個是我自己想飛算法:
逆矩陣:設(shè)A是數(shù)域上的一個n階方陣蟆盹,若在相同數(shù)域上存在另一個n階矩陣B,使得: AB=BA=E闺金。則我們稱B是A的逆矩陣逾滥,而A則被稱為可逆矩陣。記作:?A-1
A × A-1?= I
那么我該如何計算方陣M的逆呢?在我看的3D圖形上是給出了如下的方法.
在上面的公式中矩陣的行列式我們知道如何求解,那么adj M是什么鬼?adj M叫做矩陣M的伴隨矩陣,定義為矩陣M的代數(shù)余子式矩陣的轉(zhuǎn)置矩陣(挺繞口).沒事,我們看一下示例是如何解釋的這個的.假設(shè)矩陣M如下所示.
矩陣A的|A|的行列式還可以如此計算:
在數(shù)學(xué)中败匹,拉普拉斯展開(或稱拉普拉斯公式)是一個關(guān)于行列式的展開式寨昙。將一個n×n矩陣B的行列式進行拉普拉斯展開,即是將其表示成關(guān)于矩陣B的某一行(或某一列)的n個元素的(n-1)×(n-1)余子式的和掀亩。行列式的拉普拉斯展開一般被簡稱為行列式按某一行(或按某一列)的展開舔哪。由于矩陣B有n行n列,它的拉普拉斯展開一共有2n種槽棍。拉普拉斯展開的推廣稱為拉普拉斯定理捉蚤,是將一行的元素推廣為關(guān)于k行的一切子式。它們的每一項和對應(yīng)的代數(shù)余子式的乘積之和仍然是B的行列式炼七。研究一些特定的展開可以減少對于矩陣B之行列式的計算缆巧,拉普拉斯公式也常用于一些抽象的推導(dǎo)中。
轉(zhuǎn)置矩陣
轉(zhuǎn)置矩陣其實是原來矩陣的行變成了新矩陣的列豌拙,以一個90°的角度進行了旋轉(zhuǎn)盅蝗。下面兩個圖就是矩陣A和它的轉(zhuǎn)置矩陣AT。
矩陣轉(zhuǎn)置的推理
? ? ? ?將一個矩陣轉(zhuǎn)置之后,再次轉(zhuǎn)置一次,便會得到原來的矩陣.
對于任意的對角矩陣D,都有轉(zhuǎn)置矩陣DT=D,包括單位矩陣I也是如此.
正交矩陣:
先來看一下正交矩陣是如何定義的,若方陣M是正交的,則當且僅當M與他的轉(zhuǎn)置矩陣M^T的乘積等于單位矩陣,那么就稱矩陣M為正交矩陣.
MTM=I
在矩陣的逆中我們知道,矩陣的逆和矩陣的乘積為單位矩陣I,由此推理,我們可以知道,如果該矩陣為正交矩陣,那么矩陣的逆和轉(zhuǎn)置矩陣是相等的.
MT=M-1
那么正交矩陣存在的意義是什么呢?其實如果一個矩陣是正交矩陣,那么矩陣的逆和轉(zhuǎn)置矩陣是相等的.轉(zhuǎn)置矩陣是非常簡單計算的,而計算矩陣的逆如果使用代數(shù)余子式計算是非常的麻煩,所以我們可以直接計算轉(zhuǎn)置矩陣然后直接得到該矩陣的逆.
矩陣的運算:
加法運算:
例如:
顏色相同的方框數(shù)字進行相加姆蘸,例如這里: 8 + 3 = 11墩莫,6 + 10 = 16
減法運算:
需要注意的是,進行加減運算的兩個矩陣維度必須是相同的逞敷。
矩陣乘以標量
類似狂秦,矩陣除以標量不再贅述
矩陣相乘
需要注意的是:
1.左邊矩陣的列數(shù),要和右邊矩陣的行數(shù)相同推捐。
2.相乘的位置不能互換.A × B ≠ B × A
3.相乘的次序不影響結(jié)果( A × B ) × C = A × ( B × C )
矩陣的本質(zhì)就是線性方程式裂问,兩者是一一對應(yīng)關(guān)系。如果從線性方程式的角度牛柒,理解矩陣乘法就毫無難度堪簿。
下面是一組線性方程式。
矩陣的最初目的皮壁,只是為線性方程組提供一個簡寫形式椭更。
老實說,從上面這種寫法蛾魄,已經(jīng)能看出矩陣乘法的規(guī)則了:系數(shù)矩陣第一行的2和1虑瀑,各自與 x 和 y 的乘積之和湿滓,等于3。不過舌狗,這不算嚴格的證明叽奥,只是線性方程式轉(zhuǎn)為矩陣的書寫規(guī)則。
下面才是嚴格的證明痛侍。有三組未知數(shù) x朝氓、y 和 t,其中 x 和 y 的關(guān)系如下主届。
x 和 t 的關(guān)系如下膀篮。
有了這兩組方程式,就可以求 y 和 t 的關(guān)系岂膳。從矩陣來看誓竿,很顯然,只要把第二個矩陣代入第一個矩陣即可谈截。
從方程式來看筷屡,也可以把第二個方程組代入第一個方程組。
上面的方程組可以整理成下面的形式簸喂。
最后那個矩陣等式毙死,與前面的矩陣等式一對照,就會得到下面的關(guān)系喻鳄。
矩陣乘法的計算規(guī)則扼倘,從而得到證明。
矩陣相乘的應(yīng)用:
先看一個例子:
某公司有四個工廠生產(chǎn)三種產(chǎn)品除呵,已知每種產(chǎn)品的產(chǎn)量再菊,利潤和占地空間,因為工廠設(shè)在不同的地方颜曾,所以老板想調(diào)整一下各個工廠的產(chǎn)品輸出纠拔,所以你告訴老板每個工廠的現(xiàn)有利潤和占地空間。
產(chǎn)量:噸
工廠\產(chǎn)品P1p2p3
甲524
乙382
丙604
丁016
利潤:萬元 ?空間:平方米
產(chǎn)品利潤空間
P124
P213
P332
一般求解是這樣的:產(chǎn)量利潤=總利潤泛豪,產(chǎn)量空間=總空間
所以就是那12個結(jié)果稠诲,都會算
如果用矩陣來表示呢
直接拿(產(chǎn)量)*(利潤,空間)就能直觀的看到結(jié)果了诡曙。
這里是矩陣乘法的簡單應(yīng)用臀叙。
4X4齊次矩陣
兩條平行線會相交嗎?
在沒有認識到齊次空間之前,我們知道兩條平行線是不能相交的,但是兩條平行線真的不能相交嗎?我們看下面這幅圖,我們都知道兩條鐵軌是平行的,但是這兩條平行的鐵軌在無窮遠處會相交于一點.這對嗎?在笛卡爾2D坐標系中, 我們用 (x, y) 表示笛卡爾空間中的一個 2D 點,而處于無限遠處的點 (∞,∞) 在笛卡爾空間里是沒有意義的价卤。所以我們是無法解釋這種現(xiàn)象的,但是在齊次空間中,我們可以解釋這種現(xiàn)象.
帶著上面的兩個問題,我們開始我們的齊次坐標之旅.其實齊次空間的出現(xiàn)主要是用于投影問題的解決.所謂齊次坐標就是將一個原本是n維的向量用一個n+1維向量來表示. 4D齊次空間有4個分量分別是(x,y,z,w),第四個是w,稱為齊次坐標.那么在3D笛卡爾坐標系中可以使用其次坐標表示為(x/w,y/w,z/w).
那么我們就解決第一個問題,解釋兩條平行線投射到一個2D平面中相交于一點.我們知道在2D笛卡爾坐標系中用Ax+By+C= 0表示一條直線.兩條平行直線相交的話,要關(guān)聯(lián)兩個方程式.如下所示.
在笛卡爾坐標系中,上述的兩者如果相交,那么C=D=0,也就是兩者是同一條過原點的直線.顯然是解釋不了兩條平行線相交于一點的.如果我們引入齊次坐標的概念的話,我們把x/w, y/w 代替 x, y 放到投影空間里,如下所示.
上面的方程式組可以轉(zhuǎn)換為下面的方程式組.
在C≠D的情況下,那么對方程組求解,就是w = 0兩條直線相交,那么就是(x,y,0).兩條直線相交于無限遠處.
那么引進齊次坐標有什么必要劝萤,它有什么優(yōu)點呢?
1.它提供了用矩陣運算把二維荠雕、三維甚至高維空間中的一個點集從一個坐標系變換到另一個坐標系的有效方法.
2.它可以表示無窮遠的點稳其。n+1維的齊次坐標中如果h=0,實際上就表示了n維空間的一個無窮遠點炸卑。對于齊次坐標[a,b,h]既鞠,保持a,b不變, 點沿直線 ax+by=0 逐漸走向無窮遠處的過程.
矩陣的幾何解釋
與其說矩陣的幾何意義這么生澀難懂,不如說的是矩陣在幾何中到底是有什么作用呢?一般來說,方陣可以描述任意的線性變換.,也就說,在幾何當中,我們用矩陣表示幾何體的空間變換.比如我們在程序中常用的平移盖文、旋轉(zhuǎn)嘱蛋、縮放等等.(沒事,這時候說的可能很生澀,看到最后你就會明白怎么回事的)
為了更好的理解矩陣的幾何意義,我們先用一個簡單的示例來說明一下.如果我們把一張圖片放入一個2D的坐標系中(為了給下面做鋪墊,向量形式為[x,y,0]),并且規(guī)定它的大小為邊長為1的正方形.向量p = [0,1,0],向量q = [1,0,0].如下圖所示.
現(xiàn)在我們就單獨的看圖片的右上頂點 [1,1,0] (可看做向量).
首先我們先把[1,1,0]這個向量拆分一下.如下所示.
緊接著.我們要定義一下,p,q和r定義為指向 +x,+y,+z方面的單位向量.然后用單位向量表示圖片的右上頂點 [1,1,0] .如下所示.
現(xiàn)在,向量[1,1,0]就被表示成p,q和r的線性變換了.向量p,q和r被稱為基向量.這里的基向量是笛卡爾坐標系.但是事實上,一個坐標系能用任意的3個基向量表示.當然了,這三個向量不在同一個平面.向量p,q和r創(chuàng)建一個3x3的矩陣M.如下所示.
當然了,矩陣M可不單單只有上面的一種形式,上面的只能算是一種形式,記住我們說過的,一個坐標系能用任意的3個基向量表示.接下來,我們再次研究一個向量和一個矩陣相乘.(圖形變換的開始部分),先看一下公式.
我們還是要借助一開始棟哥的那個坐標系圖形.如果矩陣M如下所示.那么圖形將不會發(fā)生任何變換.
接下來,我們就搞起圖形變換了.如果矩陣M發(fā)生了如下改變,那么圖形會有什么樣的變化呢?
在矩陣M中.向量p從[1 0 0]變換到[2 1 0],q從[0 1 0]變換到[-1 2 0],r未發(fā)生變化.然后我們圖形的右上點會再次發(fā)生縮放和旋轉(zhuǎn)的變換.
得到效果圖如下所示.
上面是2D中的變換,3D中的變化一樣類似.例如現(xiàn)在有向量OB[1 1 1],如下圖所示.
同時矩陣M如下所示.
結(jié)果變換之后,向量的圖像如下所示.
平移矩陣
在3D圖形:矩陣與線性變換我說過幾種線性變換,比如旋轉(zhuǎn),縮放,鏡像等等,唯獨沒有平移,但是在日常開發(fā)過程中,平移應(yīng)該算的上我們很常用的一種仿射變換了.那么這是為什么呢?根據(jù)書上所說,矩陣的乘法性質(zhì)所決定的,零向量總是變換成零向量,所以任何矩陣的乘法表達的變換是不會有平移的.但是我們卻可以使用4X4平移矩陣表示3D環(huán)境中的平移變換,使用3X3平移矩陣表示2D環(huán)境中的平移變換.(假設(shè)w不變且w = 1)具體公式如下所示.
旋轉(zhuǎn)矩陣
已知任意一個向量OA=(x,y),把向量OA繞其起點O沿逆時針方向旋轉(zhuǎn)α角得到向量OB=(xcosα-ysinα,xsiaα+ycosα)。推導(dǎo)如下:
可以反推導(dǎo)出旋轉(zhuǎn)的矩陣:
縮放矩陣:
未完待續(xù)%…五续,等閑了點洒敏,再整理補充!
參考文章:
機器學(xué)習(xí)筆記004 | 矩陣和向量疙驾,提升效率的數(shù)學(xué)工具
推薦閱讀:
從矩陣與空間操作的關(guān)系理解CSS3的transform
線性代數(shù)導(dǎo)論11——矩陣空間它碎、秩1矩陣和小世界圖
傳送門:3D數(shù)學(xué)基礎(chǔ) 圖形與游戲開發(fā).pdf
轉(zhuǎn)載請注明來處:透析矩陣,由淺入深娓娓道來—高數(shù)-線性代數(shù)-矩陣 ——周陸軍的博客
如有侵權(quán)扳肛,請告知本人刪除傻挂,謝謝!