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

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

零、预修

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.

相关推荐
ye150127774551 天前
DC6v-36V转3.2V1A恒流驱动芯片WT7017
单片机·嵌入式硬件·其他
草莓熊Lotso2 天前
《详解 C++ Date 类的设计与实现:从运算符重载到功能测试》
开发语言·c++·经验分享·笔记·其他
草莓熊Lotso3 天前
《吃透 C++ 类和对象(中):const 成员函数与取地址运算符重载解析》
c语言·开发语言·c++·笔记·其他
老陈头聊SEO5 天前
AI增强SEO关键词表现
其他
草莓熊Lotso5 天前
《吃透 C++ 类和对象(中):拷贝构造函数与赋值运算符重载深度解析》
开发语言·c++·经验分享·笔记·其他
晨非辰6 天前
#C语言——学习攻略:自定义类型路线--结构体--结构体类型,结构体变量的创建和初始化,结构体内存对齐,结构体传参,结构体实现位段
c语言·开发语言·经验分享·学习·其他·学习方法·visual studio
草莓熊Lotso6 天前
《吃透 C++ 类和对象(中):构造函数与析构函数的核心逻辑》
c++·经验分享·笔记·程序人生·其他
草莓熊Lotso7 天前
【C语言强化训练16天】--从基础到进阶的蜕变之旅:Day2
c语言·经验分享·笔记·其他
草莓熊Lotso7 天前
《吃透 C++ 类和对象(上):封装、实例化与 this 指针详解》
开发语言·c++·经验分享·笔记·其他
晨非辰8 天前
#C语言——刷题攻略:牛客编程入门训练(八):分支控制(二)
c语言·开发语言·经验分享·学习·其他·学习方法·visual studio