数值线性代数: 共轭梯度法

本文总结线性方程组求解的相关算法,特别是共轭梯度法的原理及流程。

零、预修

0.1 LU分解

,若对于,均有,则存在下三角矩阵和上三角矩阵,使得

,若对于,均有,则存在唯一的下三角矩阵和上三角矩阵,使得,并且

0.2 Cholesky分解

对称正定,则存在一个对角元均为正数的下三角矩阵,使得

一、 总论:迭代法求解线性方程组的一般思路

对于非奇异矩阵,使用迭代法 求解线性方程组过程中,一般需要以下流程进行:

  1. 给定一个初始向量
  2. 构造一个递推公式
  3. 不断递推,使其近似收敛于

下表列出了若干迭代算法的迭代公式。

|--------------------|----------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------|
| 方法 | | 迭代公式 | 备注 |
| Jacobi迭代 | 非奇异 | | |
| Gausss-Seidel迭代 | 非奇异 | | |
| SOR迭代 | 非奇异 | | |
| Steepest Descent | 对称正定 | | |
| Conjugate Gradient | 对称正定 | 当 | |

二、Projection Method

投影法将线性方程组求解问题 转换成了最优值求解问题,是求解线性方程组的一大类方法。

在投影法中,令,构造列满秩矩阵,寻找,满足Petrov-Galerkin条件 ,即,均有称为搜索空间,称为约束空间。若时,称为正投影算法 ,否则称为斜投影算法

三、Krylov Subspace Method

Krylov子空间法 本质上也是一种投影法 ,其核心思想是在更小维度的Krylov子空间 内寻找满足精度要求的近似解。即令,构造了Krylov子空间 ,使得

选择不同的,就对应不同的Krylov子空间法

3.1 Steepest Descent Method

3.2 Hestenes-Stiefel Conjugate Gradient Method

参考书籍

Golub G H , Loan C F V .Matrix Computations.Johns Hopkins University Press,1996.

Ford W .Numerical Linear Algebra with Applications using MATLAB. 2014.

徐树方. 数值线性代数(第二版). 北京大学出版社, 2010.

参考文献

Hestenes M R , Stiefel E L .Methods of Conjugate Gradients for Solving Linear Systems. Journal of Research of the National Bureau of Standards (United States), 1952.

相关推荐
echoarts1 小时前
Rayon Rust中的数据并行库入门教程
开发语言·其他·算法·rust
alphageek82 小时前
Electron开源库入门教程:跨平台桌面应用框架
javascript·其他·electron·开源
SccTsAxR1 天前
[C语言]常见排序算法①
c语言·开发语言·经验分享·笔记·其他·排序算法
橘子洲头2 天前
实验室试管架 | 塑料、金属等多种材质与规格 | 支持多种试管尺寸 | Sigma-Aldrich
其他
老陈头聊SEO3 天前
智能科技与搜索引擎优化关键词的新契机
其他
晨非辰3 天前
#C语言——刷题攻略:牛客编程入门训练(十二):攻克 循环控制(四)、循环输出图形(一),轻松拿捏!
c语言·开发语言·经验分享·笔记·其他·学习方法·visual studio
草莓熊Lotso3 天前
《从 0 建立测试开发认知:先搞懂 “是什么”,再学 “怎么做”》
经验分享·笔记·其他·测试
aramae6 天前
C++ -- 模板
开发语言·c++·笔记·其他
ん贤6 天前
创作纪念日·512天
经验分享·其他·生活
草莓熊Lotso6 天前
【C++】递归与迭代:两种编程范式的对比与实践
c语言·开发语言·c++·经验分享·笔记·其他