跳到主要内容

线性代数:矩阵与变换

矩阵基础

一个 m×nm \times n 矩阵 AAmmnn 列:

A=(a11a12a1na21a22a2nam1am2amn)A = \begin{pmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \end{pmatrix}


矩阵乘法

AAm×km \times k 矩阵,BBk×nk \times n 矩阵,则 C=ABC = ABm×nm \times n 矩阵:

cij=l=1kailbljc_{ij} = \sum_{l=1}^{k} a_{il} b_{lj}


行列式

2×22 \times 2 矩阵的行列式:

det(A)=abcd=adbc\det(A) = \begin{vmatrix} a & b \\ c & d \end{vmatrix} = ad - bc

3×33 \times 3 矩阵按第一行展开:

det(A)=a11a22a23a32a33a12a21a23a31a33+a13a21a22a31a32\det(A) = a_{11}\begin{vmatrix}a_{22}&a_{23}\\a_{32}&a_{33}\end{vmatrix} - a_{12}\begin{vmatrix}a_{21}&a_{23}\\a_{31}&a_{33}\end{vmatrix} + a_{13}\begin{vmatrix}a_{21}&a_{22}\\a_{31}&a_{32}\end{vmatrix}


特征值与特征向量

若存在非零向量 v\mathbf{v} 使得:

Av=λvA\mathbf{v} = \lambda\mathbf{v}

λ\lambda特征值v\mathbf{v} 为对应的特征向量

求特征值:解特征方程

det(AλI)=0\det(A - \lambda I) = 0


矩阵的几何意义

2×22 \times 2 矩阵代表平面线性变换:

变换类型矩阵
旋转角 θ\theta(cosθsinθsinθcosθ)\begin{pmatrix}\cos\theta & -\sin\theta\\ \sin\theta & \cos\theta\end{pmatrix}
x 轴缩放 kk(k001)\begin{pmatrix}k & 0\\ 0 & 1\end{pmatrix}
关于 x 轴翻转(1001)\begin{pmatrix}1 & 0\\ 0 & -1\end{pmatrix}

Manim 示例:矩阵变换可视化

from manim import *

class MatrixTransform(LinearTransformationScene):
def __init__(self, **kwargs):
super().__init__(
show_basis_vectors=True,
**kwargs
)

def construct(self):
matrix = [[0, -1], [1, 0]] # 旋转 90°
label = MathTex(
r"A = \begin{pmatrix}0 & -1\\ 1 & 0\end{pmatrix}"
).to_corner(UL)
self.add(label)
self.apply_matrix(matrix)
self.wait()