当前位置: 代码迷 >> 综合 >> Numerical Optimization共轭梯度法
  详细解决方案

Numerical Optimization共轭梯度法

热度:39   发布时间:2023-12-24 21:28:01.0

在这里插入图片描述
在这里插入图片描述
n个pin个p_inpi?线性无关且共轭,表示为x的基
在这里插入图片描述
这样极小化括号的数,转化为n个一维的优化问题在这里插入图片描述
这里求最小值 隐含了piTAPi>0p_i^TAP_i>0piT?APi?>0,所以要求对称正定,即强凸的。

共轭法

在这里插入图片描述
搜索步长αk\alpha_kαk?是通过极小化Φ(xk+αpk)\Phi(x_k+\alpha p_k)Φ(xk?+αpk?)得到的
在这里插入图片描述
即对于凸的二次函数,共轭算法的步长是可能精确计算得到的
在这里插入图片描述
证明
在这里插入图片描述

举例
在这里插入图片描述
二维的问题,?(x)\phi(x)?(x)的等高线是椭圆,由于A是对角阵,所以对称轴于行于坐标轴,且e1与e2对于A是共轭

当A,不再是对角矩阵时,e1与e2 不再是A的共轭方向
2步之内无法找到问题的解

在这里插入图片描述
因此,坐标方向法:当原始问题对应的矩阵A非对角时,我们可以对原问题作线性变化,使得新的newA 是对角的,然后可以使用共轭方向法在n 部内求得最优点。
在这里插入图片描述
在这里插入图片描述

一般性
在这里插入图片描述
在这里插入图片描述
第k步生成的残差rk和前面的搜索方向正交
如何生成共轭搜索方向,两种方法:特征向量,和Gram -Schmidt 正交化。对于第一种有对于实对称矩阵属于不同特征值的特征向量相互正交,因此可以推出来这些特征向量对于A 是共轭的

共轭梯度法

在这里插入图片描述
在这里插入图片描述
具体流程
在这里插入图片描述
在这里插入图片描述
对于rnr_nrn?r0…rn?1r_0\dots r_{n-1}r0?rn?1?正交,则可以推出来n维空间中和n个线性无关向量都正交的话,这个向量一定是n向量,即Axn=bA_{x_n}=bAxn??=b是所求的解。
这些结论是依赖于初始点的选择的,即是在(p0=-ro)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
λn?k和λ\lambda_{n-k}和\lambdaλn?k?λ非常接近时,第iii步迭代解非常接近精确 解

在这里插入图片描述
共轭梯度法在更新迭代方向时不仅利用了利用了上一步的迭代方向,同时利用了上一步的梯度信息,因此相对于最速下降法更快收敛在这里插入图片描述
当条件数越小,越快,特别是当条件数为1时,其单位矩阵,只需要一步便可以得到最优解

算法回速Pre conditioning

当特征值 分部比较集中时,当分布到1 附近时收敛更快。通过对变量线性变换,转换成具有好的性质,即特征值相对集中
在这里插入图片描述
在这里插入图片描述
上述的目标还是在解?(x)=xTAx?bTx\phi(x)=x^TAx-b^Tx?(x)=xTAx?bTx,但是为了加速计算,先对x 作线性变换x^=Cx\hat{x}=Cxx^=Cx,代入上式得到关于x^\hat{x}x^的方程,求解出最优的x^\hat{x}x^来重构要求的x,
当然可以利用上面的程序直接求出x,是等价的
需要求的?(x)=xTAx?bTx\phi(x)=x^TAx-b^Tx?(x)=xTAx?bTx
?^(x^)=12x^T(C?TAC?1)x^?(C?Tb)Tx^求导:rk^=(C?TAC?1)x^?(C?Tb)x^=Cxrk=Axk?bM=CTCMyk=rkCTCyk=rkCyk=C?Trk=C?TAxk?C?Tb=C?TAC?1xk?C?Tb=rk^因此可以看出yk是我们要求的即?()\hat{\phi}(\hat{x})=\frac{1}{2} \hat{x}^{T}\left(\mathcal{C}^{-T} A C^{-1}\right) \hat{x}-\left(C^{-T} b\right)^{T} \hat{x}\\ 求导:\hat{r_{k}}=\left(\mathcal{C}^{-T} A C^{-1}\right) \hat{x}-\left(C^{-T} b\right)\\ \hat{x}=Cx\\ r_k=A{x_{k}}-b\\ M=C^TC\\ My_k=r_k\\ C^TCy_{k}=r_{k}\\ Cy_{k}=C^{-T}r_k=C^{-T}A{x_{k}}-C^{-T}b=C^{-T}A{C^{-1} x_{k}}-C^{-T}b=\hat{r_{k}}\\ 因此可以看出y_{k}是我们要求的即\phi() ?^?(x^)=21?x^T(C?TAC?1)x^?(C?Tb)Tx^rk?^?=(C?TAC?1)x^?(C?Tb)x^=Cxrk?=Axk??bM=CTCMyk?=rk?CTCyk?=rk?Cyk?=C?Trk?=C?TAxk??C?Tb=C?TAC?1xk??C?Tb=rk?^?yk??()

  相关解决方案