ljcluster.m

来自「基于MATLAB的微粒群工具箱」· M 代码 · 共 17 行

M
17
字号
function minEnergy = LJcluster(Swarm)
[SwarmSize, Dim] = 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

⌨️ 快捷键说明

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