行列式、特征值、SVD 等知识点记录(待补充)

在进行单应矩阵求解等任务时,SVD 分解几乎无处不在。但很多人套完公式后仍会困惑:为什么取 V 的最后一列就能作为最终解?为了回答这个问题,本文梳理了从行列式、特征值到 SVD 解线性方程的一系列基础知识点。同时也要注意,SVD 得到的结果有时只是初始值,若想获得更高精度,通常还需借助非线性优化------这在相机内外参标定、多目相机优化、运动恢复结构、机械臂手眼标定中都非常常见。

一、行列式(Determinant)

1.1 定义与几何意义

  • 2×2 矩阵:

A=abcd A = \begin{bmatrix}a & b\\c & d\end{bmatrix} A=acbd

det⁡(A)=ad−bc \det(A) = ad - bc det(A)=ad−bc

几何意义:两个列向量张成的平行四边形的有向面积。

  • 3×3 矩阵:

A=abcdefghi A = \begin{bmatrix} a & b & c\\ d & e & f\\ g & h & i \end{bmatrix} A= adgbehcfi

det⁡(A)=a(ei−fh)−b(di−fg)+c(dh−eg) \det(A) = a(ei - fh) - b(di - fg) + c(dh - eg) det(A)=a(ei−fh)−b(di−fg)+c(dh−eg)

这是按第一行展开的结果,几何意义是三个列向量张成的平行六面体的有向体积。

1.2 关键性质

  • det⁡(A)=0\det(A) = 0det(A)=0 ⇔\Leftrightarrow⇔ 矩阵不可逆(不满秩)⇔\Leftrightarrow⇔ 列向量线性相关。
  • det⁡(A)≠0\det(A) \neq 0det(A)=0 ⇔\Leftrightarrow⇔ 矩阵可逆(满秩)。
  • det⁡(AB)=det⁡(A)det⁡(B)\det(AB) = \det(A)\det(B)det(AB)=det(A)det(B),det⁡(I)=1\det(I) = 1det(I)=1,det⁡(AT)=det⁡(A)\det(A^T) = \det(A)det(AT)=det(A)。

1.3 为什么 det⁡(A−λI)=0\det(A - \lambda I) = 0det(A−λI)=0 能求特征值?

特征值定义:存在非零向量 v\mathbf{v}v,使得 Av=λvA\mathbf{v} = \lambda \mathbf{v}Av=λv。

移项得 (A−λI)v=0(A - \lambda I)\mathbf{v} = 0(A−λI)v=0。

齐次方程有非零解的充要条件是系数矩阵不可逆,即:

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

这就是特征方程。


二、特征值与特征向量

2.1 定义

对矩阵 AAA,如果存在非零向量 v\mathbf{v}v 和标量 λ\lambdaλ,使得:

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

则 v\mathbf{v}v 是特征向量 ,λ\lambdaλ 是特征值(标量)。

几何意义:矩阵 AAA 作用在特征向量上,方向不变 ,长度缩放 λ\lambdaλ 倍。

2.2 求解步骤(以 2×2 为例)

A=2112 A = \begin{bmatrix}2 & 1\\1 & 2\end{bmatrix} A=2112

  1. 求特征值 :解 det⁡(A−λI)=0\det(A - \lambda I) = 0det(A−λI)=0

det⁡2−λ112−λ=(2−λ)2−1=0 \det\begin{bmatrix}2-\lambda & 1\\1 & 2-\lambda\end{bmatrix} = (2-\lambda)^2 - 1 = 0 det2−λ112−λ=(2−λ)2−1=0

(2−λ)2=1  ⟹  2−λ=±1  ⟹  λ1=3,λ2=1 (2-\lambda)^2 = 1 \implies 2-\lambda = \pm 1 \implies \lambda_1 = 3, \lambda_2 = 1 (2−λ)2=1⟹2−λ=±1⟹λ1=3,λ2=1

  1. 求特征向量 :对每个 λ\lambdaλ,解 (A−λI)v=0(A - \lambda I)\mathbf{v} = 0(A−λI)v=0

对 λ1=3\lambda_1 = 3λ1=3:

−111−1v=0  ⟹  v1=v2 \begin{bmatrix}-1 & 1\\1 & -1\end{bmatrix}\mathbf{v} = 0 \implies v_1 = v_2 −111−1v=0⟹v1=v2

单位化:v1=1211\mathbf{v}_1 = \frac{1}{\sqrt{2}}\begin{bmatrix}1\\1\end{bmatrix}v1=2 111

