线性代数方程组中的预处理共轭梯度法

合集下载

共轭梯度法例题详解

共轭梯度法例题详解

共轭梯度法例题详解共轭梯度法是一种用于求解线性方程组的迭代方法。

它的基本思想是利用一组共轭的搜索方向来逐步逼近线性方程组的解。

下面我将从多个角度详细解释共轭梯度法的例题。

首先,让我们考虑一个简单的例子。

假设我们要求解一个二维线性方程组 Ax = b,其中 A 是一个对称正定矩阵,x 和 b 是列向量。

共轭梯度法的步骤如下:1. 初始化 x0 和 r0,其中 x0 是初始解向量,r0 是初始残差向量,r0 = b Ax0。

2. 初始化搜索方向 p0 = r0。

3. 迭代计算:a. 计算步长 alpha = (r_k^T r_k) / (p_k^T A p_k),其中 k 表示第 k 次迭代。

b. 更新解向量,x_(k+1) = x_k + alpha p_k。

c. 更新残差向量,r_(k+1) = r_k alpha A p_k。

d. 计算 beta = (r_(k+1)^T r_(k+1)) / (r_k^T r_k)。

e. 更新搜索方向,p_(k+1) = r_(k+1) + beta p_k。

4. 重复步骤 3 直到满足收敛条件。

这是共轭梯度法的基本算法。

下面我们通过一个具体的例子来说明。

假设我们要求解以下线性方程组:3x + 2y = 9。

2x + 5y = -4。

将其转化为矩阵形式,Ax = b,其中。

A = [[3, 2],。

[2, 5]],。

x = [[x],。

[y]],。

b = [[9],。

[-4]].首先,我们需要判断矩阵 A 是否是对称正定矩阵。

对于本例中的 A,它是对称矩阵且特征值为正,因此满足条件。

接下来,我们进行共轭梯度法的迭代计算。

假设初始解向量 x0 = [[0], [0]],初始残差向量 r0 = b Ax0 = [[9], [-4]]。

初始化搜索方向 p0 = r0。

第一次迭代:计算步长 alpha = (r0^T r0) / (p0^T A p0) = (81 + 16) / (9 + 20) = 97 / 29 ≈ 3.34。

共轭梯度法

共轭梯度法
Hesteness和Stiefel于1952年为解线性方程组而提出
•基本思想:把共轭性与最速下降法相结合,利用已 知点处的梯度构造一组共轭方向,并沿着这组方 向进行搜索,求出目标函数的极小点
4.4共轭梯度法
先讨论对于二次凸函数的共轭梯度法,考虑问题
min f (x) 1 xT Ax bT x c
3, giT d (i) giT gi (蕴涵d (i) 0)
证明: 显然m1,下用归纳法(对i)证之.
当i 1时,由于d (1) g1,从而3)成立,对i 2时, 关系1)和2)成立,从而3)也成立.
4.4共轭梯度法
设对某个i<m,这些关系均成立,我们证明对于i+1
也成立.先证2),
因此
2 / 3 1 5/ 9
d (2)



1/ 1
3

1 9

2 0



5/9 1

从x(2)出发,沿方向d (2)进行搜索,求步长2,使满足 :
f
( x (1)

2d (1) )

min
0
f
(x(2)

d (2))


2 0

4.4共轭梯度法
显然, d (1)不是目标函数在x(1)处的最速下降方向.
下面,我们用FR法构造两个搜索方向.
从x(1)出发,沿方向d (1)进行搜索,求步长1,使满足 :
f
( x (1)
1d (1) )

min
0
f
( x (1)

d (1) )
得1 2 3
A正定,故x是f(x)的极小值点.

共轭梯度法原理

共轭梯度法原理

共轭梯度法原理共轭梯度法是线性代数中一种求解稀疏矩阵下的大规模线性方程组的方法。

它的优点是它具有迭代次数小的特点,同时也能得到比较准确的解。

共轭梯度法基于梯度下降法,但是避免了梯度下降法的缺点。

梯度下降法每一次迭代都需计算整个向量的梯度,这在高纬度数据中非常复杂,同时使用步长较大时又容易产生来回震荡的现象。

