⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bana_sd.m

📁 模糊神经网络与软件计算的各章代码
💻 M
字号:
% % Naive Steepest Descent % % E. Mizutani, %% Rosenbrock's banana function. % minimum [1.1]  f(x,y)=0.%point_n = 25;x=linspace(-2, 2, point_n);y=linspace(-1, 3, point_n);[xx,yy]=meshgrid(x,y);zz= 100.*(yy-xx.^2).^2+(1-xx).^2;subplot(221);mesh(xx, yy, zz);view([-20, 25]); set(gca, 'box', 'on');axis([-inf inf -inf inf -inf inf]);xlabel('X'); ylabel('Y'); zlabel('E(X,Y)');title('(a) Banana function');% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% subplot(222);% The initial pointx0 = -1.9; y0 = 2;%%% How many steps?p_count = 60;position = zeros(p_count, 2);position(1,1) = x0; position(1,2) = y0;% fx = -400.*(yy-xx.^2).*xx-2+2.*xx;% fy = 200.*yy-200.*xx.^2; % fxx=1200.*xx.^2-400.*yy+2;% fxy=-400.*xx;% fyy=200;X = x0; Y = y0; fx = -400.*(Y-X.^2).*X-2+2.*X;fy = 200.*Y-200.*X.^2; g = [fx; fy];% To make the first step zero!step = 0.00000001 * g';eta = 0.001; momentum = 0.8;for i = 2:p_count,	X = position(i-1,1);	Y = position(i-1,2);	fx = -400.*(Y-X.^2).*X-2+2.*X;	fy = 200.*Y-200.*X.^2; 	g = [fx; fy];%%%	position(i,:)=position(i-1,:)-eta*g';	position(i,:)=position(i-1,:)-eta*g' + momentum * step;	step = -eta*g';  if i > 50,    eta = 0.01;   endend% Resampling to have a better contourspoint_n = 100;x=linspace(-2, 2, point_n);y=linspace(-1, 3, point_n);[xx,yy]=meshgrid(x,y);zz= 100.*(yy-xx.^2).^2+(1-xx).^2;contour(xx, yy, zz, 40);hold on;plot(x0, y0, '*');arrow(position(:, 1), position(:, 2));x_last = position(p_count,1); y_last = position(p_count,2);plot(x_last, y_last, 'x');xlabel('X'); ylabel('Y'); title('(b)');hold off;axis image;%%%%%%%%%%%%%%%% subplot(223);% Resampling to have a better contourspoint_n = 100;x=linspace(x_last-0.2, x_last+0.2, point_n);y=linspace(y_last-0.2, y_last+0.2, point_n);% x=linspace(-1.5, -0.5, point_n);% y=linspace(0.5, 1.5, point_n);[xx,yy]=meshgrid(x,y);zz= 100.*(yy-xx.^2).^2+(1-xx).^2;contour(xx, yy, zz, 40);hold on;plot(x0, y0, '*');arrow(position(:, 1), position(:, 2));x_last = position(p_count,1); y_last = position(p_count,2);plot(x_last, y_last, 'x');xlabel('X'); ylabel('Y'); title('(c)');hold off;axis image;%% %%% Tail of the file

⌨️ 快捷键说明

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