对 λ2=1\lambda_2 = 1λ2=1:

1111v=0  ⟹  v1=−v2 \begin{bmatrix}1 & 1\\1 & 1\end{bmatrix}\mathbf{v} = 0 \implies v_1 = -v_2 1111v=0⟹v1=−v2

单位化:v2=121−1\mathbf{v}_2 = \frac{1}{\sqrt{2}}\begin{bmatrix}1\\-1\end{bmatrix}v2=2 11−1

2.3 特征值个数与维度

  • n×nn \times nn×n 矩阵在复数域中恰好有 nnn 个特征值(计重数)。
  • 互异特征值个数 ≤ nnn。
  • 线性无关特征向量个数 ≤ nnn,等于 nnn 当且仅当可对角化。

2.4 复特征值

实矩阵可能有复特征值,总是共轭成对出现。例如旋转矩阵:

R=0−110,λ=±i R = \begin{bmatrix}0 & -1\\1 & 0\end{bmatrix}, \quad \lambda = \pm i R=01−10,λ=±i

复特征值对应旋转+缩放,在动力系统中表示振荡。

2.5 应用

  • 矩阵幂 :Ak=VΛkV−1A^k = V\Lambda^k V^{-1}Ak=VΛkV−1,大特征值方向主导长期行为。
  • PCA:协方差矩阵的特征值表示方差,大特征值方向保留,小特征值方向丢弃。
  • 振动:特征值 = 固有频率平方。
  • 稳定性:特征值实部符号决定系统稳定与否。

三、矩阵范数与条件数

3.1 向量范数

向量 y\mathbf{y}y 的欧几里得范数:

∥y∥=∑iyi2 \|\mathbf{y}\| = \sqrt{\sum_i y_i^2} ∥y∥=i∑yi2

∥y∥2=yTy=∑iyi2\|\mathbf{y}\|^2 = \mathbf{y}^T\mathbf{y} = \sum_i y_i^2∥y∥2=yTy=∑iyi2。

3.2 矩阵范数

范数 计算 含义
∣A∣1|A|_1∣A∣1 最大绝对列和 列方向最大放大
∣A∣∞|A|_\infty∣A∣∞ 最大绝对行和 行方向最大放大
∣A∣2|A|_2∣A∣2 最大奇异值 σmax⁡\sigma_{\max}σmax 最大拉伸倍数
∣A∣F|A|_F∣A∣F ∑aij2\sqrt{\sum a_{ij}^2}∑aij2 整体能量

3.3 条件数

κ(A)=σmax⁡σmin⁡=∥A∥2⋅∥A−1∥2 \kappa(A) = \frac{\sigma_{\max}}{\sigma_{\min}} = \|A\|_2 \cdot \|A^{-1}\|_2 κ(A)=σminσmax=∥A∥2⋅∥A−1∥2

  • 条件数小:良态,误差不放大。
  • 条件数大:病态,误差被放大。
  • 条件数 = ∞:奇异,不可逆。

几何意义:单位圆变换为椭圆,条件数 = 长轴 / 短轴。

3.4 误差放大不等式

解 Ax=bA\mathbf{x} = \mathbf{b}Ax=b,若 b\mathbf{b}b 有误差 Δb\Delta\mathbf{b}Δb,则:

∥Δx∥∥x∥≤κ(A)⋅∥Δb∥∥b∥ \frac{\|\Delta\mathbf{x}\|}{\|\mathbf{x}\|} \leq \kappa(A) \cdot \frac{\|\Delta\mathbf{b}\|}{\|\mathbf{b}\|} ∥x∥∥Δx∥≤κ(A)⋅∥b∥∥Δb∥

解的相对误差 ≤ 条件数 × 输入的相对误差。

3.5 为什么 ATAA^T AATA 的条件数是 AAA 的平方?

ATAA^T AATA 的特征值是 AAA 奇异值的平方:

κ(ATA)=σmax⁡2σmin⁡2=κ(A)2 \kappa(A^T A) = \frac{\sigma_{\max}^2}{\sigma_{\min}^2} = \kappa(A)^2 κ(ATA)=σmin2σmax2=κ(A)2

所以正规方程 ATAx=ATbA^T A \mathbf{x} = A^T \mathbf{b}ATAx=ATb 病态时极不稳定。


四、SVD 奇异值分解

4.1 定义

对任意 m×nm \times nm×n 矩阵 AAA:

A=UΣVT A = U \Sigma V^T A=UΣVT

  • UUU:m×mm \times mm×m 正交矩阵,列向量 ui\mathbf{u}_iui 是左奇异向量。
  • VVV:n×nn \times nn×n 正交矩阵,列向量 vi\mathbf{v}_ivi 是右奇异向量。
  • Σ\SigmaΣ:m×nm \times nm×n 对角矩阵,对角线是奇异值 σ1≥σ2≥⋯≥0\sigma_1 \ge \sigma_2 \ge \dots \ge 0σ1≥σ2≥⋯≥0。

4.2 几何意义:转-拉-转

Ax=UΣVTx A\mathbf{x} = U \Sigma V^T \mathbf{x} Ax=UΣVTx

从右往左作用:

  1. VTxV^T \mathbf{x}VTx:旋转到标准方向。
  2. Σ\SigmaΣ:沿标准方向拉伸/压缩。
  3. UUU:旋转到最终方向。

4.3 核心关系 Avi=σiuiA\mathbf{v}_i = \sigma_i \mathbf{u}_iAvi=σiui 的推导

这个关系不是凭空定义的,而是从 SVD 定义 A=UΣVTA = U\Sigma V^TA=UΣVT 直接推出来的。

步骤:

从 A=UΣVTA = U \Sigma V^TA=UΣVT 出发,两边右乘 vi\mathbf{v}_ivi:

Avi=UΣVTvi A \mathbf{v}_i = U \Sigma V^T \mathbf{v}_i Avi=UΣVTvi

  1. 因为 VVV 是正交矩阵,VTV=IV^T V = IVTV=I,所以 VTvi=eiV^T \mathbf{v}_i = \mathbf{e}_iVTvi=ei(第 iii 个标准基向量)。
  2. Σ\SigmaΣ 是对角矩阵,Σei=σiei(m)\Sigma \mathbf{e}_i = \sigma_i \mathbf{e}_i^{(m)}Σei=σiei(m)(mmm 维标准基向量)。
  3. Uei(m)=uiU \mathbf{e}_i^{(m)} = \mathbf{u}_iUei(m)=ui(UUU 的第 iii 列)。

合并:

Avi=UΣei=U(σiei(m))=σiui A \mathbf{v}_i = U \Sigma \mathbf{e}_i = U (\sigma_i \mathbf{e}_i^{(m)}) = \sigma_i \mathbf{u}_i Avi=UΣei=U(σiei(m))=σiui

所以:

Avi=σiui \boxed{A \mathbf{v}_i = \sigma_i \mathbf{u}_i} Avi=σiui

几何意义 :矩阵 AAA 作用在右奇异向量 vi\mathbf{v}_ivi 上,方向变成左奇异向量 ui\mathbf{u}_iui,长度缩放 σi\sigma_iσi 倍。

注意 :ui\mathbf{u}_iui 是 UUU 的列向量,vi\mathbf{v}_ivi 是 VVV 的列向量。若 AAA 对称且特征值非负,则 ui=vi\mathbf{u}_i = \mathbf{v}_iui=vi。

4.4 如何求 SVD

  1. 计算 ATAA^T AATA(n×nn \times nn×n 对称半正定)。
  2. 对 ATAA^T AATA 做特征值分解:ATA=VΛVTA^T A = V \Lambda V^TATA=VΛVT。
    • VVV 的列 = 右奇异向量 vi\mathbf{v}_ivi。
    • 特征值 λi=σi2\lambda_i = \sigma_i^2λi=σi2。
  3. 奇异值 σi=λi\sigma_i = \sqrt{\lambda_i}σi=λi 。
  4. 左奇异向量:ui=1σiAvi\mathbf{u}_i = \frac{1}{\sigma_i} A \mathbf{v}_iui=σi1Avi。

4.5 伪逆

A+=VΣ+UT A^+ = V \Sigma^+ U^T A+=VΣ+UT

Σ+\Sigma^+Σ+ 是把非零奇异值取倒数再转置。

4.6 解线性方程

4.6.1 非齐次方程 Ax=bA\mathbf{x} = \mathbf{b}Ax=b(b≠0\mathbf{b} \neq 0b=0)

x=A+b=∑i=1ruiTbσivi \mathbf{x} = A^+ \mathbf{b} = \sum_{i=1}^r \frac{\mathbf{u}_i^T \mathbf{b}}{\sigma_i} \mathbf{v}_i x=A+b=i=1∑rσiuiTbvi

其中 rrr 是非零奇异值个数。

4.6.2 齐次方程 Ax=0A\mathbf{x} = 0Ax=0

把 x\mathbf{x}x 用右奇异向量展开:

x=c1v1+c2v2+⋯+cnvn \mathbf{x} = c_1\mathbf{v}_1 + c_2\mathbf{v}_2 + \dots + c_n\mathbf{v}_n x=c1v1+c2v2+⋯+cnvn

代入 Ax=0A\mathbf{x} = 0Ax=0,利用 Avi=σiuiA\mathbf{v}_i = \sigma_i \mathbf{u}_iAvi=σiui:

Ax=∑i=1nciσiui=0 A\mathbf{x} = \sum_{i=1}^n c_i \sigma_i \mathbf{u}_i = 0 Ax=i=1∑nciσiui=0

因为 ui\mathbf{u}_iui 是正交基,线性无关,所以每一项系数必须为零:

ciσi=0∀i c_i \sigma_i = 0 \quad \forall i ciσi=0∀i

  • 若 σi≠0\sigma_i \neq 0σi=0,则 ci=0c_i = 0ci=0。
  • 若 σi=0\sigma_i = 0σi=0,则 cic_ici 可任意。

所以只有零奇异值对应的系数可以非零。取最小奇异值对应的右奇异向量(即 VVV 的最后一列)作为解:

x=vn \mathbf{x} = \mathbf{v}_n x=vn

若没有零奇异值 ,则所有 ci=0c_i = 0ci=0,只有零解。但实际中取最小奇异值 对应的右奇异向量 vn\mathbf{v}_nvn,它使 ∥Ax∥=σn\|A\mathbf{x}\| = \sigma_n∥Ax∥=σn 在所有单位向量中最小,是"最接近零空间"的解。

验证 :Avn=σnunA\mathbf{v}_n = \sigma_n \mathbf{u}_nAvn=σnun。若 σn=0\sigma_n = 0σn=0,则精确为零;若 σn\sigma_nσn 很小,则近似为零。


五、线性方程求解与 SVD 应用

5.1 超定、欠定、秩亏

情况 条件 SVD 解
方阵满秩 m=nm=nm=n,满秩 精确解
超定 m>nm > nm>n,无精确解 最小二乘解
欠定 m<nm < nm<n,无穷多解 最小范数解
秩亏 不满秩 最小范数最小二乘解

5.2 具体例子:3×2 矩阵

A=100111,b=124 A = \begin{bmatrix}1 & 0\\0 & 1\\1 & 1\end{bmatrix}, \quad \mathbf{b} = \begin{bmatrix}1\\2\\4\end{bmatrix} A= 101011 ,b= 124

无精确解。SVD 求得最小二乘解:

x=4/37/3 \mathbf{x} = \begin{bmatrix}4/3\\7/3\end{bmatrix} x=4/37/3

残差 ∥Ax−b∥2=1/3\|A\mathbf{x} - \mathbf{b}\|^2 = 1/3∥Ax−b∥2=1/3。

5.3 正规方程 vs SVD

  • 正规方程:ATAx=ATbA^T A \mathbf{x} = A^T \mathbf{b}ATAx=ATb,条件数平方,病态时不稳定。
  • SVD:直接处理 AAA,条件数不变,稳定,可截断小奇异值。

5.4 非线性优化初值

线性方法(如 DLT)用 SVD 得到粗略解,作为非线性优化(如 Levenberg-Marquardt)的初值,最小化重投影误差。


六、非齐次方程与齐次方程的应用场景区别

6.1 数学含义的区别

  • 非齐次方程 Ax=bA\mathbf{x} = \mathbf{b}Ax=b,b≠0\mathbf{b} \neq 0b=0:

    • 几何上:x\mathbf{x}x 经过 AAA 变换后,要等于一个已知的非零向量。
    • 目标:找到 x\mathbf{x}x,使 AxA\mathbf{x}Ax 尽可能接近 b\mathbf{b}b。
    • 解的情况:可能有精确解、最小二乘解、最小范数解。
  • 齐次方程 Ax=0A\mathbf{x} = 0Ax=0:

    • 几何上:寻找那些被 AAA 变换后变成零的向量。
    • 目标:找到 AAA 的零空间(Null Space)。
    • 解的情况:如果 AAA 满秩,只有零解;如果 AAA 不满秩,有无穷多非零解,构成一个子空间。

6.2 解的性质对比