共轭梯度法的优点是在每一次迭代都会寻找一个与上次方向不同的方向,这点可以消除梯度下降法的缺陷。

令A为若干个线性矩阵的乘积,如果我们要解矩阵方程Ax=b,其中b是已知向量,求解的x向量是未知向量。

首先,我们可以用梯度下降法求出一个初值向量x0,称之为迭代初始值。

然后,我们可以利用高斯打乘法和高斯消元得到向量P,并设向量R0=Ax0-b,然后再设P逆矩阵为Pt。

共轭梯度法迭代的主要步骤如下:1. 根据目标函数和梯度函数确定初值x0;2. 初始化残差向量r0=b-Ax0,并设置迭代数k=0;3. 设置搜索方向向量p0=r0;4. 使用一维搜索方法(如Armijo步长准则)寻找最优步长αk;5. 将搜索方向向量移动到新的位置:xk+1=xk+αkp,计算新的残差rk+1=rk+αkAp;6. 如果rk+1=0或者迭代次数已达到设定值,则停止迭代;否则:7. 确定下一个搜索方向pk+1,并重复步骤4-6直到满足收敛条件。

共轭梯度法迭代的优点是每一步都在原解空间的一个线性子空间中求解,因此不需要保存全部解向量,从而大大减少了计算量和存储空间,特别适用于高纬度的线性方程组的求解。

在参数优化、图像处理和物理模拟等领域中广泛应用。

在参数优化中,共轭梯度法可以加速大规模函数的梯度计算,从而加快参数搜索的速度;在图像处理中,共轭梯度法常用于求解稀疏线性系统,例如图像压缩、图像去噪和图像恢复等;在物理模拟中,共轭梯度法可以用于求解偏微分方程组、流体力学问题和计算机视觉等领域。

3_共轭梯度法

3_共轭梯度法

共轭梯度法
基本思想
CG的基本思想是把共轭性与最速下降法相结合,利用已 知点处的梯度构造一组共轭方向,并沿着此组方向进行搜索, 求出目标函数的极小点。
d k f ( xk ) k 1d k 1 , k 1,2,..., n 1.
定义--共共轭梯度法的形式 (A) 正定二次函数的无约束最优化问题的共轭梯度法形式
共轭方向法和共轭梯度法
问题1:
如何建立有效的算法?
从二次模型到一般模型.
问题2: 什么样的算法有效呢? 二次终止性.
简介
共轭方向法和共轭梯度法
共轭梯度法是介于最速下降法与牛顿法之间的一个方法,它仅需利用一阶导 数信息,但克服了最速下降法收敛慢的缺点,又避免了牛顿法需要存储 和计算Hesse矩阵并求逆的缺点,共轭梯度法不仅是解决大型线性方程组 最有用的方法之一,也是解大型非线性最优化最有效的算法之一.
注意
由于Rn中共扼方向最多有 n 个,因此在用上述二种方法求 解目标函数为非二次函数的无约束最优化问题(7.1.1)时,在 n 步之后构造的搜索方向不再是共轭的,从而降低了收敛速度克 服的办法是重设初始点,即把经过 n 次迭代得到的 xn 作为初始 点重新迭代.
算法步骤—FR共轭梯度法
共轭梯度法
Step1: Step2: Step3: Step4: Step5: Step6: Step7:
注: 若 G I ,则
因此, 共轭是正交的推广. 定义--共轭方向法
是正交的,
共轭方向法
性质
特例
n
共轭方向法
算法步骤
Step1: Step2: Step3: Step4:
Step5:
共轭方向法
特例

——共轭梯度法ppt课件

——共轭梯度法ppt课件

