矩阵运算与特殊矩阵

本文整理了常见的矩阵运算及几类重要的特殊矩阵,并给出对应的数学表达式与 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

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注