矩阵分解及其应用
矩阵分解的作用可以从两个角度理解。 第一,它给出矩阵自身的结构表示,例如三角结构、正交结构、对角结构或低秩结构。 第二,它服务于具体计算问题,例如求解线性方程组、最小二乘问题、特征值问题和低秩近似问题。 下面先整理常见分解,再讨论这些分解在问题求解中的选择方式。
常见分解
LU 分解
对于方阵
其中
一般方阵未必存在这种无置换分解。 为了处理零主元,并避免小主元导致的误差放大,通常使用带主元选取的形式
其中
LU 分解实际就是高斯消元的矩阵形式。 它把一般方阵转化为下三角矩阵和上三角矩阵的乘积,使后续计算可以利用三角矩阵的简单结构。
对于大规模稀疏矩阵应用 LU 分解时,还需要考虑稀疏矩阵的填充问题,因为稀疏矩阵分解后未必稀疏,分解过程中原来的零元可能变成非零元,实际算法常结合重排序策略来降低存储量和计算量。
Cholesky 分解与 LDLT 分解
若
其中
Cholesky 分解利用了方阵的对称性和正定性,相比一般 LU 分解,它的计算量和存储量都更低。
Cholesky 分解要求矩阵严格正定。如果矩阵是对称但不定的,还可以考虑 LDLT 分解
其中
LDLT 分解常用于对称不定线性系统,例如约束优化中的 KKT 系统、等式约束二次规划、内点法中的 saddle-point 系统等。 对于不定矩阵,主元选取对稳定性非常关键,不能简单假设无主元 LDLT 分解总是稳定。
QR 分解
对于矩阵
其中
其中
QR 分解的核心是正交化,从算法设计角度考虑,可以通过 Gram–Schmidt 正交化、Householder 反射或 Givens 旋转构造 QR 分解算法。 实际稠密矩阵计算中常用 Householder 反射;Givens 旋转则适合稀疏矩阵或局部更新。
谱分解与 Schur 分解
对于方阵
其中
对于实对称方阵
其中
需要注意的是,并非所有矩阵都可以对角化。 虽然在线性代数理论中,对不可对角化矩阵的分解重点讨论 Jordan 标准形,但 Jordan 标准形在数值计算中的表现非常不稳定,不适合实际应用。 更适合实际计算的是不要求矩阵可对角化的 Schur 分解:对于任意复方阵
其中
其中
奇异值分解
对于任意矩阵
其中
称为奇异值。 SVD 不要求矩阵是方阵,也不要求矩阵可对角化,因此是最通用的矩阵结构分解之一。
实对称方阵的正交谱分解
奇异值与特征值密切相关,对于任意矩阵
因此奇异值就是
对于实对称方阵
如果
SVD 的重要意义在于,它把一般矩阵分解为两个正交变换和一个沿坐标轴的伸缩,这使它可以稳定地描述矩阵的秩、值域、零空间和主要作用方向。
典型问题求解
线性方程组
线性方程组的基本形式为
求解这类问题时,通常不应显式计算
对于一般方阵,如果已经得到
可以转化为两个三角系统:
三角系统可以通过前向替换和后向替换高效求解。 因此,当同一个系数矩阵对应多个右端项时,应该先对
如果
最小二乘问题
超定最小二乘问题的典型形式为
如果使用正规方程
当
这会在
若
当
基于 QR 分解的做法通常比正规方程方法具有更好的数值稳定性。
特征值问题与广义特征值问题
特征值问题用于分析方阵本身的谱结构。 给定方阵
它的目标是寻找特征对
特征值问题的目标不是求解某个右端项给定的线性系统,而是揭示矩阵诱导的线性映射的内在方向和伸缩因子。 它常用于动力系统稳定性分析、振动模态分析、PCA、矩阵函数以及控制问题。 对称方阵可以利用正交谱分解;一般矩阵则通常通过 QR 算法、Schur 分解等正交变换方法求解。
相对于普通特征值问题,广义特征值问题写作
如果
广义特征值问题常来自带有两个双线性形式的问题。 例如结构动力学中的固有振动问题常写作
其中
若
令
这样可以继续使用对称特征值问题的稳定算法。 这里的关键分解是
低秩近似与降维
SVD 最重要的应用之一是低秩逼近。 若
保留前
Eckart–Young–Mirsky 定理说明,在二范数或 Frobenius 范数意义下,
完整 SVD 的计算代价较高。 对于大规模矩阵,通常只计算前若干个奇异值和奇异向量,即截断 SVD。 常见方法包括 Lanczos 方法、Krylov 子空间方法、randomized SVD 以及增量式低秩近似方法。