📄 一个梯度优化算法的实例(演示).txt
字号:
%计算任务:求 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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -