← 返回矩阵学习主页

Moore–Penrose Pseudoinverse · 交互看板

x = Ab
投影,然后取最短的原像

A+b 不是"某种除法"。它是两个动作接在一起:把 b 正交投影到 A 的列空间上——这一步是不得不做的妥协,因为 b 通常根本不在列空间里; 然后在所有能映到这个投影点的 x 当中,挑长度最短的那一个。第一步决定了残差,第二步决定了解。

第一步 · 在输出空间min ‖Ax − b‖  →  确定 Ax⋆
第二步 · 在输入空间min ‖x‖  s.t.  Ax = Ax⋆

控制台

矩阵形状
奇异值 σ(对数)

拖到左端观察 A⁺ 的爆炸

截断阈值 rcond
rc 1.0e-10

σ ≤ rcond·σ₁ 的方向被当作 0 丢弃

数值读数
有效秩 r
2
cond(A)
1.0
‖A⁺‖2
1.0
‖x⋆‖
0
‖r‖ 残差
0

输入空间 ℝ²定义域

输出空间 ℝ³值域

奇异值镜像谱对数刻度上,1/σ 是 σ 的镜像

上半部是 A 的奇异值 σᵢ:A 把单位球拉成椭球,σᵢ 是各半轴的长度。

下半部是 A⁺ 的奇异值 1/σᵢ。因为纵轴是对数刻度,下半部就是上半部严格的镜像——σ 每小一个数量级,1/σ 就长一个数量级

虚线是截断阈值 rcond·σ₁。落在线下的方向被判为"数值上的零",它对应的 1/σ 柱直接消失,而不是冲出图外。这就是 pinvrcond 参数在做的全部事情。

秩不是矩阵的属性,是矩阵和你选的阈值共同的属性。拖动 rcond 就能改变同一个 A 的秩。

分解A 的格子可以直接改;改完会重新做 SVD

Penrose 四条件相对误差

这四条唯一地确定了 A⁺——满足它们的矩阵只有一个。

对照:正规方程公式会坏掉的那个

教科书常写 A⁺ =(AᵀA)⁻¹Aᵀ。这个式子只在 A 列满秩时成立,而它失效的时候不会温和地报错。

此刻画面里的四件事鼠标移上去,图里对应的对象会高亮

列空间 col(A) 行空间 row(A) 零空间 null(A) 残差 / 左零空间 b 与解集

三维视图可以拖动旋转;输出空间里的 b 可以直接拖动。所有数值在浏览器里用双精度实时计算: SVD 走 AᵀA 的 Jacobi 特征分解,伪逆用 A⁺ = VΣ⁺Uᵀ 并按 rcond 截断。