方面 非齐次 Ax=bA\mathbf{x} = \mathbf{b}Ax=b 齐次 Ax=0A\mathbf{x} = 0Ax=0
右端项 b≠0\mathbf{b} \neq 0b=0 000
解的存在性 可能无解、有唯一解、无穷多解 总有零解;有非零解当且仅当 AAA 不满秩
解的结构 特解 + 齐次解 一个线性子空间(零空间)
尺度 解是固定的,不能任意缩放 解可以任意缩放(若 x\mathbf{x}x 是解,cxc\mathbf{x}cx 也是解)
求解方法 SVD 伪逆 x=∑uiTbσivi\mathbf{x} = \sum \frac{\mathbf{u}_i^T\mathbf{b}}{\sigma_i}\mathbf{v}_ix=∑σiuiTbvi SVD 取 VVV 的最后一列 x=vn\mathbf{x} = \mathbf{v}_nx=vn

关键区别:

  • 非齐次方程的解是具体的、有尺度的。
  • 齐次方程的解是方向性的、可以缩放的。所以通常需要额外约束(如 ∥x∥=1\|\mathbf{x}\|=1∥x∥=1)来确定唯一解。

6.3 应用场景的区别

6.3.1 非齐次方程的应用场景

核心特征:已知观测结果,反推系统状态或参数。

  • 最小二乘拟合 :已知数据点,拟合直线 y=kx+by = kx + by=kx+b,写成 Ax=bA\mathbf{x} = \mathbf{b}Ax=b,超定,求最小二乘解。应用:线性回归、曲线拟合、信号处理。
  • 图像恢复 :已知模糊图像 b\mathbf{b}b 和模糊核矩阵 AAA,求原始图像 x\mathbf{x}x,Ax=bA\mathbf{x} = \mathbf{b}Ax=b。应用:去模糊、去噪、超分辨率。
  • 机器人逆运动学 :已知末端执行器的目标位置 b\mathbf{b}b,求关节角度 x\mathbf{x}x,J(x)=bJ(\mathbf{x}) = \mathbf{b}J(x)=b。应用:机械臂控制、无人机导航。
  • PnP 精化:已知 3D 点和 2D 像素,求相机位姿。线性解用 DLT 得到初值后,非线性优化最小化重投影误差,每一步迭代都在解非齐次方程。应用:SLAM、AR/VR、视觉里程计。
6.3.2 齐次方程的应用场景

核心特征:寻找某种"不变性"、"内在结构"或"零空间"。

  • 特征值/特征向量 :(A−λI)x=0(A - \lambda I)\mathbf{x} = 0(A−λI)x=0,给定 λ\lambdaλ,求 x\mathbf{x}x。应用:PCA、振动分析、稳定性分析。
  • 计算机视觉中的 DLT :求投影矩阵 PPP 或单应矩阵 HHH 时,方程形式是 Ap=0A\mathbf{p} = 0Ap=0。应用:相机标定、单应矩阵估计、基础矩阵估计、PnP 的 DLT 阶段。
  • 8 点法求基础矩阵 :Af=0A\mathbf{f} = 0Af=0,其中 f\mathbf{f}f 是基础矩阵 FFF 的 9 个元素。取 VVV 的最后一列作为解。应用:立体视觉、三维重建。
  • 马尔可夫链稳态分布 :πP=π\pi P = \piπP=π,即 (PT−I)π=0(P^T - I)\pi = 0(PT−I)π=0,齐次方程,解是稳态分布。应用:PageRank、排队论、经济均衡。
  • 图拉普拉斯零空间 :Lx=0L\mathbf{x} = 0Lx=0,拉普拉斯矩阵 LLL 的零空间维度等于图的连通分量个数。应用:谱聚类、图分割、社区发现。
  • 零空间投影 :求与某组向量正交的方向,Ax=0A\mathbf{x} = 0Ax=0。应用:约束满足、零空间控制、冗余机器人。

6.4 为什么有时要把非齐次问题转化成齐次问题?

有时候,非齐次问题很难直接解,但可以转化成齐次问题。

  • 投影矩阵求解 :原始投影关系 sp=PXs\mathbf{p} = P\mathbf{X}sp=PX 是非齐次的(因为 sss 未知),但通过交叉相乘消去 sss:p×(PX)=0\mathbf{p} \times (P\mathbf{X}) = 0p×(PX)=0,变成齐次方程 Ap=0A\mathbf{p} = 0Ap=0。
  • 单应矩阵求解 :p2=Hp1\mathbf{p}_2 = H\mathbf{p}_1p2=Hp1,齐次坐标下尺度不定,交叉相乘消去尺度:p2×(Hp1)=0\mathbf{p}_2 \times (H\mathbf{p}_1) = 0p2×(Hp1)=0,变成齐次方程。
  • 为什么转化:齐次方程可以用 SVD 直接求解,取最小奇异值对应的右奇异向量;非齐次方程需要知道尺度,或者需要额外约束;齐次形式统一处理尺度不确定性。

