更新于 

数值分析速通 - 线性问题

线性方程组的直接解法

高斯消元

高斯消元
高斯消元

得到左侧上三角阵, 回代求解. 消元复杂度 , 回代复杂度

LU 分解

LU 分解不唯一, 可规定对角线上元素为 1

伪代码
伪代码

LU 分解定理: 的前 个主子式非奇异, 则有 LU 分解 (那不就是可逆吗)

误差

算子范数

  • 最大绝对列和
  • , 的谱半径 (特征值最大模) 的平方根
  • 最大绝对行和

求解 的误差

  • 近似解 的前向误差
  • 后向误差
  • 误差放大因子
  • 条件数: 求解 时对于所有 可能出现的最大误差放大因子

定理: 可逆方阵的条件数为

前向和后向误差满足

淹没现象
淹没现象
列主消元
列主消元

联系

顺序高斯消元

顺序高斯消元后, 左侧的上三角阵为 , 右侧从 开始变换, 逆为

列主高斯消元增加 矩阵

严格行对角占优矩阵: 对角线元素比这一行其他元素加起来大

定理:不选主元Gauss消元法保持矩阵的严格行对角占优性质

推论:行对角占优矩阵非奇异且有 LU 分解

线性方程组的迭代法

称为分裂矩阵, 写成不动点迭代形式

迭代矩阵

不同的迭代方法的区别为构造了不同的 . 应当容易计算.

Richardson 迭代

是单位严格行 / 列对角占优矩阵时收敛 (主对角线全为 1)

Jacobi 迭代

D, L, U 是 A 的部分
D, L, U 是 A 的部分

是严格行对角占优矩阵时收敛

Gauss-Seidel 迭代

是严格行对角占优矩阵时收敛

主对角元非零收敛

SOR 迭代

添加 "动量" 项

Gauss-Seidel 迭代推广到 SOR 迭代形式

  • 欠松弛
  • Gauss-Seidel
  • 超松弛

需要实验确定收敛最快的

主对角元非零, 收敛

对称正定线性方程组的解法

是对称正定矩阵,则求解 的 SOR 迭代对于任意初始向量收敛。

Cholesky 分解

实对称正定矩阵可以分解为 , 是下三角阵

伪代码
伪代码

梯度下降法

对称正定, 则求解 等价于 极小化二次型问题

其中

梯度下降法迭代公式.

共轭梯度法

迭代公式

矩阵特征值的数值解法

通过高次多项式求根解特征值是病态问题, 需要更好的方法

盖尔圆盘

通过盖尔圆盘可估计特征值的大概范围

盖尔(Gershgorin)圆盘定理:方阵 的谱(特征值集)包含在下列复平面中 个圆盘 的并中

说明

的每一个分量

圆心是对角线元素, 半径是每一行的和. 特征值与 相同, 对于列也有

则特征值位于 的并交 的并中

盖尔(Gershgorin)圆盘第二定理:设方阵 个盖尔圆盘分成若干个连通区域,若一个连通区域含有 个盖尔圆盘,则有且只有 个特征值落在这个连通区域内(若两个盖尔圆盘重合,需计重数;又若特征值为重根也需计重数)

  • 推论1:严格对角占优矩阵可逆。
  • 推论2:方阵的 个盖尔圆盘两两互不相交,则相似于对角阵。
  • 推论3:实方阵的 个盖尔圆盘两两互不相交,则特征值全为实数。

扰动矩阵特征值圆盘定理:若 阶方阵 用相似变换 对角化,而 是任意 阶方阵,则 的特征值 位于下列圆盘之并中:

通过条件数估计特征值偏离的范围.

幂法

将矩阵反复作用于一个向量, 最终方向会接近于矩阵的一个特征向量. 将向量 用特征向量 作为基表出, 迭代公式

时, 有

特征向量

特征值

线性收敛率

若最大特征值是两重, ,

特征值

特征向量

通过以上方法求出模长最大的特征向量. 求解其他特征向量

  • 模长最小:
  • 最远:
  • 最近:

Rayleigh 商迭代

已知近似特征向量 , 求解超定方程

最小化残差 Rayleigh 商

QR 分解

分解为 , 是正交阵, 是上三角阵

  • 消减 QR 分解: ( 的列向量不够多, 没有求出完整的正交基)
  • 完全 QR 分解: (任意补充 个向量得到完整正交基, 矩阵多余的部分补零)

Gram-Schmit 正交化

的每个列向量, 依次减去与前面的向量平行的分量并归一化, 得到正交向量组作为 矩阵, 记录系数作为 矩阵

Gram-Schmit 正交化实现消减 QR 分解
Gram-Schmit 正交化实现消减 QR 分解
要实现完全 QR 分解, 先任意补充线性无关组
要实现完全 QR 分解, 先任意补充线性无关组
R 矩阵下方补零
R 矩阵下方补零

两种形式在数学上等价, 但如果因为数值计算的误差导致靠前的向量之间没有完全正交, 改进的方法仍然能尽量保持后面的向量之间的正交性.

时间复杂度:

Householder 变换

Householder 反射子定义
Householder 反射子定义

关于超平面 的镜像. 已知向量 满足 , 可令 求出 使得

利用 Householder 变换实现 QR 分解, 方法是通过叠加多个 Householder 反射子得到 矩阵

矩阵的形式, 每增加 中新的向量作为 时, 可以容易得到对应的 , 则可以求出 .

构造第一列的 w 并得到 H1
构造第一列的 w 并得到 H1
后续只处理 Tilde A, 不需要处理 W, H 矩阵之前处理好的部分用 I 填充
后续只处理 Tilde A, 不需要处理 W, H 矩阵之前处理好的部分用 I 填充

伪代码
伪代码

Householder 变换直接得到的是完全 QR 分解, 数值稳定性比 GS 正交化好.

QR 算法

求出矩阵的所有特征值. 选取一组正交向量同时进行幂迭代,每次迭代都对向量进行正交化,最终可得到所有的特征向量及对应的特征值.

伪代码
伪代码