2-2-2 矩阵
矩阵是二维的张量,拥有行(Row)与列(Column),可用于表达一个平面N个点(N×2)、或一个3D空间N个点(N×3),例如:
矩阵加法/减法与向量相似,相同位置的元素作运算即可,但乘法运算通常是指内积,使用@。
以下程序请参考02_02_线性代数_矩阵.ipynb。
1.两个矩阵相加
程序代码如下:
2.两个矩阵相乘
解题:左边矩阵的第二维须等于右边矩阵的第一维,即(m, k)×(k, n)=(m, n),则有
其中左上角的计算过程为(1,2,3)×(9,7,5)=(1×9)+(2×7)+(3×5)=38,右上角的计算过程为(1,2,3)×(8,6,4)=(1×8)+(2×6)+(3×4)=32,以此类推,如图2.7所示。
图2.7 矩阵相乘
程序代码如下:
3.矩阵(A、B)相乘
A×B是否等于B×A?程序代码如下:
执行结果:A×B不等于B×A。
4.特殊矩阵
矩阵在运算时,除了一般的加减乘除外,还有一些特殊的矩阵,包括转置矩阵(Transpose)、反矩阵(Inverse)、对角矩阵(Diagonal Matrix)、单位矩阵(Identity Matrix)等。
(1)转置矩阵:列与行互换。例如:
(AT)T = A:进行两次转置,会恢复成原来的矩阵。
对上述矩阵作转置。程序代码如下:
也可以使用np.transpose(A)。
(2)反矩阵(A-1):A必须为方阵,即列数与行数须相等,且必须是非奇异方阵(Non-singular),即每一列或行之间不可以相异于其他列或行。程序代码如下:
执行结果如下:
(3)单位矩阵:若A为非奇异(Non-singular)矩阵,则A @ A-1 =单位矩阵(I)。所谓的非奇异矩阵是指任一行不能为其他行的倍数或多行的组合,包括各种四则运算,矩阵的列也须符合相同的规则。
试对下列矩阵验算A @ A-1是否等于单位矩阵(I)。
程序代码如下:
执行结果如下:
结果为单位矩阵,表示A为非奇异矩阵。
试对下列矩阵验算A @ A-1是否等于单位矩阵(I)。
程序代码如下:
执行结果如下:
A为奇异(Singular)矩阵,因为
第二列=第一列+ 1
第三列=第一列+ 2
故A @ A-1不等于单位矩阵。