本文整理了常见的矩阵运算及几类重要的特殊矩阵,并给出对应的数学表达式与 NumPy 实现方法。
一、矩阵运算
1. 标量乘法(Scalar Multiplication)
标量乘法是指将矩阵中的每个元素乘以一个标量。
c A = c \begin{bmatrix} a_{11} & a_{12} \\ a_{21} & a_{22} \end{bmatrix} = \begin{bmatrix} c a_{11} & c a_{12} \\ c a_{21} & c a_{22} \end{bmatrix}
即:
c * A
2. Hadamard 乘积(Element-wise Product)
Hadamard 乘积是矩阵对应元素相乘,要求矩阵大小一致。
A \circ B = \begin{bmatrix} a_{11} & a_{12} \\ a_{21} & a_{22} \end{bmatrix} \circ \begin{bmatrix} b_{11} & b_{12} \\ b_{21} & b_{22} \end{bmatrix} = \begin{bmatrix} a_{11}b_{11} & a_{12}b_{12} \\ a_{21}b_{21} & a_{22}b_{22} \end{bmatrix}
即:
A * B
3. 矩阵乘法(Matrix Product)
矩阵乘法遵循行列相乘的规则,矩阵 A 的列数必须等于矩阵 B 的行数。
A B = \begin{bmatrix} a_{11} & a_{12} \\ a_{21} & a_{22} \end{bmatrix} \cdot \begin{bmatrix} b_{11} & b_{12} \\ b_{21} & b_{22} \end{bmatrix} = \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}
即:
A @ B
或
numpy.dot(A, B)
注意
AB \neq BA
4. Kronecker 积(Tensor Product)
Kronecker 积将矩阵 A 和 B 扩展为更大的矩阵,每个元素乘以整个矩阵 B。
\begin{align} A \otimes B &= \begin{bmatrix} a_{11}B & a_{12}B & \cdots & a_{1n}B \\ a_{21}B & a_{22}B & \cdots & a_{2n}B \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1}B & a_{m2}B & \cdots & a_{mn}B \end{bmatrix} \notag \\ &= \begin{bmatrix} a_{11}b_{11} & a_{11}b_{12} & \cdots & a_{12}b_{11} & a_{12}b_{12} & \cdots & a_{1n}b_{1q} \\ a_{11}b_{21} & a_{11}b_{22} & \cdots & a_{12}b_{21} & a_{12}b_{22} & \cdots & a_{1n}b_{2q} \\ \vdots & \vdots & \ddots & \vdots & \vdots & \ddots & \vdots \\ a_{m1}b_{p1} & a_{m1}b_{p2} & \cdots & a_{m2}b_{p1} & a_{m2}b_{p2} & \cdots & a_{mn}b_{pq} \end{bmatrix} \end{align}
即:
numpy.kron(A, B)
二、特殊矩阵
1. 单位矩阵(Identity Matrix)
I_n = \begin{bmatrix} 1 & 0 & \cdots & 0 \\ 0 & 1 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & 1 \end{bmatrix}
即:
numpy.eye(n)
2. 逆矩阵(Inverse Matrix)
A^{-1} A = AA^{-1} = I
即:
numpy.linalg.inv(a)
3. 转置矩阵(Transpose Matrix)
A^T = \begin{bmatrix} a_{11} & a_{21} & \cdots & a_{m1} \\ a_{12} & a_{22} & \cdots & a_{m2} \\ \vdots & \vdots & \ddots & \vdots \\ a_{1n} & a_{2n} & \cdots & a_{mn} \end{bmatrix}
即:
A.T
注意
(XY)^T = Y^T X^T
4. 正交矩阵(Orthogonal Matrix)
Q^T Q = QQ^T = I
5. 共轭矩阵(Complex Conjugate)
A^* = \overline{A} = [\overline{a_{ij}}]
即:
numpy.conj(A)
6. 厄米矩阵(Hermitian Matrix)
H = H^\dagger = (H^*)^T = (H^T)^*
7. 酉矩阵(Unitary Matrix)
U^\dagger U = I
发表回复