DX11编程(三):矩阵代数

时间:2022-12-03 03:56:50

矩阵篇

在3D计算机绘图中,我们用矩阵(matrix)来紧凑地描述几何变换,比如缩放、旋转和平移,并将点或向量的坐标从一种坐标系转换到另一种坐标系。

一、矩阵的定义

一个m×n矩阵M是一个m行、n列的矩形实数数组。行和列的数量指定了矩阵的维数。矩阵中的数值称为元素。我们使用行和列组成的双下标Mij来标识矩阵元素,其中,第1个下标指定了元素的所在的行,第2个下标指定了元素所在的列。

二、矩阵的乘法

假设A是一个m×n矩阵,B是一个n×p矩阵,乘积AB由C表示,则C是一个m×p矩阵,其中结果C的第ij个元素的值等于A的第i个行向量和B的第j个列向量的点积,也就是,

Cij=Ai,* ∙B*,j (2.1)

注意,矩阵A的列数必须与矩阵B的行数相同,只有这样才能计算矩阵乘积C,也就是说,A中的行向量的维数必须与B中的列向量的维数相同。如果维数不同,那么公式2.1中的点积就没有意义。

矩阵乘法具有一些有用的代数特性。例如,可以将矩阵乘法分配给每个加法分量:A(B+C)=AB+AC、(A+B)C=AC+BC。有时我们会使用矩阵乘法的结合律来改变相乘矩阵的计算顺序:
(AB)C=A(BC)

三、转置矩阵

对一个矩阵的行和列进行互换,即可得到该矩阵的转置(transpose)矩阵。一个m×n矩阵的转置矩阵是一个n×m矩阵。我们将矩阵M的转置矩阵记作MT
矩阵转置有以下有用的特点:

1.(A+B)T=AT+BT

2.(cA)T=cAT

3.(AB)T=BTAT

4.(AT)T=A

5.(A-1)T=(AT)-1

四、单位矩阵

有一种特殊的矩阵称为单位矩阵(identity matrix)。单位矩阵是一个正方形矩阵,它除了对角线上的元素为1外,其他元素均为0。例如,下面是2×2、3×3和4×4单位矩阵。

100010001

单位矩阵的作用相当于一个乘法单位;也就是,如果A是一个m×n矩阵,B是一个n×p矩阵,I是n×n单位矩阵,那么
AI=A且IB=B
换句话说,将一个矩阵与单位矩阵相乘,得到结果不会发生改变。单位矩阵可以被看成是矩阵中的数字1。如果M是一个正方形矩阵,那么M与单位矩阵之间的相乘次序可以交换:
MI=IM=M

五、矩阵的其他属性

矩阵的行列式、伴随矩阵、逆矩阵 请等参考网上知识自行学习。这里不再赘述。
1.一个m×n矩阵M是m行、n列的矩形实数数组。当且仅当维数相同的两个矩阵的对应元素相等时,这两个矩阵相等。将维数相同的两个矩阵相加,即是将矩阵中的对应元素相加。将一个标量与矩阵相乘,即是将标量与矩阵中的每个元素相乘。

2.如果A是一个m×n矩阵,B是一个n×p矩阵,C表示AB的乘积,那么C是一个m×p矩阵,其中结果C的第ij个元素等于A中的第i个行向量与B中的第j个列向量的点积;也就是,Cij=Ai,•B,j。

3.矩阵乘法不满足交换律(即,多数情况下AB≠BA)。矩阵乘法满足结合律:(AB)C=A(BC)。

4.对矩阵的行和列进行互换,即可得到矩阵的转置矩阵。因此,一个m×n矩阵的转置矩阵是一个n×m矩阵。我们使用MT表示矩阵M的转置矩阵。

5.单位矩阵是一种正方形矩阵,它除了对角线上的元素值为1外,其他元素均为0。

6.矩阵行列式detA是一个特殊的函数,它可以将一个正方矩阵转换为一个实数。只有在detA≠0的情况下,正方矩阵才是是可逆的。我们可以使用行列式计算逆矩阵。

7.将一个矩阵与它的逆矩阵相乘,结果为单位矩阵:MM-1=M-1M=I。如果一个矩阵存在逆矩阵,则该逆矩阵是唯一的。只有正方形矩阵会有逆矩阵,但不是所有的正方形矩阵都可逆。逆矩阵可以使用公式

A−1=A/ detA得到,其中A*是伴随矩阵(A的余子矩阵的转置)。