25共轭梯度法
- 格式:ppt
- 大小:2.10 MB
- 文档页数:42
共轭梯度法公式
共轭梯度法是一种用于求解线性方程组的迭代算法。
其主要思想是通过利用前一次迭代的信息来加速当前迭代的速度,从而减少迭代次数和计算量。
共轭梯度法公式包括以下几个步骤:
1. 初始化:设初始解为x0,残量b0为Ax0-b,共轭方向d0=b0。
2. 迭代求解:对于第k次迭代,计算步长αk,使得xk+1=xk+αkd,其中d是共轭方向,满足dTkAd=0,即d是A的共轭向量。
3. 更新残量:计算新的残量bk+1=Axk+1-b,如果bk+1小于预设精度,则停止迭代。
4. 更新共轭方向:计算新的共轭方向dk+1=bk+1+βkdk,其中βk=(bk+1)Tbk+1/(bk)Tbk,保证dk+1与之前的共轭方向都是A的共轭向量。
5. 重复迭代,直到满足收敛条件,返回最终解xk+1。
共轭梯度法是一种高效的求解大型线性方程组的方法,尤其适用于稀疏矩阵和对称正定矩阵。
公式简单易懂,容易实现,且具有较快的收敛速度。
- 1 -。
共轭梯度法步骤共轭梯度法是一种求解线性方程组的迭代算法,它以高效稳定的特点而广受欢迎。
以下是共轭梯度法的步骤:步骤1:初始化首先,我们需要有一个初始向量x0和一个初始残量r0=b-Ax0。
其中,A为系数矩阵,b为常数向量。
步骤2:计算方向向量令d0=r0,表示第一次迭代的方向向量。
步骤3:计算步进长度令α0=(r0·r0)/(d0·Ad0),其中·表示向量的点积。
α0表示迭代过程中每个方向向量的步进长度。
步骤4:更新解向量令x1=x0+α0d0,表示迭代后的解向量。
步骤5:计算新残量令r1=r0-α0Ad0。
步骤6:判断终止条件如果r1的范数小于预设阈值,或者迭代次数达到预设次数,终止迭代。
否则,进入下一次迭代。
步骤7:更新方向向量令β1=(r1·r1)/(r0·r0),表示更新方向向量的轴线。
步骤8:计算新方向向量令d1=r1+β1d0,表示新的迭代方向向量。
步骤9:计算新的步进长度令α1=(r1·r1)/(d1·Ad1)。
步骤10:更新解向量令x2=x1+α1d1。
步骤11:更新残量令r2=r1-α1Ad1。
步骤12:重复步骤6至11,直至满足终止条件。
总结起来,共轭梯度法的步骤主要包括初始化、计算方向向量、计算步进长度、更新解向量、计算新残量、判断终止条件、更新方向向量、计算新的步进长度、更新解向量和更新残量等。
该算法迭代次数较少,收敛速度快,适用于大规模线性方程组的求解。
一、共轭梯度法共轭梯度法(Conjugate Gradient)是共轭方向法的一种,因为在该方向法中每一个共轭向量都是依靠赖于迭代点处的负梯度而构造出来的,所以称为共轭梯度法。
由于此法最先由Fletcher和Reeves (1964)提出了解非线性最优化问题的,因而又称为FR 共轭梯度法。
由于共轭梯度法不需要矩阵存储,且有较快的收敛速度和二次终止性等优点,现在共轭梯度法已经广泛地应用于实际问题中。
共轭梯度法是一个典型的共轭方向法,它的每一个搜索方向是互相共轭的,而这些搜索方向d仅仅是负梯度方向与上一次迭代的搜索方向的组合,因此,存储量少,计算方便,效果好。
二、共轭梯度法的原理设有目标函数f(X)=1/2X T HX+b T X+c 式1 式中,H作为f(X)的二阶导数矩阵,b为常数矢量,b=[b1,b2,b3,...b n]T 在第k次迭代计算中,从点X(k)出发,沿负梯度方向作一维搜索,得S(K)=-∆f(X(k))式2 X(k+1)=X(k)+ɑ(k)S(k) 式3在式中,ɑ(k)为最优步长。
设与S(k)共轭的下一个方向S(k+1)由点S(k)和点X(k+1)负梯度的线性组合构,即S (k+1)=-∆f (X (k+1))+β(k)S (k) 式4 根据共轭的条件有[S (k)]T ∆2f (X (k))S (k+1)=0 式5 把式2和式4带入式5,得-[∆f(X (k))]T ∆2f (X (k))[-∆f (X (k+1))+β(k)S (k) ]=0 式6 对于式1,则在点X (k)和点X (k+1)的梯度可写为∆f(X (k))=HX (k)+b 式7 ∆f (X (k+1))=HX (k+1)+b 式8 把上面两式相减并将式3代入得ɑ(k)H S (k)=∆f (X (k+1))-∆f(X (k)) 式9 将式4和式9两边分别相乘,并代入式5得-[∆f (X (k+1))+β(k)∆f(X (k))]T [∆f (X (k+1))-∆f(X (k)]=0 式10 将式10展开,并注意到相邻两点梯度间的正交关系,整理后得 β(k )=22||))((||||))1((||k X f k X f ∆+∆ 式11把式11代入式4和式3,得 S (k+1)=-∆f (X (k))+β(k )S (k )X (k+1)=X (k )+ɑ(k )S (k )由上可见,只要利用相邻两点的梯度就可以构造一个共轭方向。
最速下降法1.最速下降方向函数f(x)在点x处沿方向d的变化率可用方向导数来表示。
对于可微函数,方向导数等于梯度与方向的内积,即:Df(x;d) = ▽f(x)T d,因此,求函数f(x)在点x处的下降最快的方向,可归结为求解下列非线性规划:min ▽f(x)T ds.t. ||d|| ≤ 1当 d = -▽f(x) / ||▽f(x)||时等号成立。
因此,在点x处沿上式所定义的方向变化率最小,即负梯度方向为最速下降方向。
2.最速下降算法最速下降法的迭代公式是x(k+1) = x(k) + λk d(k) ,其中d(k)是从x(k)出发的搜索方向,这里取在x(k)处的最速下降方向,即d = -▽f(x(k)).λk是从x(k)出发沿方向d(k)进行一维搜索的步长,即λk满足f(x(k) + λk d(k)) = min f(x(k)+λd(k)) (λ≥0).计算步骤如下:(1)给定初点x(1) ∈ R n,允许误差ε> 0,置k = 1。
(2)计算搜索方向d = -▽f(x(k))。
(3)若||d(k)|| ≤ε,则停止计算;否则,从x(k)出发,沿d(k)进行一维搜索,求λk,使f(x(k) + λk d(k)) = min f(x(k)+λd(k)) (λ≥0).(4)令x(k+1) = x(k) + λk d(k),置k = k + 1,转步骤(2)。
共轭梯度法1.共轭方向无约束问题最优化方法的核心问题是选择搜索方向。
以正定二次函数为例,来观察两个方向关于矩阵A共轭的几何意义。
设有二次函数:f(x) = 1/2 (x - x*)T A(x - x*) ,其中A是n×n对称正定矩阵,x*是一个定点,函数f(x)的等值面1/2 (x - x*)T A(x - x*) = c是以x*为中心的椭球面,由于▽f(x*) = A(x - x*) = 0,A正定,因此x*是f(x)的极小点。