矩阵就是一个矩形的数字、符号或表达式数组。矩阵中每一项叫做矩阵的元素(Element)。下面是一个2×3矩阵的例子:
矩阵可以通过(i, j)进行索引,i是行,j是列,这就是上面的矩阵叫做2×3矩阵的原因(3列2行,也叫做矩阵的维度(Dimension))。这与你在索引2D图像时的(x, y)相反,获取4的索引是(2, 1)(第二行,第一列)(译注:如果是图像索引应该是(1, 2),先算列,再算行)。
矩阵与标量的加减定义如下:
矩阵与矩阵之间的加减就是两个矩阵对应元素的加减运算,所以总体的规则和与标量运算是差不多的,只不过在相同索引下的元素才能进行运算。这也就是说加法和减法只对同维度的矩阵才是有定义的。
和矩阵与标量的加减一样,矩阵与标量之间的乘法也是矩阵的每一个元素分别乘以该标量。
矩阵之间的乘法不见得有多复杂,但的确很难让人适应。矩阵乘法基本上意味着遵照规定好的法则进行相乘。当然,相乘还有一些限制:
2x2矩阵相乘:
3x3矩阵相乘:
对于任意矩阵M,将其转置之后,再转置一次,便会得到原矩阵;
对于任意的对角矩阵,都转置矩阵等于本身。
关于矩阵和向量相乘的注意事项:
单位矩阵是一个除了对角线以外都是0的矩阵:
在3D空间中旋转需要定义一个角和一个旋转轴;物体会沿着给定的旋转轴旋转特定的角度;在3D空间中每个单位轴都有不同的定义:
沿 x 轴旋转:
沿 y 轴 旋转:
沿 z 轴 旋转:
沿任意轴旋转:
对一个向量进行缩放就是对i向量的长度进行缩放,而保持它的方向不变;缩放向量v¯=(3,2)v¯=(3,2)。我们可以把向量沿着x轴缩放0.5,使它的宽度缩小为原来的二分之一;我们将沿着y轴把向量的高度缩放为原来的两倍。我们看看把向量缩放(0.5, 2)倍所获得的s¯s¯是什么样的:
3D空间中定义缩放矩阵:
位移是在原始向量的基础上加上另一个向量从而获得一个不同位置的新向量的过程,从而在位移向量基础上移动了原始向量;位移矩阵定义:
正交投影的2D矩阵:
正交投影的3D矩阵:
向任意直线投影的2D矩阵:(投影由垂直于直线的单位向量n定义)
向垂直于n的平面投影的3D矩阵:
沿通过原点且垂直于n的反射轴进行镜像变换的2D矩阵:
沿通过原点且垂直于n的平面进行镜像变换的3D矩阵:
3D中的切变方法是取出一个坐标,乘以不同的因子再加到其他两个坐标上:
1. 中心对称的视图截锥,z轴位于锥体的中央位置
2. 不对称的视图截锥
矩阵的乘法,可以把多个变换组合到一个矩阵中;顶点(x,y,z)将其缩放2倍,然后位移(1,2,3)个单位:
用最终的变换矩阵左乘向量得到的结果:
当矩阵相乘时,在最右边的矩阵是第一个与向量相乘,所以应该从右向左读矩阵的乘法;
在组合矩阵时,建议先进行缩放、然后是旋转,最后位移;否则他们会相互影响。
方阵M的行列式记为|M| 或者 “det M”,非方阵矩阵的行列式是未定义的。
余子式:
是一个矩阵,对于有r列,c行的M矩阵,记法M(ij)表示从M中除去第i行和第j列后剩下的矩阵,该矩阵称为M矩阵的余子式
代数余子式:
代数余子式是一个标量,对于M矩阵,给定行列元数的代数余子式等于相应余子式的有符号行列式。
用代数余子式计算nXn阶矩阵的行列式:
从矩阵中任意选择一行或一列,对该行或列中的每一个元素,都乘以对应的代数余子式;这些乘积的和就是矩阵的行列式:
2x2 阶矩阵行列式的定义:
3x3阶矩阵的行列式:
4x4矩阵行列式的计算:
方阵M的逆记作M(-1),两矩阵相乘时结果是单位矩阵:(并非所有的矩阵都有逆,如矩阵某一行或某一列都为0)
M的“标准伴随矩阵”记作“adj M”:定义为M的代数余子式矩阵的转置矩阵:
M的标准伴随矩阵是代数余子式矩阵的转置:
矩阵的逆:
上述M逆的:
1. 如果M是非奇异矩阵(可逆),则该矩阵的逆的逆等于原矩阵;
2. 单位矩阵的逆是它本身;
3. 矩阵的转置的逆 等于 它的逆的转置;
4. 矩阵乘积的你等于矩阵的逆的相反顺序的乘积:
5. 奇异矩阵的行列式为 0 ,非奇异矩阵的行列式不等于 0
如果向量v用矩阵M来进行变换,用M的逆矩阵再进行变换,将会得到原向量:
若方阵M是正交,则当且仅当M与它转置M_t 的乘积等于单位矩阵:
如果一个矩阵是正交,那么它的转置等于它的逆:
正交矩阵对我们非常有用,因为很容易计算它的逆矩阵;
矩阵的正交必须下列条件:
1. 矩阵的每一行都是单位向量
2. 矩阵的所有行互相垂直