unity三维向量变化为角度_对于向量和矩阵的理解
學(xué)數(shù)值計(jì)算還有復(fù)變函數(shù)了喔,矩陣忘干凈了。又看了一遍 藍(lán)棕 的相關(guān)的講解,總結(jié)一下。
1.向量是什么?
- 從初到末的箭頭(物理角度,表示一種運(yùn)動(dòng)過(guò)程)
- 有序的數(shù)字列表(計(jì)算機(jī)/數(shù)學(xué)角度)[1,2]
- 加和數(shù)乘運(yùn)算有意義的anything(抽象意義)
12兩種理解之間的關(guān)系就是線性代數(shù)的奧秘,即幾何角度與數(shù)值角度。
一個(gè)向量的坐標(biāo)由一對(duì)數(shù)構(gòu)成,可以理解為從原點(diǎn)到終點(diǎn)的箭頭,描述運(yùn)動(dòng)過(guò)程。
比如,規(guī)定好坐標(biāo)平面的單位,[1,2],第一個(gè)數(shù)表示沿x軸走了1個(gè)單位;第二個(gè)數(shù)表示沿y軸走了2個(gè)單位。從原點(diǎn)出發(fā)的箭頭和坐標(biāo)向量一一對(duì)應(yīng)。
向量的相加和數(shù)乘,從1運(yùn)動(dòng)效果的角度來(lái)看,十分直觀。即總效果等于各個(gè)分量上的效果和,所以向量的相加和數(shù)乘可以變?yōu)樽鴺?biāo)運(yùn)算。
2.線性組合,張成空間與基
向量的另一種理解:縮放分量并且相加,它表示一種變換。例如在正交基
下,[3,2]表示的變化為i伸長(zhǎng)為原來(lái)的三倍,j伸長(zhǎng)為原來(lái)的2倍,最后把兩者相加。在這種理解下,基向量其實(shí)就是用來(lái)縮放的對(duì)象。以
為基,在 的拉伸下表示向量 ,我們把這叫做線性組合,線性的意思即固定其中一個(gè)參數(shù),拉伸后的向量始終在一條直線上移動(dòng),如圖。所有可以表示為給定向量線性組合(通過(guò)向量加法和數(shù)乘能得到)的向量的集合叫,張成空間。
當(dāng)新增一個(gè)向量,這個(gè)向量落在之前的向量的張成空間時(shí),我們說(shuō)新增向量沒(méi)有對(duì)張成空間做出任何貢獻(xiàn),稱這幾個(gè)向量是線性相關(guān)的,代數(shù)上理解即新增向量可以被線性表出。
向量空間的一組基是張成該空間的一個(gè)線性無(wú)關(guān)的向量集。
此處可以想一下三維空間是如何張成的。
為了更簡(jiǎn)潔的表示更多的向量,我們可以以終點(diǎn)代替箭頭來(lái)表示向量。
3.矩陣與空間變換
變換的意思類似函數(shù),給定一個(gè)向量,輸出一個(gè)向量。
線性變換需要滿足:直線變換后仍保持為直線,不能有所彎曲;原點(diǎn)必須固定不變。
直觀上理解:坐標(biāo)網(wǎng)格線保持平行且等距分布。
如何表示變換呢?只要描述基的變換就可以了,即描述
變換后去哪了。如圖。i變換到(1,-2),j變換到(3,0),原來(lái)的向量(-1,2)表示-1i+2j,現(xiàn)在變到-1×(1,-2)+2×(3,0)=(5,2)只要知道
去哪了,我們可以推斷出任何向量變換后的位置。所以,二維空間中,描述一個(gè)變換只要4個(gè)數(shù),即
變化后的兩個(gè)坐標(biāo)。我們將這兩個(gè)坐標(biāo)放在一個(gè)2×2的方格中,稱為2×2矩陣。這種理解與之前向量表示縮放基向量再相加的思想很契合!舉個(gè)栗子!再次感受一下矩陣變換的過(guò)程!
如果變換后的兩個(gè)向量落在一條直線上,那么這兩個(gè)向量會(huì)張成一個(gè)一維空間
注意此時(shí)的矩陣只是一個(gè)記號(hào),它表示一種線性變換。
我們規(guī)定一種寫法,用向量在右,矩陣在左來(lái)表示這種變換。
講到這里,變換的內(nèi)容就描述完了。下面想想幾個(gè)常見(jiàn)變換的矩陣表示~~
- 逆時(shí)針旋轉(zhuǎn)90度
- 剪切變換
要記住,矩陣,是描述變換的。
4.矩陣乘法與線性變換復(fù)合的聯(lián)系
兩次變換---復(fù)合變換的表示
例子是,先逆時(shí)針再剪切變換,
,即由此,我們定義矩陣的乘積
,從右向左讀。可是,矩陣的運(yùn)算法則是怎么來(lái)的呢?對(duì)于復(fù)合變換
我們首先考慮
的變化過(guò)程 :再考慮
的變化過(guò)程:所以,從變換的效果來(lái)看,我們得到了矩陣的運(yùn)算法則,即
這種變換效果的理解過(guò)程也很好的說(shuō)明了,為什么矩陣不滿足交換律,滿足結(jié)合律。
交換律改變了作用順序,而結(jié)合律不會(huì)。
推廣到三維,
同理5.行列式的介紹及其幾何意義
我們發(fā)現(xiàn),有的變化對(duì)空間有拉伸作用,有的是壓縮作用。
我們從
所在單位正方形來(lái)看面積的變化比例,就能知道其他任意區(qū)域的面積變化比例(網(wǎng)格線平行等距的原因)這個(gè)特殊的縮放比例,被稱作行列式。比如
,說(shuō)明面積不縮放。行列式為負(fù)值時(shí),表示變換改變了空間的順逆方向。想像一個(gè)變換,變換過(guò)程中
不斷接近直至重合,又遠(yuǎn)離,行列式由正值不斷趨于0然后再變?yōu)樨?fù)值是很自然的。從二維的角度看,即看 變換后兩者的左右顛倒了沒(méi)。(類比角速度方向,右手法則)而行列式等于0時(shí),如
表示線性變換將空間壓縮到一條線(甚至是一個(gè)點(diǎn))上。這告訴我們,只要看行列式就能了解矩陣所代表的的變換是否將空間壓到更小的維度上。推廣到三維,即體積的變化縮放比例(方向的話,伸出你的三維小雞爪,類比手性系)。
問(wèn)題是,行列式是如何計(jì)算的呢?
二維情形下,如果有一個(gè)元素值為零。從伸縮角度很好的能理解,如下圖:
i拉伸為a倍,j在垂直方向拉伸d倍,行列式為ad如果都不為零的話,稍稍復(fù)雜一丟丟,也很好懂。
這種對(duì)行列式的理解也從作用效果說(shuō)明了,為什么
6.逆矩陣,列空間,秩與零空間等概念的直觀介紹
線性方程組來(lái)了。
從變換的角度來(lái)理解這個(gè)方程組:
,that is,我們需要找一個(gè)向量x,使得x經(jīng)A變換后的向量與v重合。首先考慮變換矩陣A的行列式:
1)行列式不為零時(shí),在線性變換下,網(wǎng)格平行等距,變換前的點(diǎn)和變換后的點(diǎn)在坐標(biāo)平面上是一一對(duì)應(yīng)的,通俗的理解就是可以變過(guò)去,也可以再變回來(lái)的。由v到x變回來(lái)的矩陣通常被稱為A的逆,記為
。從效果上理解,知道了A的逆,我們就可以解方程了
(幾何理解即逆向變化,看v跑到哪里了)推廣到多維同樣
只要行列式不為零,都能找到逆矩陣,都可這樣解。
2)行列式為零時(shí),壓縮后不能解壓。不能一對(duì)多。但即使不存在逆變換,解仍然可能存在。
如果v恰好在x變換后的線上,解存在。
但對(duì)于三維來(lái)說(shuō),變換壓到一個(gè)面和一條線行列式都為零。太廣泛。所以引入秩的概念。
當(dāng)變換的結(jié)果為一條直線時(shí),結(jié)果是一維的,我們稱這個(gè)變換的秩為1;
變換后的結(jié)果為一個(gè)面時(shí),壓縮并沒(méi)有那么嚴(yán)重,秩為2;
變換后仍充滿整個(gè)空間的,秩為3。
所以說(shuō),秩代表著變換后列空間的維數(shù)。而變換后基向量的張成空間就是所有可能的變換結(jié)果。
零向量一定在變換后的空間中,對(duì)于非滿秩矩陣來(lái)說(shuō),會(huì)有一系列向量被壓縮到原點(diǎn);變換后落在原點(diǎn)的向量,被稱為矩陣的“零空間”或“核”,也就是v是零向量時(shí)方程的所有的解的集合。
非方陣矩陣的理解:考慮輸入與輸出個(gè)數(shù)。
當(dāng)輸入二維,輸出為三維時(shí),如變換矩陣
,兩個(gè)列向量為變換后的張成空間的基。只能張成一個(gè)平面,此時(shí)的三維是偽三維。當(dāng)輸入三維,輸出二維時(shí),如變換矩陣
,降維。其實(shí)還有從二維到一維的變換,判斷變換是不是線性的很直觀的方法是,看原來(lái)直線上等距分布的點(diǎn),變換后是不是還是保持直線的等距分布。這句話很重要,接下來(lái)將用到。
7.點(diǎn)積與對(duì)偶性
我們知道,如果有兩個(gè)長(zhǎng)度相同的向量,求他們的點(diǎn)積就是把各分量相乘再把結(jié)果相加。
點(diǎn)積還有一個(gè)形象的意義,就是將其中一個(gè)向量投影的長(zhǎng)度與另一個(gè)向量做數(shù)乘。
點(diǎn)積為什么會(huì)和投影有關(guān)呢?為什么幾何定義一個(gè)向另一個(gè)作投影這件事看起來(lái)沒(méi)有那么對(duì)稱,但其實(shí)點(diǎn)乘結(jié)果與向量順序無(wú)關(guān)?
首先,先搞明白,點(diǎn)積的幾何理解其實(shí)是對(duì)稱的。
如果兩個(gè)向量的長(zhǎng)度恰好相同,那么利用對(duì)稱性可知,兩者在彼此上的投影數(shù)量都相同。
現(xiàn)在我們把其中一個(gè)變做原來(lái)的k倍。單位長(zhǎng)度的兩個(gè)向量仍然具有對(duì)稱性。而投影數(shù)量是單位向量投影數(shù)量的k倍,把倍數(shù)最后乘上即可。
所以,縮放對(duì)于兩個(gè)向量的影響最后作用到點(diǎn)積,效果是完全一樣的。
下面來(lái)探究點(diǎn)積與投影的關(guān)系。
我們首先來(lái)看一個(gè)矩陣線性變換的例子,
,把i變換成數(shù)軸上的1,j變?yōu)閿?shù)軸上的-2,運(yùn)算結(jié)果為-2。我們發(fā)現(xiàn)
左邊從矩陣的角度來(lái)理解,是一種數(shù)值運(yùn)算,但是和右邊點(diǎn)積的運(yùn)算過(guò)程一樣。如果投影能和1×2矩陣變換建立幾何聯(lián)系,由于坐標(biāo)運(yùn)算與點(diǎn)積運(yùn)算形式上一樣,我們就能搞清楚點(diǎn)積與投影之間的關(guān)系了。
首先,由于投影變換下,直線上等距分布的點(diǎn)投影到向量上仍然等距,所以投影變換是線性變換,可以用一個(gè)1×2矩陣來(lái)描述。求這個(gè)矩陣,由幾何解釋,我們只需要知道原來(lái)的
投影到這個(gè)向量上的兩個(gè)坐標(biāo)值就可以了。神奇的地方出現(xiàn)了!由對(duì)稱性,
投影到向量 上的坐標(biāo)值等于 在 上投影的坐標(biāo)值。即投影變換為 ,而 恰好是 向量的轉(zhuǎn)置!所以,向量在
上的投影數(shù)值上等于 和那個(gè)向量的點(diǎn)積!精彩!8.叉積及其幾何意義
我們都知道,叉積的數(shù)值表示面積,體積,whatever。
正負(fù)與叉乘的順序有關(guān)。二維為例,逆時(shí)針為正。
我們首先定義,叉積運(yùn)算的結(jié)果的大小是有向面積。
所以二維向量的叉乘積是兩個(gè)向量組成矩陣的行列式,也就是原來(lái)的
所在單位正方形變換后的面積。正負(fù)也很契合。也不難看出
不過(guò),其實(shí)真正的叉積其實(shí)是通過(guò)兩個(gè)三維中的向量生成一個(gè)新的三維向量,
向量的長(zhǎng)度是平行四邊形的面積,方向與 所在的平行四邊形的面垂直,遵循右手法則(食指×中指=拇指!)計(jì)算叉積時(shí),我們有一個(gè)運(yùn)算的小技巧,如下圖
這個(gè)技巧是咋來(lái)的呢?
首先,由前幾部分的內(nèi)容可知,從空間到數(shù)軸的線性變換都可以由一個(gè)一行的矩陣實(shí)現(xiàn),emm也與點(diǎn)積相同。
證明思路:
1)定義一個(gè)由三維到一維的線性變換
2)找到那個(gè)一行的矩陣(或是對(duì)偶向量)
3)說(shuō)明那個(gè)一行的向量就是
由二維的“假叉積”,我們很容易想到,三維中的行列式代表體積,也就是體積伸縮的比例,是不是三維叉積的結(jié)果是
呢?顯然不是,行列式是一個(gè)數(shù),而叉積的結(jié)果是向量。
那如果稍稍改動(dòng)一下呢?
把行列式其中一列變?yōu)樽兞?#xff0c;得到
于是我們得到了一個(gè)輸入為三維,輸出為一維的變換,形象上理解就是得到了一個(gè)函數(shù),這個(gè)函數(shù)能計(jì)算以vw為底,自變量為高的平行六面體的體積。很顯然,這個(gè)函數(shù)是線性的,用矩陣來(lái)描述這個(gè)函數(shù)
把行列式兩項(xiàng)展開(kāi),與點(diǎn)積展開(kāi)式作比較,就能得到p的分量的計(jì)算方法了。
這與把i,j,k放進(jìn)行列式的結(jié)果一致。
如果能證明這個(gè)p向量是v×w的話,就證畢了。
下面我們考慮,什么樣的p能滿足以上的性質(zhì)呢?
我們知道,一方面,點(diǎn)積的作用是做投影相乘。把 (
在p上投影)相乘另一方面,行列式表示體積,大小為vw的面積乘上 (
在垂直于vw上的投影)所以從這兩方面相等的角度來(lái)看,p的大小應(yīng)該是vw的面積,方向是垂直于vw所在平面的,也就是v×w。
至此,我們證明了,p的分量就是v×w。
Q.E.D 開(kāi)森
9.基變換的概念及其矩陣表示
我們之前提到,坐標(biāo)的意義是縮放基向量,然后再將所有的方向的結(jié)果相加。
所以,坐標(biāo)表示的向量與被縮放的基向量的選取有密切的聯(lián)系。也就是說(shuō),在我們用坐標(biāo)表示向量時(shí),首先需要明確縮放的基向量的指向,還要求基向量為單位長(zhǎng)度。
試想,除了選互相垂直相等的基向量,我們還可以有許許多多奇怪的選法。選法不同,表示同樣的向量,我們的坐標(biāo)肯定也不一樣。向量與坐標(biāo)之間的轉(zhuǎn)化通過(guò)選取坐標(biāo)系實(shí)現(xiàn)。
這就像每個(gè)世界里都有每個(gè)世界的描述東西的語(yǔ)言(坐標(biāo),也就是數(shù)組),語(yǔ)言不同但是描述的東西(向量)可能相同。(注意奧,這里不同的世界在零點(diǎn)的選取上達(dá)成共識(shí)。
例如,想象小紅的世界里,兩個(gè)基向量
呈鈍角。可是小紅用坐標(biāo)描述 的時(shí)候,在她眼里,由縮放相加的思想,兩個(gè)基向量的坐標(biāo)就是可是想象小藍(lán)的世界里,他的基向量選取的是互相垂直的
。用小藍(lán)的坐標(biāo)描述同樣的 ,坐標(biāo)變?yōu)榱?既然語(yǔ)言不通,接下來(lái)一個(gè)很自然的問(wèn)題就是,如何在不同的坐標(biāo)系之間進(jìn)行轉(zhuǎn)化。如何進(jìn)行翻譯,讓小紅和小藍(lán)能夠互相理解呢?
比如小紅用坐標(biāo)
描述一個(gè)向量時(shí),她是在說(shuō)從小藍(lán)的角度看,
的坐標(biāo)為 , 的坐標(biāo)為于是
由紅語(yǔ)翻譯到藍(lán)語(yǔ)就是我們來(lái)看一下這個(gè)過(guò)程發(fā)生了什么:我們用某個(gè)給定的坐標(biāo)分量與小紅的兩個(gè)基向量分別相乘,然后又把結(jié)果相加了。,這通操作是不是似曾相識(shí)?對(duì),是矩陣乘法。
眾所周知,矩陣是表示變換的。那么從變換的角度,我們?cè)賮?lái)理解一下這個(gè)過(guò)程。
小藍(lán)視角(以下坐標(biāo)與變換矩陣基于小藍(lán)視角表示):
小紅基向量構(gòu)成的矩陣
表示的變換是將小藍(lán)的基向量 , 變到小紅的基向量 , 。這里注意:由于線性變換是不改變縮放系數(shù)的,我們只描述基向量的變化后的去向,而不改變基向量縮放相加的組合系數(shù)。(也可以理解成,從前后兩個(gè)視角看,線性變換不改變坐標(biāo)。就是從變換前小藍(lán)眼中的坐標(biāo),和變換后小紅眼中的坐標(biāo)是一樣的。
小藍(lán)嘗試?yán)斫?
坐標(biāo)在小紅的世界里表示什么。小藍(lán)首先想自己的世界里的 ,然后用用變換得到小紅眼中的 ,這個(gè)變換后的向量就是小藍(lán)視角下小紅的向量表示。于是,翻譯完成! 這個(gè)矩陣,將小紅語(yǔ)言描述的向量坐標(biāo),也就是小藍(lán)誤解的向量坐標(biāo),翻譯成了小藍(lán)能正確get到的真實(shí)向量坐標(biāo)。上圖看起來(lái)感覺(jué)反了。怎么小紅的語(yǔ)言通過(guò) 藍(lán)到紅的矩陣反倒變成了 小藍(lán)的語(yǔ)言呢?
這樣想矛盾的原因在于,這幾個(gè)表示的視角不統(tǒng)一。一會(huì)小藍(lán)眼中一會(huì)小紅眼中。
我們應(yīng)該把
當(dāng)做小藍(lán)眼中的誤解,而不是小紅眼中真實(shí),小藍(lán)的誤解向量乘上小藍(lán)眼中的變換矩陣,把小藍(lán)眼中誤解的變成小藍(lán)眼中真實(shí)的。這樣想運(yùn)算過(guò)程小藍(lán)視角才是統(tǒng)一的。我個(gè)人習(xí)慣于這樣理解:
這個(gè)矩陣是以小藍(lán)為基向量表示的,任何別的基下的坐標(biāo)乘上這個(gè)矩陣得到的縮放系數(shù)是以小藍(lán)為基向量的,于是乘上之后說(shuō)的就是藍(lán)語(yǔ)。同樣的,想由藍(lán)語(yǔ)翻紅語(yǔ),我們只需要乘上
的逆。至此,不同坐標(biāo)系下單個(gè)向量的轉(zhuǎn)化已經(jīng)完成。下面我們來(lái)解決不同坐標(biāo)系下,描述變換的矩陣之間是如何轉(zhuǎn)化的。
比如,小藍(lán)眼中的逆時(shí)針旋轉(zhuǎn)90度變換
,在小紅眼中是如何表示的呢?由于兩個(gè)列向量追蹤的是
的去向,顯然小紅眼中的變換矩陣并不是我們還拿小紅眼中
這個(gè)向量做變換。很自然的思路是,首先將紅語(yǔ)翻藍(lán)語(yǔ),作變換,再將藍(lán)語(yǔ)翻回紅語(yǔ),于是變換后應(yīng)為所以,左邊三個(gè)矩陣的復(fù)合應(yīng)該就是小紅眼中的變換矩陣!
,嘿嘿,這就是相似矩陣。所以說(shuō)相似矩陣同一種變換在不同基下的表示。這個(gè)矩陣不同視角的變換在下一部分大有用處!
10.特征向量與特征值
試想一個(gè)普通的線性變換
,設(shè) 吧。絕大部分向量在變換后都偏離了原來(lái)的位置,但是會(huì)有特殊的 ,使得變換后的向量還是在原來(lái)向量的直線上。這時(shí)矩陣對(duì)它的作用僅僅是拉伸或者壓縮而已,如同一個(gè)標(biāo)量。在這個(gè)例子里,
就是這樣一個(gè)特殊的向量,變換后被伸長(zhǎng)3倍。與 共線的向量也如此。其實(shí)還有一個(gè)比較隱蔽的向量
,被拉長(zhǎng)為2倍。這些特殊的向量就被稱為變換的特征向量,每個(gè)特征向量都有一個(gè)拉伸的倍數(shù),被稱作特征值。特征值為負(fù)時(shí)表示變換后的向量與原向量反向。
特征向量有什么應(yīng)用呢?比如描述3維空間中的旋轉(zhuǎn)變換,顯然特征值為1。什么樣的向量是變換前后不變的呢?只有旋轉(zhuǎn)軸上的向量。把三維旋轉(zhuǎn)看成繞某個(gè)軸旋轉(zhuǎn)一定角度,比矩陣描述直觀的多。
下面看看特征向量怎么求。
其實(shí)是由
,解出來(lái)特征向量和特征值。首先把右側(cè)的數(shù)乘用變換表示,即
,整理得這個(gè)式子恒成立,說(shuō)明這個(gè)變換降維了。而空間壓縮對(duì)應(yīng)的就是矩陣的行列式為零
, 均可解。不過(guò),二維變換不一定都有特征向量,比如旋轉(zhuǎn)90度變換。(其實(shí)是特征值為復(fù)數(shù),深入討論可把復(fù)數(shù)理解為變換)
特征值也可以有無(wú)數(shù)個(gè),比如
華點(diǎn)來(lái)了,我們引入特征基的概念。
如果我們的基向量恰好是特征向量,變換矩陣就會(huì)是一個(gè)對(duì)角矩陣,矩陣的對(duì)角元是它們所屬的特征值。這時(shí)是變換就只是橫豎方向改變坐標(biāo)網(wǎng)格的大小了。
對(duì)角矩陣在很多運(yùn)算中都有很好的性質(zhì),比如和自己多次相乘的結(jié)果更容易計(jì)算,只是對(duì)角元不斷的乘自己。
但是基向量恰好為特征向量的情況很難遇到。結(jié)合上一part內(nèi)容,我們嘗試換基。
如果特征向量能夠張成全空間,我們就可以變換坐標(biāo)系使得這些特征向量就是基向量。
啊這就是相似對(duì)角化。
11.抽象向量空間(有點(diǎn)超綱,最近好忙周一更)
總結(jié)
以上是生活随笔為你收集整理的unity三维向量变化为角度_对于向量和矩阵的理解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: rust相框加载图片代码_Rust 能取
- 下一篇: 485不用双绞线可以吗_加装迎宾踏板可以