6.5 总结对比表

方面 非齐次 Ax=bA\mathbf{x} = \mathbf{b}Ax=b 齐次 Ax=0A\mathbf{x} = 0Ax=0
右端项 非零 零
几何意义 已知变换结果,反推输入 寻找被消灭的方向
解的性质 具体、有尺度 方向性、可缩放
解的结构 特解 + 齐次解 零空间
求解方法 SVD 伪逆求和 SVD 最后一列
典型应用 最小二乘拟合、图像恢复、逆运动学、PnP 精化 特征值、DLT、8 点法、稳态分布、谱聚类
是否需要归一化 不需要 通常需要(如 ∣x∣=1|\mathbf{x}|=1∣x∣=1)
条件数影响 直接放大误差 最小奇异值决定解的质量

一句话总结:

非齐次方程是"已知结果找原因",解是具体的、有尺度的;齐次方程是"找矩阵看不见的方向",解是方向性的、可缩放的。

计算机视觉中经常把非齐次问题转化成齐次问题,是为了用 SVD 统一处理尺度不确定性。两者在 SLAM、三维重建、机器学习中各有不可替代的作用。


七、单应矩阵与 8 点法:齐次方程与秩亏

7.1 单应矩阵求解

问题 :已知两组点对应 p1↔p2\mathbf{p}_1 \leftrightarrow \mathbf{p}_2p1↔p2,求 3×33\times33×3 单应矩阵 HHH:

p2∼Hp1 \mathbf{p}_2 \sim H\mathbf{p}_1 p2∼Hp1

齐次坐标下尺度不确定,交叉相乘消去尺度:

p2×(Hp1)=0 \mathbf{p}_2 \times (H\mathbf{p}_1) = 0 p2×(Hp1)=0

每对点给出 2 个方程,整理成:

Ah=0 A\mathbf{h} = 0 Ah=0

其中 h\mathbf{h}h 是 HHH 的 9 个元素组成的向量。

矩阵形状与秩:

  • AAA 的大小:2n×92n \times 92n×9,nnn 为点对数。
  • HHH 有 8 个自由度(9 个元素,尺度不确定减 1)。
  • 至少需要 4 对点(2×4=82\times4=82×4=8 个方程)。
  • 若 n=4n=4n=4,AAA 是 8×98 \times 98×9,行数 < 列数,必然不满秩。
  • 若 n>4n>4n>4,理想无噪声时 AAA 的秩为 8,零空间维度为 1,仍然不满秩。

解 :取 AAA 的 SVD,最小奇异值对应的右奇异向量 v9\mathbf{v}_9v9 就是 h\mathbf{h}h,重塑成 3×33\times33×3 即 HHH。

7.2 8 点法求基础矩阵

问题 :已知两组点对应 p1↔p2\mathbf{p}_1 \leftrightarrow \mathbf{p}_2p1↔p2,求 3×33\times33×3 基础矩阵 FFF:

p2TFp1=0 \mathbf{p}_2^T F \mathbf{p}_1 = 0 p2TFp1=0

每对点给出 1 个方程,整理成:

Af=0 A\mathbf{f} = 0 Af=0

其中 f\mathbf{f}f 是 FFF 的 9 个元素组成的向量。

矩阵形状与秩:

  • AAA 的大小:n×9n \times 9n×9,nnn 为点对数。
  • FFF 有 7 个自由度(9 个元素,尺度不确定减 1,det⁡(F)=0\det(F)=0det(F)=0 减 1)。
  • 8 点法用 8 对点:AAA 是 8×98 \times 98×9,行数 < 列数,必然不满秩。
  • 若 n>8n>8n>8,理想无噪声时 AAA 的秩为 8,零空间维度为 1,仍然不满秩。

解 :取 AAA 的 SVD,最小奇异值对应的右奇异向量 v9\mathbf{v}_9v9 就是 f\mathbf{f}f,重塑成 3×33\times33×3 即 FFF。之后强制 det⁡(F)=0\det(F)=0det(F)=0:对 FFF 再做 SVD,最小奇异值置零,重新组合。

