矩阵相乘的步骤如下:
确认矩阵是否可以相乘
只有当第一个矩阵的列数等于第二个矩阵的行数时,两个矩阵才能相乘。
初始化结果矩阵
结果矩阵的行数等于第一个矩阵的行数,列数等于第二个矩阵的列数。
将结果矩阵的所有元素初始化为0。
计算矩阵乘法
遍历第一个矩阵的每一行和第二个矩阵的每一列。
对于每一对行和列,计算它们的点积(即将对应元素相乘并求和),然后将结果存储在结果矩阵的相应位置。
处理特殊情况
如果在计算过程中发现某个元素的值为0(即第一个矩阵的当前行与第二个矩阵的所有列都无法组成点积),则忽略该元素,不将其添加到结果矩阵中。
示例
假设有两个矩阵 $A$ 和 $B$:
$A$ 是一个 $3 \times 3$ 的矩阵:
$$
A = \begin{pmatrix}
1 & 2 & 3 \\
4 & 5 & 6 \\
7 & 8 & 9
\end{pmatrix}
$$
$B$ 是一个 $3 \times 2$ 的矩阵:
$$
B = \begin{pmatrix}
1 & 2 \\
3 & 4 \\
5 & 6
\end{pmatrix}
$$
确认可以相乘
$A$ 的列数(3)等于 $B$ 的行数(3),所以可以相乘。
初始化结果矩阵 $C$
$C$ 是一个 $3 \times 2$ 的矩阵,所有元素初始化为0:
$$
C = \begin{pmatrix}
0 & 0 \\
0 & 0 \\
0 & 0
\end{pmatrix}
$$
计算矩阵乘法
计算 $C$ 的第一个元素(第一行第一列):
$$
C = 1 \times 1 + 2 \times 3 + 3 \times 5 = 1 + 6 + 15 = 22
$$
计算 $C$ 的第二个元素(第一行第二列):
$$
C = 1 \times 2 + 2 \times 4 + 3 \times 6 = 2 + 8 + 18 = 28
$$
计算 $C$ 的第三个元素(第二行第一列):
$$
C = 4 \times 1 + 5 \times 3 + 6 \times 5 = 4 + 15 + 30 = 49
$$
计算 $C$ 的第四个元素(第二行第二列):
$$
C = 4 \times 2 + 5 \times 4 + 6 \times 6 = 8 + 20 + 36 = 64
$$
计算 $C$ 的第五个元素(第三行第一列):
$$
C = 7 \times 1 + 8 \times 3 + 9 \times 5 = 7 + 24 + 45 = 76
$$
计算 $C$ 的第六个元素(第三行第二列):
$$
C = 7 \times 2 + 8 \times 4 + 9 \times 6 = 14 + 32 + 54 = 100
$$
结果矩阵 $C$
$$
C = \begin{pmatrix}
22 & 28 \\
49 & 64 \\
76 & 100
\end{pmatrix}
$$
总结
矩阵相乘需要遵循一定的规则,只有当第一个矩阵的列数等于第二个矩阵的行数时才能进行相乘。相乘的结果是一个新的矩阵,其行数等于第一个矩阵的行数,列数等于第二个矩阵的列数。通过遍历两个矩阵的对应行和列,并计算它们的点积