一个梯度优化算法的实例(演示).txt

来自「一个梯度优化算法的实例(演示)。。。。线性判别分析的伪逆算法程序(matlab6」· 文本 代码 · 共 29 行

TXT
29
字号
%计算任务:求 f(x,y)=2*x^2+2*x+y^2-y的最小值。 
%凸函数优化。 

%%%%%%%  函数图像  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
x0=-5:0.1:5;y0=x0; 
[X,Y]=meshgrid(x0,y0); 
fxy=2*X.^2+2*X+Y.^2-Y; 
surfc(X,Y,fxy); 
title('Surface of this function'); 
%%%%%%%%%% 梯度法求最小值 %%%%%%%%%%%%%%%%%%%%%%%%%%% 
error=10^(-6); 
xold=[2 2]'; 
e=1;S=[];step=0.02; 
while e>error 
    S=[S; xold']; 
    xnew=xold-step*[4*xold(1)+2  2*xold(2)-1]'; %沿负梯度方向进化。 
    e=norm(xnew-xold); 
    xold=xnew; 
end 
%%%%%%%%%%%%%%%%%%%% 绘图  %%%%%%%%%%%%%%%%%%%%%%%%%% 
figure;plot(S(:,1),S(:,2),'+');hold on; 
title('The trace of the solutions'); 
plot(S(1,1),S(1,2),'rd');  %The initial solution 
plot(S(end,1),S(end,2),'ro'); %The final solution 
%%%%%%%%%%%%%%%%%%%% END  %%%%%%%%%%%%%%%%%%%%%%%%%%% 
%% 拷贝以上所有存为.m文件,按F5运行即可. %%%%%%%%%%%%% 

-- 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?