r ( k 1 ) , r ( k 1 ) r ( k ) kr ( k ) k 1 p ( k 1 ) , A p ( k )
1 r(k1),r(k1)
k
r(k),Ap(k)
r(k1), r(k1)
r(k), r(k)
共轭梯度法
算法 :(共轭梯度法 )
(1) (x) 的梯度为:
(x) x 1, Rn 和 R,有
(x y ) 1 A (x y ),x y b ,x y 2 2A y,y(A xb,y)(x) 2
(3) 令 x*=A-1b,那么有
( x ) 1 b T A 1 b b T A 1 b 1 b T A 1 b 1 A x ,x
计算方法
第六章 线性方程组的迭代解法
—— 共轭梯度法
本讲内容
共轭梯度法
最速下降法 共轭梯度法 共轭梯度法的收敛性分析
等价问题
思索线性方程组:Ax = b ,其中 A 对称正定 作二次泛函 (x): Rn R
(x )1(A x ,x ) (b ,x )1x T A xx T b
2
2
(x) 具有以下性质:
证明:板书
共轭梯度法
k 与 k 的计算
k r ( k ) , p ( k ) p ( k ) , A p ( k ) r ( k ) , r ( k ) p ( k ) , A p ( k )
k r ( k 1 ) ,A p ( k ) p ( k ) ,A p ( k )
共轭梯度法
详细作法:令 p(0) = r(0) ,设 x(k) 曾经求得,那 么 x(k+1) 由下面的公式确定:
x(k1)x(k)kp(k)
其中
p(k)r(k)k1p(k1)

利用共轭梯度法求解线性方程组

利用共轭梯度法求解线性方程组

利用共轭梯度法求解线性方程组翟莹1012205052在自然科学和工程技术中很多问题的解决常常归结为解线性方程组,而这些方程组的系数矩阵大致可分为两种:低阶稠密矩阵和大型稀疏矩阵。

而求解方程组的方法通常为直接法和迭代法。

直接法用于较低阶方程组的求解,效率较高;迭代法更适用于高阶方程组的求解,常用的经典迭代法有高斯-赛德尔迭代法和雅各比迭代法,但收敛效率较低;共轭梯度法(CG)以较高的收敛速度而经常被采用。

从理论上讲,一个n阶方程组最多迭代n 步就可求出精确解。

1 直接法直接法就是经过有限步算术运算,无需迭代可直接求得方程组精确解的方法。

但实际计算中由于舍入误差的存在和影响,这种方法也只能得到线性方程组的近似解,该方法是求解低阶稠密矩阵方程组的有效方法。

如Cramer法则,Gauss消元法及其变形(LU分解法、Cholesky 分解法、QR分解法)等。

Matlab中,用矩阵除法“/”或“\”直接求解线性方程组(见附录一),它是一个内部包含着许许多多的自适应算法,对超定方程用最小二乘法求解;对欠定方程因为它的解不唯一,Matlab给出所有解中范数最小的一个特解;对于三对角阵方程组,采用追赶法求解。

2 迭代法迭代法就是用某种极限过程去逐步逼近线性方程组精确解的方法。

该方法具有对计算机的存贮单元需求少,程序设计简单、原始系数矩阵在计算过程中不变等优点,是求解大型稀疏矩阵方程组的重要方法。

迭代法不是用有限步运算求精确解,而是通过迭代产生近似解逼近精确解。

如Jacobi迭代、Gauss-Seidel迭代、SOR迭代法等。

在科学研究和大型工程设计中提出的求解问题,经离散后,常常归结为求解形如Ax = b 的大型线性方程组,此时系数矩阵A和b是通过测量或其它方法得到的,但是在多数情况下方程可能是病态的,即A的条件数非常大。

此时,我们仍然用Matlab中的常规算法,得到的解则可能不是真解。

通常情况下,对系数矩阵A和方程的右端b作微小的扰动,再用上述方法求解,扰动后方程组的解与原方程组的解相差甚远。

线性方程组的共轭梯度法30页PPT文档

