在https://blog.csdn.net/weixin_35338624/article/details/100981729中提到过,最速下降算法的缺陷是不能在有限步内找到最优值。如果把每次更新的方向选为共轭方向,在理论上可以保证有限步内达到局部最优点。数学证明参考https://www.bilibili.com/video/av14666879/?p=11
问题
为了验证共轭梯度算法的效率,选择与https://blog.csdn.net/weixin_35338624/article/details/100981729中相同的优化函数
即:
min 2*x^2+2*x*y + 5*y^2 初始点 z = [2,-2]'
代码实现
#include<iostream>
#include<vector>
using namespace std;
double C = 0;
vector<double> B = {0,0};
vector<double> X_0;
vector<vector<double>> A = {
{4.0,2.0},{2.0,10.0}};