我的题目是采用精确线搜索的BFGS算法求解下面的无约束问题:minf(x)=1/2x(1)^2+x(2)^2-x(1)x(2)-2x(2),初始点是(1,1),初始矩阵是单位矩阵,求问题最优解,我看书上的答案是(4,2),为什么我的答案是(0,0)..
请大家帮帮忙..谢谢。.
function y=BFGS
disp ('The results:')
k=0;
x=[1,1]';
B=eye(2);
d=inv(B)*(-1)*g(x);
e=1.0e-5;
while norm(g(x))>e;
      G=g(x);
      a=a(x,d);
      k=k+1;
      x=x+a*d;
      s=a*d;
      y=G-g(x);
      B=B-(B*s*s'*B)/(s'*B*s)+(y*y')/(y'*s);
end
function obj=f(x)
obj=1/2*x(1)^2+x(2)^2-x(1)*x(2)-2*x(1);
function gra=g(x)
gra=[x(1)-x(2)-2,-x(1)+2*x(2)]';
function len=a(x,d)
len=-(x(1)*d(1)-x(2)*d(1)-2*d(1)-x(1)*d(2)+2*x(2)*d(2))/((d(1)-d(2))^2+d(2)^2);