线性方程组的共轭梯度法30页PPT文档
W(3) =W*
W(1)
W(2)
沿两个相互正交的方向,进行精确一维搜索, 即可得到最优解(二维情形)
罗林开
模式识别与智能系统研究所
2020/6/27
6
n维情形: 沿相互正交的n个方向,进行精确 一维搜索,至多迭代n次,即可得到正定二次 函数
f (w) 1 wT w rT w 2
的最优解w* r.
f (x) f (x*)f (x*)T(xx*)1(xx*)T A(xx*) 2
f (x*)1(xx*)T A(xx*) 2
因此f (x)的等高面是一簇超椭球面.
罗林开
模式识别与智能系统研究所
2020/6/27
9
x(3) =x* d(2)
x(1) d(1) x(2)
从x(1)出发,沿d(1)作一维搜索,与等高面相切于x(2),记d(2) x* x(2), 再沿d(2)作一维搜索,即可得到最优解x*.由于(d(1))Tf (x(2)) 0, 因此(d(1))T Ad(2) (d(1))T A(x* x(2)) (d(1))T(Ax* Ax(2))
f (w ) f (w *) f (w *)(w w*)
1 (w w *)T I (w w *) 2
f ( w * ) 1 || w w * ||2 . 2
因 此 f ( w )的 等 高模式识别与智能系统研究所
2020/6/27
5
正交方向及其性质
( d ) (1) T A d ( 2 ) 0 则 称 这 两 个 方 向 关 于 A 共 轭 ,或 称 它 们 关 于 A 正 交 . 若 R n中 的 k 个 方 向 d (1) , d ( 2 ) ,L , d ( k ) , 它 们 两 两 关 于 A 共 轭 ,即

共轭梯度法

共轭梯度法

共轭梯度法1. 算法原理求解一个系数矩阵为正定矩阵的线性方程组可通过求泛函)(x f 的极小值点来获得,进而可以利用共轭梯度法来求解。

共轭梯度法中关键的两点是,确定迭代格式)()()1(k k k k d x x α+=+中的搜索方向)(k d 和最佳步长k α。

实际上搜索方向)(k d是关于矩阵A 的共轭向量,在迭代中逐步构造之;步长k α的确定原则是给定迭代点)(k x 和搜索方向)(k d 后,要求选取非负数k α,使得)()()(k k k d x f α+达到最小,即选择0≥k α,满足)(min )()()(0)()(k k k k k d x f d x f kααα+=+≤。

设迭代点)(k x和搜索方向)(k d已经给定,k α可以通过一元函数)()()()(k k d xf g αα+=的极小化)()(min )()(0k k d xf g ααα+=≤来求得,所以最佳步长)()()()(k k k k k Addd r TT=α。

在给定初始向量)0(x 后,由于负梯度方向是函数下降最快的方向,故第1次迭代取搜索方向)0()0()0()0()(Ax b x f r d-=-∇==。

令)0(0)0()1(d x x α+=,其中)0()0()0()0(0Addd r TT=α。

第2次迭代时,从)1(x 出发的搜索方向不再取()1r,而是选取)0(0)1()1(d r d β+=,使得)1(d与()0d 是关于矩阵A 的共轭向量,即要求)1(d 满足()()()0,01=Ad d ,由此可求得参数)0()0()0()1(0-Ad d Ad r TT=β,然后从()1x 出发,沿方向)1(d进行搜索得)1(1)1()2(d x xα+=,其中1α已由上面k α的计算式获得。

一般地,设已经求出)()()1(k k k k d x x α+=+,计算)1()1(++-=k k Ax b r。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 引入
• 线性代数方程组的解法
• 直接法:高斯消去法,分解法 • 迭代法:
• 古典迭代法:Jacobi,Gauss-Seidel,SOR,SSOR • 现代迭代法:(投影方法,子空间法)
• 正交化的误差投影型Krylov:FOM,IOM,DIOM • 对称情形误差投影型Krylov:Lanczos,CG,PCG • 化的残量投影型Krylov:GMRES,GCR • 双正交化投影型Krylov方法:BiCG,CGS…..
4 预处理方法
4 预处理方法
4 预处理方法
5 高效实现
谢 谢!1 引入• CG算法源自残差向量 搜索步长 搜索方向
2 知识回顾
3 算法原理
3 算法原理
4 预处理方法
• 预处理方法
• 取预优矩阵(预处理矩阵)为A的一个小带宽部分(如三对角或对角线 部分)
• 矩阵分裂,尤其是线性稳定迭代中的矩阵A的分裂构造预处理矩阵 • 通过A的各种近似分解得到预处理矩阵(如不完全分解) • 通过矩阵A的多项式构造预处理矩阵 • 子结构,区域分裂,EBE预处理途径等等
相关文档
最新文档