首页 > 代码库 > 3D数学读书笔记——矩阵基础

3D数学读书笔记——矩阵基础

 本系列文章由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)百度百科