题目:分别用最速下降法、DFP法求解问题:
1、
2、
1取初始点,通过Matlab编程实现求解过程。
1公用函数如下:
1、functionf= fun( X )
%所求问题目标函数
f=X(1)^2-10*cos(2*pi*X(1))+10+X(2)^2-10*cos(2*pi*X(2))+10+X(3)^2-10*cos(2*pi*X(3))+10;
end
2、functiong= gfun( X )
%所求问题目标函数梯度
g=[2*X(1)+20*pi*sin(2*pi*X(1)),2*X(2)+20*pi*sin(2*pi*X(2)),2*X(3)+20*pi*sin(2*pi*X(3))];
end
3、functionHe = Hess( X )
%所求问题目标函数Hesse矩阵
n=length(X);
He=zeros(n,n);
He=[2+40*pi*pi*cos(X(1)),0,0;
0,2+40*pi*pi*cos(X(2)),0;
0,0,2+40*pi*pi*cos(X(3))];
end
解法一:最速下降法
function[ x,val,k ] = grad( fun,gfun,x0 )
%功能:用最速下降法求无约束问题最小值
%输入:x0是初始点,fun和gfun分别是目标函数和梯度
%输出:x、val分别是最优点和最优值,