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

📄 e681.m

📁 matlab算法集 matlab算法集
💻 M
字号:
%------------------------------------------------------------------
% Example 6.8.1: Simulated Annealing 
%------------------------------------------------------------------
   clc
   clear
   global r1 r2            % coordinates of minimum 
   r1 = 3;			
   r2 = 2;	

% Initialize
	
   n  = 2;
   p  = 100;
   m  = 5000;
   f0 = -1;
   f1 = 1;
   e1 = 0.1;
   e2 = 1.e-4;
   mu = 100;
   x1 = zeros (p,1);
   x2 = zeros (p,1);
   x0 = zeros (n,1);
   x  = zeros (n,1);
   a  = zeros (n,1);
   b  = zeros (n,1);
   F  = zeros (p,p);

% Initialize 

   fprintf ('Example 6.8.1: Simulated Annealing\n');
   e1 = prompt ('Enter error tolerance',0,1,e1);
   c  = prompt ('Enter localization parameter',0,1,0.1); 
   a0 = prompt ('Enter lower limit of x',-1000,1000,-10);
   b0 = prompt ('Enter upper limit of x',a0,1000,10);
   a = a + a0;
   b = b + b0; 
   
% Find the minimum using Boltzmann distribution 

   seed = 1000;
   x = x0;
   [x,ev,j] = anneal (x,f0,f1,e1,e2,seed,c,mu,m,a,b,'funf681');
   fprintf ('\n\nError tolerance = %.3f',e1);
   fprintf ('\nLocalization parameter = %.3f',c);
   fprintf ('\n[a,b] = [%f,%f]',a0,b0);
   fprintf ('\nTotal iterations = %g.',j);
   fprintf ('\nFunction evaluations = %g.',ev);
   fprintf ('\nOptimal x = [%.7f,%.7f]',x(1),x(2)); 
   fprintf ('\nOptimal f(x) = %.7f\n',funf681(x));
   
% Plot objective function 

   fprintf ('Plotting objective surface ...\n');
   for i = 1 : p
      x1(i) = (i-1)*2*r1/(p-1);
      for j = 1 : p
         x2(j) = (j-1)*2*r2/(p-1);
         x(1) = x1(i);
         x(2) = x2(j);
         F(i,j) = funf681(x);
      end
   end
   plotxyz (x1,x2,F,'','x_1','x_2','f(x)')

   

⌨️ 快捷键说明

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