本系列文章由birdlove1987編寫,轉載請註明出處。
文章鏈接:http://blog.csdn.net/zhurui_idea/article/details/24975031
矩陣是3D數學的重要基礎,它主要用來描述兩個座標系統間的關係,通過定義一種運算而將一個座標系中的向量轉換到另一個座標系中。
在線性代數中,矩陣就是一個以行和列形式組織的矩形數字塊。向量是標量的數組,矩陣則是向量的數組。
矩陣的維度和記法
矩陣的維度被定義爲它包含了多少行和多少列,一個 r * c 矩陣有 r 行、c 列。
矩陣的記法:
mij表示M的第i行第j列元素。矩陣的下標從1開始,所以第一行和第一列都用數字1。
方陣
行數和列數相同的矩陣稱作方陣。
方陣的對角線元素就是方陣中行號和列號相同的元素。其他元素均爲非對角線元素。簡單的說方陣對角線元素就是方陣對角線上的元素。
如果所有非對角線元素都爲0,那麼稱這種矩陣爲對角矩陣。
單位矩陣是一種特殊的對角矩陣。n維單位矩陣記作In,是n*n矩陣,對角線元素爲1,其他元素爲0。
單位矩陣非常特殊,因爲它是矩陣的乘法單位元。其基本性質是用任意一個矩陣乘以單位矩陣,都將得到原矩陣。所以在某種意義上,單位矩陣的作用就像1對於標量的作用。
向量與矩陣
矩陣的行數和列數可以是任意正整數,當然也包括1。向量也可以看做是一行或是一列的矩陣。
一個n維向量能被當作1*n 矩陣或 n*1矩陣。1*n 矩陣被稱作行向量,n*1矩陣被稱作列向量。
ps:混合使用向量和矩陣時,必須特別注意向量到底是行向量還是列向量。
矩陣的轉置(當年學習線性代數的時候,很是覺得這個轉置什麼的沒什麼用處。。。)
一個 r*c矩陣 M。M的轉置記作 ,是一個 c*r矩陣,它的列由M的行組成。形式上可理解爲,沿着矩陣的對角線翻折。
對於向量來說,轉置將使行向量變成列向量,使列向量成爲行向量。
關於矩陣轉置的引理:
(1)對於任意矩陣M,=M。從另一個方面來說,將一個矩陣轉置後,再轉置一次,便會對到原矩陣。
(2)對於任意對角矩陣D,都有=D,包括單位矩陣 I 也如此。
標量和矩陣的乘法
矩陣M能和標量k相乘,結果是一個和M維數相同的矩陣。
矩陣乘法
記 r*n矩陣 A 與 n*c 矩陣B 的積 r*c矩陣 AB爲 C 。C的任意元素Cij等於A的第i行向量與B的第j列向量點乘的結果。
3*3矩陣乘法
ps:(1)任意矩陣M乘以方陣S,不管從哪邊乘,都將得到與原矩陣大小相同的矩陣。如果S是單位矩陣,結果將是原矩陣M,即MI = IM = M。
(2)矩陣乘法不滿足交換律,即AB≠BA。
(3)矩陣乘法滿足交換律,即(AB)C=A(BC)。
-End-
參考文獻:(1)《3D Math Primer for Graphics and Game Development》
(2)百度百科