ljcluster.m

来自「用matlab语言编的多维粒子群代吗」· M 代码 · 共 37 行

M
37
字号
function y = LJcluster(Swarm)%传递最优的粒子群的位置b(j,z)三维
[m,Dim,Pop] = size(Swarm);
% spherical coordinates
%minEnergy = zeros(SwarmSize,1);
%N = Dim / 3;
%for k = 1 : SwarmSize
 %   x = Swarm(k,:);    
  %  for i = 1 : N-1
   %     for j = i+1 : N
    %        r = (x(3*j)*cos(x(3*j-2))*cos(x(3*j-1))-x(3*i)*cos(x(3*i-2))*cos(x(3*i-1)))^2 + ...
     %           (x(3*j)*cos(x(3*j-2))*sin(x(3*j-1))-x(3*i)*cos(x(3*i-2))*sin(x(3*i-1)))^2 + ...
     %           (x(3*j)*sin(x(3*j-2))-x(3*i)*sin(x(3*i-2)))^2;
     %       minEnergy(k) = minEnergy(k) + r^(-6) - 2*r^(-3);
     %   end
  % end%
%end
%return
%function y=Rastrigin(x,Lap,L,d)
%Rastrigin函数
%输入x,给出相应的y值,在x=(0,0,…,0)处有全局极小点0.
%编制人:
%编制日期:
%y=ones(ParticleSize,Dim);%真他妈的是经验之谈
y=0;
for j=1:Pop
   x=Swarm(:,:,j);
  for d=1:Dim
     x(d)=x(1,d);     
  %y=Swarm.^2-10*cos(2*pi*Swarm)+10;
     
  y=y+(x(d).^2-10*cos(2*pi*x(d))+10);
       %y=-y;
     
  end

end

⌨️ 快捷键说明

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