7.3 对比总结

方面 单应矩阵 基础矩阵(8 点法)
方程类型 齐次 Ah=0A\mathbf{h}=0Ah=0 齐次 Af=0A\mathbf{f}=0Af=0
未知量个数 9(HHH 的元素) 9(FFF 的元素)
自由度 8 7
最少点对数 4 8
AAA 的形状(最少点) 8×98\times98×9 8×98\times98×9
AAA 的秩 8(不满秩) 8(不满秩)
零空间维度 1 1
解 VVV 的最后一列 VVV 的最后一列
后处理 无 强制 det⁡(F)=0\det(F)=0det(F)=0

7.4 为什么必须不满秩?

齐次方程 Ax=0A\mathbf{x}=0Ax=0 要有非零解,AAA 必须不满秩。

如果 AAA 满秩,只有零解 x=0\mathbf{x}=0x=0,没有意义。

在单应矩阵和 8 点法中:

  • 未知量有 9 个,但实际自由度只有 8 或 7 个。
  • 尺度不确定性导致零空间至少有一维。
  • 所以 AAA 一定不满秩,零空间至少一维。

这也是为什么用 SVD 取最小奇异值对应的右奇异向量作为解。

一句话总结:

单应矩阵和 8 点法都属于齐次方程 Ax=0A\mathbf{x}=0Ax=0 的情况,AAA 都是秩亏的(不满秩),零空间维度为 1,取 VVV 的最后一列作为解。单应矩阵有 8 个自由度,8 点法的基础矩阵有 7 个自由度,都需要 SVD 求解。


八、常见疑点解答

疑点 解答
det⁡(A−λI)=0\det(A-\lambda I)=0det(A−λI)=0 说明 AAA 不满秩? 只说明 A−λIA-\lambda IA−λI 不满秩,不是 AAA。
λ\lambdaλ 是常数还是向量? 标量。
特征值个数? n×nn \times nn×n 矩阵有 nnn 个(计重数),互异≤nnn。
复特征值怎么办? 表示旋转+缩放,成对共轭,用实 Schur 分解处理。
条件数大时哪个方向敏感? 最小奇异值方向,除以小奇异值放大噪声。
为什么取 VVV 最后一列? 齐次方程 Ax=0A\mathbf{x}=0Ax=0,只有零奇异值对应的系数可非零,故取最小奇异值对应的右奇异向量。
ui\mathbf{u}_iui 是行还是列? 是 UUU 的列向量。
对称矩阵为什么 ui=vi\mathbf{u}_i = \mathbf{v}_iui=vi? 对称矩阵的 SVD 与特征值分解一致,U=VU=VU=V。
特征向量符号影响奇异值吗? 不影响,奇异值只取决于特征值大小。
Avi=σiuiA\mathbf{v}_i = \sigma_i \mathbf{u}_iAvi=σiui 怎么来的? 从 A=UΣVTA = U\Sigma V^TA=UΣVT 右乘 vi\mathbf{v}_ivi,利用 VTvi=eiV^T\mathbf{v}_i=\mathbf{e}_iVTvi=ei、Σei=σiei\Sigma\mathbf{e}_i=\sigma_i\mathbf{e}_iΣei=σiei、Uei=uiU\mathbf{e}_i=\mathbf{u}_iUei=ui 得到。
齐次方程为什么取最小奇异值对应的右奇异向量? 展开 x\mathbf{x}x 后,只有零奇异值对应系数可非零;若无零奇异值,取最小奇异值方向使 ∣Ax∣|A\mathbf{x}|∣Ax∣ 最小。

九、核心公式速查

