題目:分別用最速下降法、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分別是最優點和最優值,