共轭梯度法及其基本性质
- 格式:docx
- 大小:238.19 KB
- 文档页数:13
共轭梯度法详细解读
嘿,朋友们!今天咱就来好好唠唠共轭梯度法。
你想想啊,咱平常解决问题就像走迷宫似的,有时候会在里面转来转去找不到出路,而共轭梯度法呀,就像是在迷宫里给咱指了一条明路!比如说你想找一条最快从山这头到那头的路,共轭梯度法就能帮上大忙啦!
它可不是随随便便就出现的哦,那可是数学家们绞尽脑汁研究出来的宝贝呢!就好比一个超级英雄,专门来打救我们这些在复杂问题里苦苦挣扎的人。
在实际应用里,它可厉害着呢!比如说在工程计算中,要设计一个最完美的结构,共轭梯度法就能迅速算出最优解。
哇塞,这不就相当于有个超厉害的军师在帮咱出谋划策嘛!
你再想想,我们日常生活中很多事情都可以类比成用共轭梯度法来解决问题呀。
比如说你要规划一次旅行,怎么安排路线最合理,不就是在找那个最优的旅行路径嘛,这时候共轭梯度法的思路就能派上用场啦!它就像一个隐藏在幕后的高手,默默地为我们排忧解难。
而且哦,一旦你掌握了它,那种感觉就像是你突然掌握了一种绝世武功,能在各种难题面前游刃有余。
这可太酷了吧!
哎呀呀,共轭梯度法真的是太神奇、太有用啦!大家可一定要好好去了
解它、运用它呀,你绝对会被它的魅力折服的!相信我,没错的!。
共轭梯度(CG)算法共轭梯度(Conjugate Gradient, CG)算法是一种用于求解线性方程组的迭代算法。
它主要用于求解对称正定矩阵的线性方程组,如最小二乘问题、PDE(偏微分方程)问题等。
CG算法通过利用矩阵的对称性和正定性,以及向量的共轭关系,实现了高效的求解线性方程组的能力。
CG算法的基本思想是通过一系列共轭的方向,逐步逼近方程组的解。
它利用了矩阵的特性,减少了计算量和存储需求,并且具有较快的收敛速度。
下面将介绍CG算法的原理和过程。
首先,假设我们要求解一个线性方程组Ax=b,其中A是对称正定矩阵,b是已知向量,x是待求解向量。
我们通过迭代的方式逼近x的解,即x(k)。
CG算法的迭代过程如下:1.初始化:选择一个初始解x(0),设置r(0)=b-Ax(0),p(0)=r(0),k=0;2. 迭代计算:计算步长alpha(k)和更新向量x(k+1):alpha(k) = (r(k)^T * r(k)) / (p(k)^T * A * p(k))x(k+1) = x(k) + alpha(k) * p(k)3. 计算残差向量r(k+1)和比例系数beta(k+1):r(k+1) = r(k) - alpha(k) * A * p(k)beta(k+1) = (r(k+1)^T * r(k+1)) / (r(k)^T * r(k))4.更新方向p(k+1):p(k+1) = r(k+1) + beta(k+1) * p(k)5.终止条件判断:如果满足终止条件,停止迭代;否则,令k=k+1,返回步骤2在CG算法中,为了降低数值误差和迭代次数,通常会使用预条件技术,如Jacobi预条件、不完全Cholesky预条件等。
预条件技术可以通过对矩阵进行适当的近似,加速算法的收敛。
CG算法的收敛性和效率主要与矩阵的条件数有关。
对于条件数较大的矩阵,CG算法的迭代次数会增加,收敛速度会减慢。
因此,在实际应用中,通常会选择合适的预条件技术和求解策略,以提高CG算法的效率和稳定性。
共辄梯度法及其基本性质共轭梯度法及其基本性质预备知识定义1设是对称正定矩阵。
称刃是A-共轭的,是指= 0, Ap x>0. >0.性质1设有PshS泌5是彼此共轭的讯维向量,即则汕"…心一定是线性无关的。
[证明]若有一组数弘…宀满足+…二①则对一切Oh"擁一定有^=Pi 珂十・・・+ =应#观r注意到工°,由此得出S'即所有的込=0 •因此, 內心严仇是线性无关的.性质2 设向量比,和「…启曲是线性无关的向量组,则可通过它们的线性组合得出一组向量PoH珀,而%尸■…化是两两共轭的.[证明]我们用构造法来证实上面的结论.J«-L=耳 +S a «iA-!-0容易验证:PwPW 「P 邈符合性质2的要求.性质3设戸积尸簞是两两A —共轭的,弘虫 是任意指定的向量,那么 从奄出发,逐次沿方向丹心「…化搜索求曲)加-対了的极小值,所得 序列k"i ,满足:[证明]由下山算法可知,从 勺出发,沿刊■方向搜索,获得从而S1:Jt-iiJJJt-1 Jl-1矶=^-1卜龟=常—! +工霭刃=-=咼+工务41亠;M)性质4设PWg 是两两A 共轭的,则从任意指定的 兀巴卅出发,依 次沿;■' '" '■■-'搜索,所得序列」」满足:(2) 巧二匚,其中孙是方程组(5.1.1)的解.[证明](1)是性质3的直接推论,显然成立.(2)由于氏心「'""I 是两两A 共轭的,故和心「…丑-】是线性无关的.所以对于向量九一况可用氏①「■"”1线性表出,即存在一组数''・以•—使JS-1汕=^0 +力岛刃1-0由于琉如广0. j = l •…川-L 加兀壮,得出(1"恶+T,呎掘,7—.M-1忌=®十另禹孔于是j ,再由得出2异.对比乳和心的表达式可知,©二兀证明完毕性质4是性质3的直接推论.但它给出了一种求(5 . 1. 1)的算法,这种 算法称之为共轭方向法•结合性质2,我们可以得到如下的性质5.性质5设 亦卧…居“1是卍上的一组线性无关的向量,则从任意指定的九w 史出发,按以下迭代产生的序列:直=2^计算 Pl^Pi ,得出乃二心+创洌如此进行下去,直到第n 步:f沏=』曾,eQ 「*-2.S n :计算■"取Pz 二站+也+…+也戸7B-1心二乃十瓦爲比于是Z,与得出总一样地,我们可以陆续得出:S2计算° 琉呱,取戸】二呂1+0沪0 .和=存严久一1叽1得出“二心■1 + °£"巩7计算显然:根据性质4可知,不论采用什么方法,只要能够构造□个两两A共轭的向量作为搜索方向,从任一初始向量出发,依次沿两两A共轭的方向进行搜索,经用步迭代后,便可得到正定方程组氐」的解.共轭梯度法算法步骤如下:[预置步]任意%亡計,计算=A,并令取:丹二%指定算法终止常数,置;,进入主步;[主步](1)如果' 1',终止算法,输出-''■;否则下行;(2)计算:歹脑1 =^+i(3)计算:(4)置k " +1,转入(1)定理5 .2.1 由共轭梯度法得到的向量组和〔羽}具有如下性质: (])一;、1「….■- ■-(2)和=0, 0<i(3)* 3 - . 7-y(4)密…应卜巒做…"」=兀僅心北+1),其中忙 二号血*…通常称之为Krylov 子空间.[证明]用归纳法•当'1时,因为二 5” 气二抵 _ %Ap,円二 G + A )丹P 詁=广:广1 = H (% " %期0)=币6 — 口击母° = 5因此定理的结论成立.现在假设定理的结论对 k 成立,我们来证明其对比+1 也成立.利用等式sa 叫如及归纳假设,有戸f%*]二_ 侈几戸:血上二 X<i-l-又由于故定理的结论(1)对疋+ 1成立.利用归纳假定有如鬆/J =宰妙{Po^-f Pti而由(1)所证知,%】与上述子空间正交,从而有定理的结论(2)对h —也成立.利用等式二 J +炕% 和 r i+l 二 q - 碣母j并利用归纳法假定和(2)所证之结论,就有(521 )Pi^Po = Cn +几航尸禺=代占心-成立;而由炕的定义得厂厂Ap3 =阳也"如=3 一鼎圧如=°这样,定理的结论(3)对*十1也成立.由归纳法假定知S Pt丘忙(月町用+ 1)=孚池旳仏进而匍e昭蜩{矶r乂%.屮心)u网讣。
共轭梯度法及其基本性质预备知识定义1设吐竺是对称正定矩阵。
称回凹是A-共轭的,是指況如=0, Pl Ap^ > o p p^Apy >0性质1设有怡久…化⑶s )l 是彼此共轭的即维向量,即则鬥心諾一定是线性无关的[证明]若有一组数1% ■…心討满足则对一切P=°」旳一定有是线性无关的.性质2 设向量国"弧…厨諾是线性无关的向量组,则可通过它们的线性组合得出一组向量 冋丿“…护討,而|円貯,…申詞是两两共轭的.[证明]我们用构造法来证实上面的结论.T_注意到腕弘由此得出:Cfj = O.j即所有的区1=0 .因此,%珂十…+ %P 純^ = Pi + ・・・ +=应住;^Pi r容易验证:列…&胡符合性质2的要求.性质3设1%几…护』是两两A —共轭的,怜已必 是任意指定的向量,那么 从囲出发,逐次沿方向 应1「…化|搜索求际/加-能旬的极小值,所得序列k"i ,满足:[证明]由下山算法可知,从 二出发,沿2方向搜索,获得从而取 Pl 二 El +%弘Jt-iZ =心+乞碍耳,id性质4设 兀乃;匚几-』是两两A 共轭的,则从任意指定的注門出发,依次 沿弘山「'"MI 搜索,所得序列kJz 满足:(1)(2) 或,其中曰是方程组(5.1.1)的解.[证明](1)是性质3的直接推论,显然成立.(2)由于是两两A 共轭的,故血“,…申”11是线性无关的.所 以对于向量卜一咄可用…申』线性表出,即存在一组数Rof ■经J 使,得出F] P\由于于是,再由得出M-l木=心+乞爲P于是 ---------- 旦 ---- ,与得出 也旦一样地,我们可以陆续得出:对比区]和的表达式可知,I©二兀证明完毕性质4是性质3的直接推论.但它给出了一种求(5 . 1. 1)的算法,这种 算法称之为共轭方向法•结合性质2,我们可以得到如下的性质5.性质5设 陽卧…是丽上的一组线性无关的向量,则从任意指定的S2:计算显然:根据性质4可知,不论采用什么方法,只要能够构造 个两两A 共轭的向量作为搜索方向,从任一初始向量出发,依次沿两两A 共轭的方向进行搜索, 经門 步迭代后,便可得到正定方程组匡可的解.nM-l -T A久一1如一,得出 心二 U+ 计算 出发,按以下迭代产生的序列®二环+%肌.-------------------------------------------------- ?,得出应二咼+冏輕I;如此进行下去,直到第n 步:(521 )共轭梯度法算法步骤如下:[预置步]任意 如三兰I ,计算并令取:肚込J 指定算法终 止常数置肛=D |,讲入主步;[主步](1)如果%终止算法,输出丈列;否则下行;上rL^Apj, r(3) 计算:(4) 置出弓丘可,转入(1)定理5 .2.1由共轭梯度法得到的向量组丄和二具有如下性质:[证明]用归纳法•当时,因为(2)计算:Po 二巾” h 二円二G+A J F U---------------------------------------------------------------------------------------------------------------------------------------------------- ?卩詁=耐广1 = M (% - %期0)=币6 —Cfp;山刊=5= 01 +几巩)孑禺=X占心-因此定理的结论成立.现在假设定理的结论对冋成立,我们来证明其对曰也成立.利用等式n】二G 一及归纳假设,有P訂如二於%- %云旳\二0 OWi三上1.又由于故定理的结论(1)对比+ 1|成立.利用归纳假定有如毗•・・・/』=零诚% TvPtK而由(1)所证知,二与上述子空间正交,从而有定理的结论(2)对 __ 也成立.利用等式p如二厂屏1+久刃|和二疗.丐母)并利用归纳法假定和(2)所证之结论,就有=丄咕仮一加)+屁分如「心CU…上-1成立;而由円的定义得这样,定理的结论(3)对U也成立.由归纳法假定知进而再注意到(2)和(3)所证的结论表明,向量组hf 宀j和”"戸“1'"险1 都是线性无关的,因此定理的结论(4)对匸U同样成立.定理证毕定理521表明,向量「「引和|弘,W「珂|分别是Krylov子空间空如匕也的正交基和共轭正交基.由此可见,共轭梯度法最多明步便可得到方程组的解二.因此,理论上来讲,共轭梯度法是直接法.定理5.2.2 用共轭梯度法计算得到的近似解U满足义的Krylov子空间.证明注意到:”⑶斗疋也=広一忌)。
共轭梯度法及其基本性质
预备知识
定义1 设是对称正定矩阵。
称是A-共轭的,是指
性质1 设有是彼此共轭的维向量,即
则一定是线性无关的。
[证明]若有一组数满足
则对一切一定有
注意到,由此得出:即所有的=0.因此,
是线性无关的.
性质2设向量是线性无关的向量组,则可通过它们的线性组合得出一组向量,而是两两共轭的.
[证明]我们用构造法来证实上面的结论.
S0:取;
S1:令,取.
……
Sm:令
取
容易验证:符合性质2的要求.
性质3设是两两A-共轭的,是任意指定的向量,那么从出发,逐次沿方向搜索求的极小值,所得序列,满足:
.
[证明]由下山算法可知,从出发,沿方向搜索,获得
从而
性质4设是两两A共轭的,则从任意指定的出发,依次沿搜索,所得序列满足:
(1)
(2),其中是方程组(5.1.1)的解.
[证明](1)是性质3的直接推论,显然成立.
(2)由于是两两A共轭的,故是线性无关的.所以对于向量可用线性表出,即存在一组数使
由于及,得出
,
于是,再由得出
于是,与得出一样地,我们可以陆续得出:
对比和的表达式可知,
证明完毕
性质4是性质3的直接推论.但它给出了一种求(5.1.1)的算法,这种算法称之为共轭方向法.结合性质2,我们可以得到如下的性质5.
性质5设是上的一组线性无关的向量,则从任意指定的出发,按以下迭代产生的序列:
S1:取,,;
S2:计算,取;
计算,得出;
如此进行下去,直到第n步:
Sn:计算取
计算,得出.
显然:
根据性质4可知,不论采用什么方法,只要能够构造个两两A共轭的向量作为搜索方向,从任一初始向量出发,依次沿两两A共轭的方向进行搜索,经
步迭代后,便可得到正定方程组的解.
共轭梯度法
算法步骤如下:
[预置步]任意,计算,并令取:指定算法终止常数,置,进入主步;
[主步](1)如果,终止算法,输出;否则下行;
(2)计算:
(3)计算:
(4)置,转入(1).
定理5.2.1 由共轭梯度法得到的向量组和具有如下性质:
(1)
(2)
(3)
(4),其中
(5.2.1)通常称之为Krylov子空间.
[证明]用归纳法.当时,因为
,
因此定理的结论成立.现在假设定理的结论对成立,我们来证明其对也成立.
利用等式及归纳假设,有
又由于
,
故定理的结论(1)对成立.
利用归纳假定有
而由(1)所证知,与上述子空间正交,从而有定理的结论(2)对
也成立.
利用等式
和,
并利用归纳法假定和(2)所证之结论,就有
.成立;而由的定义得
这样,定理的结论(3)对也成立.
由归纳法假定知
进而
于是
再注意到(2)和(3)所证的结论表明,向量组和
都是线性无关的,因此定理的结论(4)对同样成立.
定理证毕定理5.2.1表明,向量和分别是Krylov子空间的正交基和共轭正交基.由此可见,共轭梯度法最多步便可得到方程组的解.因此,理论上来讲,共轭梯度法是直接法.
定理5.2.2 用共轭梯度法计算得到的近似解满足
(5.2.2)或
(5.2.3)
其中,是方程组的解,是由(5.2.1)所定义的Krylov子空间.
证明注意到:,则(5.2.2)和(5.2.3)是等价的,因此我们下面只证明(5.2.3)成立.
假定共轭梯度法计算到步出现,那么有
此外,对计算过程中的任一步,有
设是属于的任一向量,则由定理5.2.1的(4)知,可以表示为
,
于是
而
,
再利用定理5.2.1的(3)就可以推出
于是定理得证.
定理证毕由定理5.2.1,我们容易得出
由此可得
(5.2.4)
另外,从理论上讲,该迭代法经次迭代,便能得到精确解.但考虑到计算误差,可以作为无限迭代算法进行计算,直到为止.
从而,我们得到如下实用的共轭梯度算法:
[预置步]任意,计算,并令取:指定算法终止常数,置,进入主步;
[主步](1)计算:,
(2)如果,转入(3).否则,终止算法,输出计算结果
(3)计算:
(4)置,转入(1)
注:在算法[主步]中,引入变量,及,可以简化计算。
结合程序设计的特点,共轭梯度法可改为如下实用形式:
算法5·3·1(解对称正定方程组:实用共轭梯度法)
;
while and
if
else
end
end
共轭梯度法作为一种实用的迭代法,它主要有下面的优点:
算法中,系数矩阵A的作用仅仅是用来由已知向量产生向量
,这不仅可充分利用A的稀疏性,而且对某些提供矩阵A
较为困难而由已知向量产生向量又十分方便的应用问题
是很有益的;
不需要预先估计任何参数就可以计算,这一点不像SOR等;
每次迭代所需的计算,主要是向量之间的运算,便于并行化。
5.2.3 收敛性分析
将共轭梯度法作为一种迭代法,它的收敛性怎样呢?这是本节下面主要讨论的问题:
定理5.2.3 如果而且,则共轭梯度法至多迭代步即可得到方程组的精确解。
证明注意到蕴含着子空间
的维数不会超过,由定理5.2.1即知定理的结论成立。
定理证毕定理5·2·3表明,若线性方程组(5·1·1)的系数矩阵与单位相关一个秩的矩阵,而且很小时,则共轭梯度法将会收敛得很快。
定理5·2·4 用共轭梯度法求得的有如下的误差估计
(5·2·5)
其中
证明由定理5·2·1可知,对任意的,有
记,则是常数项为1的次实系数多项式。
令为所有常数项为1的次数不超过的实系数多项式的全体,则由定理5·2·2和引理5·1·1得
其中是的特征值。
由Chebyshev多项式逼近定理及Chebyshev多项式的性质,定义在[-1,1]区间上的次Chebyshev多项式:
是所有常数项为1的次数不超过的实系数多项式中,在[-1,1]上与“0”的偏差值最小的多项式。
且偏差值为1,对应的交错点组为:。
因此,多项式
是中在上与“0”的偏差值最小的多项式。
即
于是,我们有
因此,定理得证。
定理证毕
虽然定理5·2·5所给出的估计是十分粗糙的,而且实际计算时其收敛速度往往要比这个估计快得多,但是它却提示了共轭梯度法的一个重要的性质:只要
线性方程组(5·1·1)的系数矩阵是十分良态的(即),则共轭梯度法就会收敛的很快。