概念 公式
行列式 2×2 det⁡(A)=ad−bc\det(A) = ad - bcdet(A)=ad−bc
行列式 3×3 det⁡(A)=a(ei−fh)−b(di−fg)+c(dh−eg)\det(A) = a(ei-fh) - b(di-fg) + c(dh-eg)det(A)=a(ei−fh)−b(di−fg)+c(dh−eg)
特征方程 det⁡(A−λI)=0\det(A-\lambda I) = 0det(A−λI)=0
特征值分解 A=VΛV−1A = V\Lambda V^{-1}A=VΛV−1
SVD A=UΣVTA = U\Sigma V^TA=UΣVT
核心关系 Avi=σiuiA\mathbf{v}_i = \sigma_i \mathbf{u}_iAvi=σiui
伪逆 A+=VΣ+UTA^+ = V\Sigma^+ U^TA+=VΣ+UT
非齐次解 x=∑i=1ruiTbσivi\mathbf{x} = \sum_{i=1}^r \frac{\mathbf{u}_i^T\mathbf{b}}{\sigma_i}\mathbf{v}_ix=∑i=1rσiuiTbvi
齐次解 x=vn\mathbf{x} = \mathbf{v}_nx=vn(最小奇异值对应右奇异向量)
条件数 κ(A)=σmax⁡/σmin⁡\kappa(A) = \sigma_{\max}/\sigma_{\min}κ(A)=σmax/σmin
误差放大 ∣Δx∣∣x∣≤κ(A)∣Δb∣∣b∣\frac{|\Delta\mathbf{x}|}{|\mathbf{x}|} \le \kappa(A) \frac{|\Delta\mathbf{b}|}{|\mathbf{b}|}∣x∣∣Δx∣≤κ(A)∣b∣∣Δb∣

十、总结

  • 行列式衡量线性变换对面积/体积的缩放,为零表示降维、不可逆。
  • 特征值/特征向量描述矩阵在特殊方向上的缩放,是理解矩阵本质的钥匙。
  • 条件数衡量矩阵对误差的敏感度,条件数大则病态,正规方程会平方条件数。
  • SVD把任意矩阵分解为"转-拉-转",奇异值是非负的拉伸倍数。
  • 核心关系 Avi=σiuiA\mathbf{v}_i = \sigma_i \mathbf{u}_iAvi=σiui 由 SVD 定义直接推出:vi\mathbf{v}_ivi 是输入方向,ui\mathbf{u}_iui 是输出方向,σi\sigma_iσi 是缩放倍数。
  • SVD 解线性方程统一处理超定、欠定、秩亏,给出最小二乘/最小范数解,且数值稳定。
  • 齐次方程 Ax=0A\mathbf{x}=0Ax=0 取 VVV 的最后一列(最小奇异值对应右奇异向量),因为展开后只有零奇异值对应系数可非零;若无零奇异值,该向量使 ∥Ax∥\|A\mathbf{x}\|∥Ax∥ 最小。
  • 非齐次方程 Ax=bA\mathbf{x}=\mathbf{b}Ax=b 是"已知结果找原因",解具体且有尺度;齐次方程 Ax=0A\mathbf{x}=0Ax=0 是"找矩阵看不见的方向",解方向性且可缩放。计算机视觉中常把非齐次问题转化为齐次问题,以统一处理尺度不确定性。
  • 单应矩阵和 8 点法 都属于齐次方程 Ax=0A\mathbf{x}=0Ax=0,AAA 秩亏,零空间维度为 1,取 VVV 的最后一列作为解。单应矩阵 8 个自由度,基础矩阵 7 个自由度。

这份文档涵盖了之前讨论的主要概念、例子和疑点,并补充了核心关系推导、齐次方程解法、非齐次/齐次应用场景对比,以及单应矩阵与 8 点法的详细说明。如果还有不清楚的地方,可以针对具体小节继续深入。

相关推荐
虾..1 小时前
三维图形学基础数学(向量,矩阵)
线性代数·矩阵
BSD_HY2 小时前
薄膜开关矩阵扫描在低功耗 MCU 上的 GPIO 扩展
单片机·嵌入式硬件·矩阵
papaofdoudou4 小时前
从抽象群到可计算的矩阵:S₃ 的表示论与共轭视角
python·决策树·矩阵
数智工坊18 小时前
视觉SLAM第12讲|地图构建:单目稠密重建、RGB-D点云与八叉树地图全解析
人工智能·深度学习·矩阵·机器人
涉密IT资质笔记1 天前
2026 涉密资质三类硬性条件对照:军工 / 集成 / 印制参数矩阵与易错点
服务器·线性代数·矩阵·创业创新
BSD_HY1 天前
薄膜开关矩阵按键的GPIO扩展芯片选型与中断响应延迟
单片机·线性代数·矩阵
数智工坊1 天前
视觉SLAM第11讲|回环检测:词袋模型、字典构建与相似度计算全解析
人工智能·深度学习·线性代数
数智工坊1 天前
视觉SLAM第4讲|李群与李代数:位姿优化的数学基石
人工智能·深度学习·线性代数·cnn
数智工坊1 天前
视觉SLAM第10讲|后端优化(下):位姿图优化、滑动窗口与图优化工程实践
人工智能·深度学习·线性代数·矩阵