一个梯度优化算法的实例(演示).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 + -
显示快捷键?