什么是共轭梯度法?求matlab程序

什么是共轭梯度法?求matlab程序,第1张

共轭梯度法是介于最速下降法与牛顿法之间的一个方法,它仅需利用一阶导数信息,但克服了最速下降法收敛慢的缺点,又避免了牛顿法需要存携枣储和计算Hesse矩阵并求逆的缺点,共轭梯度法不仅是解决大型线性方程组最有用的方法之一,也是解大型非线性最优化最有效的算法之一薯隐缓。 共轭梯度法最早是又Hestenes和Stiefle(1952)提出来的,数模用于解正定系数矩阵的线性方程组,在这个基础上,Fletcher和Reeves(1964)首先提出了解非线性最优化问题的共轭梯度法。由于共轭梯度法不需要矩阵存储,且有较快的收敛速度和二次终止性等优点,现在共轭梯度法已经广泛地应用与实际问题中。 共轭梯度法是一个典型的共轭方向法,它的每一个搜索方向是互相共轭的,而这些搜索方向d仅仅是负梯度方向与上一次迭代的搜索方向的组合,因此,存储量少,计算方便

从效率上,共轭方向法位于最速下降法和牛顿法之间,具有以下特性:

1、对于n维二次型问题厅逗,能够在n步之内得到结果。

2、作为共轭方知坦向法的典型代表,共轭梯度法不需要黑塞矩阵。

3、不需要存储 的矩阵,也不需要求逆。

针对n维二次型函数的最小化:

其中, 。

基本的共轭方向算法 。给定初始点 和一组关于 共轭的方向 ,迭代公式为:

共轭梯度法不需要提前给定Q共轭方向,而是随着迭代不断产生Q共轭方向,在每次迭代中,利用上一搭伏桐个搜索方向和目标函数在当前迭代点的梯度向量之间的线性组合构造一个新方向,使其与前面已经产生的搜索方向组成Q共轭方向。这就是共轭梯度法这一名字的由来。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12422413.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存