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