矩阵相乘的计算方式使用的是矩阵乘法规则。在矩阵乘法中,我们将第一个矩阵的每一行与第二个矩阵的每一列进行对应元素的乘法,并将结果相加,得到新矩阵的对应位置的元素。
让我们将其具体解释一下:
给定两个矩阵:
A
=
[
a
11
a
12
a
21
a
22
]
,
B
=
[
b
11
b
12
b
21
b
22
]
A = \begin{bmatrix} a_{11} & a_{12} \\ a_{21} & a_{22} \end{bmatrix}, \quad B = \begin{bmatrix} b_{11} & b_{12} \\ b_{21} & b_{22} \end{bmatrix}
A=[a11a21a12a22],B=[b11b21b12b22]
我们可以计算它们的乘积
C
=
A
B
C = AB
C=AB:
C
=
[
a
11
b
11
+
a
12
b
21
a
11
b
12
+
a
12
b
22
a
21
b
11
+
a
22
b
21
a
21
b
12
+
a
22
b
22
]
C = \begin{bmatrix} a_{11}b_{11} + a_{12}b_{21} & a_{11}b_{12} + a_{12}b_{22} \\ a_{21}b_{11} + a_{22}b_{21} & a_{21}b_{12} + a_{22}b_{22} \end{bmatrix}
C=[a11b11+a12b21a21b11+a22b21a11b12+a12b22a21b12+a22b22]
在你提供的例子中,我们有:
A
=
[
1
2
3
4
]
,
B
=
[
5
6
7
8
]
A = \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix}, \quad B = \begin{bmatrix} 5 & 6 \\ 7 & 8 \end{bmatrix}
A=[1324],B=[5768]
现在,我们可以进行乘法运算:
C
=
A
B
=
[
1
⋅
5
+
2
⋅
7
1
⋅
6
+
2
⋅
8
3
⋅
5
+
4
⋅
7
3
⋅
6
+
4
⋅
8
]
=
[
19
22
43
50
]
C = AB = \begin{bmatrix} 1 \cdot 5 + 2 \cdot 7 & 1 \cdot 6 + 2 \cdot 8 \\ 3 \cdot 5 + 4 \cdot 7 & 3 \cdot 6 + 4 \cdot 8 \end{bmatrix} = \begin{bmatrix} 19 & 22 \\ 43 & 50 \end{bmatrix}
C=AB=[1⋅5+2⋅73⋅5+4⋅71⋅6+2⋅83⋅6+4⋅8]=[19432250]
因此,矩阵相乘的计算方式是通过将第一个矩阵的每一行与第二个矩阵的每一列相乘,并将结果相加得到新矩阵的对应位置的元素。这是矩阵乘法的基本规则。
我们有一个 numpy 数组,
a = np.array([
[1, 2],
[3, 4]
])
b = np.array([
[5, 6],
[7, 8]
])
print(a.dot(b))
print(np.dot(a, b))
结果输出是
[[19 22]
[43 50]]
[[19 22]
[43 50]]