线性代数听起来很吓人,但它的核心思想非常具体。向量、矩阵以及它们之间的运算描述了从物理模拟到机器学习模型的一切。本指南使基础知识易于理解——无需高级符号。
什么是向量?
矢量只是一个具有大小(大小)和方向的量。在 2D 中,像 v = [3, 4] 这样的向量表示“向右移动 3 个单位,向上移动 4 个单位”。在 3D 中,您添加第三个分量:v = [3, 4, 2]。
在几何上,向量是从原点到一点的箭头。从代数角度来说,它是一个有序的数字(分量)列表。两种视图同样有效,并且您将不断在它们之间切换。
向量的大小(长度)使用推广到 n 维的毕达哥拉斯定理:
|v| = √(v₁² + v₂² + v₃²)
对于 v = [3, 4]: |v| = √(9 + 16) = √25 = 5
单位向量的大小正好为 1。要将任何向量转换为单位向量,请将每个分量除以大小:v̂ = v / |v|。
向量加法和标量乘法
两个向量按分量相加:
[1, 2, 3] + [4, 5, 6] = [5, 7, 9]
从几何角度来说,这就是“从头到尾”的规则——将第二个向量的尾部放在第一个向量的头部。
乘以标量(普通数)可缩放每个分量:
3 × [1, 2, 3] = [3, 6, 9]
正标量拉伸向量; −1 的标量反转其方向; 0 到 1 之间的标量会缩小它。
点积
两个向量的点积产生一个标量(单个数字):
A·B = a₁b₁ + a₂b₂ + a₃b₃
对于 A = [1, 2, 3] 和 B = [4, 5, 6]:
A·B = (1×4) + (2×5) + (3×6) = 4 + 10 + 18 = 32
几何意义更能说明问题:
A·B = |A| × |B| × cos(θ)
其中 θ 是向量之间的角度。这给了我们一个重要的见解:
- **A·B> 0:**角度< 90° — 向量指向大致相同的方向
- A·B = 0: 角度 = 90° — 矢量是 垂直(正交)
- **A·B< 0:**角度> 90° — 向量指向大致相反的方向
点积在应用数学中无处不在。机器学习使用余弦相似度(点积除以幅度乘积)来比较文档和用户偏好。物理学用它来计算功:W = F·d(力点位移)。
叉积
叉积仅适用于 3D 并生成垂直于两个输入的向量(不是标量):
A × B = [a₂b₃ - a₃b₂, a₃b₁ - a₁b₃, a₁b₂ - a₂b₁]
方向遵循右手法则:手指指向A方向,向B方向卷曲,拇指指向A×B方向。
A × B 的大小等于两个向量所跨越的平行四边形的面积:
|A × B| = |A| × |B| × sin(θ)
与点积不同,叉积是反交换的:A × B = −(B × A)。
应用: 物理学中的扭矩为 τ = r × F。计算机图形学中的表面法线(表面面向的方向)被计算为边缘向量的叉积。
什么是矩阵?
矩阵是按行和列组织的矩形数字数组。 3×2 矩阵有 3 行和 2 列。
矩阵表示线性变换——拉伸、旋转、反射或剪切向量的函数。将向量乘以矩阵即可对其进行变换。
对于 2×2 矩阵 A 和向量 v:
A = [[3, 0], v = [1] Av = [3×1 + 0×2] = [3]
[0, 2]] [2] [0×1 + 2×2] [4]
此变换将 x 分量缩放 3 倍,将 y 分量缩放 2 倍。
矩阵乘法
两个矩阵 A 和 B 相乘得到矩阵 C = AB,其中每个元素 c_ij 是 A 的第 i 行与 B 的 j 列的点积。
[1, 2] × [5, 6] = [(1×5 + 2×7), (1×6 + 2×8)] = [19, 22]
[3, 4] [7, 8] [(3×5 + 4×7), (3×6 + 4×8)] [43, 50]
关键规则:
- 仅当 A 中的列数等于 B 中的行数时才定义 AB
- 矩阵乘法通常不可交换:AB ≠ BA
行列式
方阵的行列式是一个标量,它告诉您矩阵缩放面积(2D)或体积(3D)的程度。
对于 2×2 矩阵:
det [[a, b]] = ad - bc
[[c, d]]
| 决定性价值 | 意义 |
|---|---|
| 检测> 0 | 转型保持方向 |
| 德特0 | 变换反映(翻转方向) |
| 德特 | |
| 德特 | |
| 检测=0 | 变换是单一的——压缩到更低的维度 |
当 det = 0 时,矩阵是奇异的 — 它没有逆矩阵,并且它表示的方程组要么没有解,要么有无穷多个。
矩阵逆
逆 A⁻1 满足 AA⁻1 = I(单位矩阵)。仅当 det(A) ≠ 0 时才存在。
对于 2×2 矩阵:
A = [[a, b]] A⁻¹ = (1/det) × [[ d, -b]]
[[c, d]] [[-c, a]]
矩阵逆用于求解线性方程组:如果 Ax = b,则 x = A⁻1b。
在实践中,大型系统通过高斯消元法求解,而不是直接计算 A⁻1——数值上更高效、更稳定。
特征值和特征向量
矩阵 A 的 特征向量 是一个特殊的向量 v,当它被 A 变换时,只会缩放(不会旋转):
Av = λv
标量 λ 是相应的特征值——它告诉你特征向量被拉伸或收缩了多少。
要找到特征值,请求解特征方程:
det(A - λI) = 0
对于 2×2 矩阵,这给出了一个具有(通常)两个解的二次方程。
为什么特征值很重要?
- 主成分分析 (PCA): 数据协方差矩阵的特征向量定义最大方差的方向 - 在保留信息的同时降低维度的“主成分”
- Google PageRank: 网络链接矩阵的主导特征向量给出了随机网络冲浪者的平稳分布
- 量子力学: 可观测的量(能级、自旋态)是算子的特征值
极坐标
虽然坐标系严格来说不是线性代数的一部分,但它与变换有关。 极坐标 通过距原点的距离 r 和距正 x 轴的角度 θ 来表示任何 2D 点。
系统间转换:
Cartesian → Polar: r = √(x² + y²), θ = atan2(y, x)
Polar → Cartesian: x = r cos(θ), y = r sin(θ)
极坐标简化了许多涉及圆和旋转的问题——笛卡尔形式中复杂的方程在极坐标形式中变得优雅。
将它们放在一起
线性代数的强大之处在于它可以让您将多个变量作为单个数学对象同时处理。具有数百万个参数的机器学习模型只是一系列矩阵乘法和非线性函数。 3D 游戏引擎每秒通过旋转、缩放和投影矩阵转换数百万个顶点。
基本原理——向量、点积、矩阵、行列式——是所有这些的基础。