两种共轭梯度法的算法框架:
Fletcher-Reeves
1. 任取
,令
2. 如果
,停止计算
3. 如果k/n等于0或整数,令
,否则令
,其中
4. 进行精确搜索获得
5. 用k+1替代k,回到2,继续迭代
Polak-Ribiere
1. 任取
文章介绍了Fletcher-Reeves和Polak-Ribiere两种共轭梯度法的算法框架,用于解决无约束优化问题。通过Python和numpy库实现算法,以二维函数为例,展示每种方法的迭代过程和最优解。并提供了代码示例及等值线图,比较了两种方法在函数值随迭代次数变化的情况。
Fletcher-Reeves
1. 任取
,令
2. 如果
,停止计算
3. 如果k/n等于0或整数,令
,否则令
,其中
4. 进行精确搜索获得
5. 用k+1替代k,回到2,继续迭代
Polak-Ribiere
1. 任取
920
1万+
3626