发表日期:
2026年07月
发表单位:
East Tennessee State University
原文链接:
https://arxiv.org/pdf/2607.10302v1.pdf
项目链接:
https://github.com/appmathdoc/DirectPseudoInverseMethods
为什么需要直接求伪逆
这篇论文最有意思的地方,不是“又发明了一个伪逆算法”,而是它把一个老问题说透了:伪逆并不只是线性代数课本里的优雅概念,它在大规模回归、稀疏求解、重复最小二乘里,真的是能省钱、能省内存、能省时间的工程工具。问题在于,大家一提伪逆,脑子里往往先蹦出 SVD(奇异值分解)。SVD 很稳,但也很“贵”,尤其在大矩阵、稀疏矩阵、重复求解场景里,贵得有点像每次点外卖都吃米其林:不是不行,是钱包和系统都扛不住。论文先把三个现实痛点摆上台面。第一,条件数问题:矩阵 A 本身不一定病态,但 ATA 或 AAT 的条件数会直接平方放大,数值稳定性容易翻车。第二,秩判定问题:很多直接法要先知道“到底秩是多少”,可在浮点世界里,接近 0 的奇异值并不老实,今天看着像 0,明天又像没死透。第三,稀疏矩阵会被伪逆拖成稠密矩阵,这点最烦:原矩阵明明很省内存,伪逆一算出来,瞬间胖成一堵墙。图1:论文封面图。它传递的核心信息很直接——这不是在和 SVD 玩“谁更数学”,而是在和工程里的存储、速度、稳定性正面较劲。更关键的是,作者并没有否定伪逆本身,而是试图证明:直接法也能做伪逆,而且在某些场景里比“先分解到天荒地老,再拼回来”更合适。这就把话题从“伪逆能不能算”推进到了“伪逆该怎么更像工程地算”。
双对角矩阵的三种分解方法
这篇论文的主线其实很清楚:先把原矩阵 A 做双对角化,把难题压缩成一个双对角矩阵 B,再针对 B 设计三条直接路线。这里先解释一下“双对角矩阵”:它只有主对角线和一条相邻对角线有非零元素,结构非常瘦,像把原矩阵“挤压”成了骨架版。很多复杂运算一旦落到这种结构上,就能做得又快又省。作者给出的三种方法分别是:CK 分解、对偶正规方程、原地伪逆。它们的共同目标不是“把伪逆写成一个漂亮公式”,而是尽量避免显式构造稠密逆矩阵,同时还能让大规模稀疏问题有机会活下来。
CK 分解:把双对角矩阵切成“可逆块 + 零块”
CK 分解的思路可以理解成“先做外科手术,再分别处理”。作者用 Givens 旋转把双对角矩阵分解成一个可逆双对角块 C 和一个超对角块 K。这里的 Givens 旋转,就是一种只动两个坐标轴的小旋转,像用小扳手精准拧螺丝,不会把整台机器拆飞。图2:双对角矩阵被切分成多个结构块后的示意图。论文借助这种分块,把原本难处理的大矩阵伪逆问题,拆成若干个更小、更规整的局部问题。CK 分解的妙处在于,K 的伪逆是稀疏的,C 则是可通过回代处理的可逆双对角矩阵。也就是说,它没有执着于“把整个伪逆矩阵完整打印出来”,而是把计算动作压缩到可执行的局部结构里。对大规模稀疏问题来说,这个思路很现实:能少存一点,就少存一点;能少乘一次,就少乘一次。
对偶正规方程:把三对角系统交给 Thomas 算法
第二条路线更像“走正面路线但尽量别撞墙”。双对角矩阵 B 的 BBT 会变成三对角矩阵,而三对角系统正好是 Thomas 算法的主场。Thomas 算法本质上就是三对角方程的高效直接解法,复杂度很低,适合反复求解。论文还引入 Woodbury 矩阵拆分思想,把大系统切成小块再拼回去,减少存储压力。图3:对偶正规方程对应的块状三对角结构示意图。它说明了为什么这个方法能借助 Thomas 算法快速求解,也解释了为什么 Woodbury 拆分能进一步降低内存占用。不过这条路线也有代价:它本质上还是绕回了正规方程体系,因此条件数平方放大的老毛病并没有彻底消失。所以它的定位更像“工程上很好用,但不是数值党最爱的那种优雅解法”。