Skip to content

附录 B:复杂度与稳定性速查

下表给出主阶量级。常数会随是否累积变换、矩阵结构和实现方式改变,因此复习时先记“规模如何增长”,再记有用的精确系数。

常见算法成本

任务时间复杂度额外存储备注
稠密三角求解O(n2)O(n)单个右端项
稠密 LU 分解23n3O(n2)实际应配合选主元
稠密 Cholesky 分解13n3O(n2)对称正定
m×n Householder QRO(mn2)O(mn)mn,主项约 2mn223n3
稠密 Hessenberg 化O(n3)O(n2)一次性预处理
Hessenberg QR 单次扫描O(n2)O(n2)利用带状结构
对称三对角 QR 单次扫描O(n)O(n)不含特征向量累积成本
稠密 SVDO(mn2)O(mn)假设 mn
稀疏矩阵—向量乘法O(nnz(A))O(n)Krylov 方法的核心操作
Arnoldi kO(knnz(A)+k2n)O(kn)第二项来自正交化
CG kO(knnz(A))O(n)不含预处理成本

稳定性与条件数

概念回答的问题典型表达
条件数问题本身是否敏感?κ(A)=|A||A1|
前向误差算出的解离真解多远?|x^x|/|x|
后向误差算出的解对应多小的数据扰动?寻找最小 ΔA,Δb 使 (A+ΔA)x^=b+Δb
残差当前解满足方程到什么程度?r=bAx^
后向稳定算法是否精确解了邻近问题?数据扰动与机器精度同阶

小残差不自动意味着小前向误差。粗略地说,前向误差上界通常还会乘上条件数;病态问题即使由稳定算法求解,也可能对输入扰动非常敏感。

方法选择速记

问题结构首选思路避免的常见绕路
稠密一般线性系统带选主元 LU显式求逆后乘 b
稠密对称正定系统Cholesky忽略结构使用一般消去
长方形最小二乘Householder QR;高精度需求可用 SVD盲目形成 AA
一般稠密特征值Hessenberg + Francis QR对每个特征值单独做高成本迭代
对称稠密特征值三对角化 + 对称谱算法丢弃对称性
大规模 SPD 系统预条件 CG存储完整 Krylov 基
大规模非对称系统预条件 GMRES/其他结构化 Krylov 法不监控真实残差
少量对称特征值Lanczos / 重启方法求完整特征分解
少量奇异值或最小二乘Golub–Kahan、LSQR显式构造 AA

高频实现陷阱

  1. 显式计算逆矩阵,而不是解线性方程。
  2. 只报告迭代次数,不报告相对残差和运行成本。
  3. 用绝对阈值判断消去,忽略矩阵尺度。
  4. 理论上应正交的向量在有限精度下失去正交,却没有检测。
  5. 稀疏矩阵中形成稠密中间量,或让分解产生严重填充。
  6. 只比较特征值,不检查特征残差、正交性或分解残差。

一句话总纲

先识别结构,再选择变换;先估计敏感性,再解释误差;先写残差或不变量,再相信输出。