matlab 实现常用的混沌映射(Tent, Sine, Sinusoidal, Piecewise, Logistic, Cubic, Chebyshev)

大部分混沌映射的系数是有限制的, 针对每个模型最优的混沌系数是不一样的, 因此混沌系数要根据自己的模型来定. 下面的系数都是根据我自己的模型而设定的.

1 Tent 映射

公式:
在这里插入图片描述
实现:

N: 种群的个数; dim: 维度; tent: 混沌系数.

tent=2.5;
Tent=rand(N,dim);
for i=1:N
    for j=2:dim
        if Tent(i,j-1)<tent
            Tent(i,j)=Tent(i,j-1)/tent;
        elseif Tent(i,j-1)>=tent
            Tent(i,j)=(1-Tent(i,j-1))/(1-tent);
        end
    end
end

2 Sine 映射

公式:
在这里插入图片描述

实现:

N: 种群的个数; dim: 维度; sine: 混沌系数.

sine=2.5;
Sine=rand(N,dim);
for i=1:N
    for j=2:dim
        Sine(i,j)=(4/sine)*sin(pi*Sine(i,j-1));
    end
end

3 Sinusoidal 映射

公式:
在这里插入图片描述

实现:

N: 种群的个数; dim: 维度; sinusoidal: 混沌系数.

sinusoidal=2.5;
Sinusoidal=rand(N,dim);
for i=1:N
    for j=2:dim
        Sinusoidal(i,j)=sinusoidal*Sinusoidal(i,j-1).^2*(sin(pi*Sinusoidal(i,j-1)));
    end
end

4 Piecewise 映射

公式:
在这里插入图片描述

实现:

N: 种群的个数; dim: 维度; p: 混沌系数.

p=2.3;
Piecewise=rand(N,dim);
for i=1:N
    for j=2:dim
        if Piecewise(i,j-1)>0&&Piecewise(i,j-1)<p
            Piecewise(i,j)=Piecewise(i,j-1)/p;
        elseif Piecewise(i,j-1)>=p&&Piecewise(i,j-1)<0.5
            Piecewise(i,j)=(Piecewise(i,j-1)-p)/(0.5-p);
        elseif Piecewise(i,j-1)>=0.5&&Piecewise(i,j-1)<1-p
            Piecewise(i,j)=(1-p-Piecewise(i,j-1))/(0.5-p);
        elseif Piecewise(i,j-1)>=1-p&&Piecewise(i,j-1)<1
            Piecewise(i,j)=(1-Piecewise(i,j-1))/p;
        end
    end
end

5 Logistic 映射

公式:
在这里插入图片描述

实现:

N: 种群的个数; dim: 维度; logistic: 混沌系数.

logistic=2.3;
Logistic=rand(N,dim);
for i=1:N
    for j=2:dim
       Logistic(i,j)=logistic.* Logistic(i,j-1).*(1-Logistic(i,j-1));
    end
end

6 Cubic 映射

公式:
在这里插入图片描述

实现:

N: 种群的个数; dim: 维度; cubic: 混沌系数.

cubic=2.3;
Cubic=rand(N,dim);
for i=1:N
    for j=2:dim
       Cubic(i,j)=cubic.*Cubic(i,j-1).*(1-Cubic(i,j-1).^2);
    end
end

7 Chebyshev 映射

公式:
在这里插入图片描述
实现:

N: 种群的个数; dim: 维度; chebyshev: 混沌系数.

chebyshev=4;
Chebyshev=rand(N,dim);
for i=1:N
    for j=2:dim
       Chebyshev(i,j)=cos(chebyshev.*acos(Chebyshev(i,j-1)));
    end
end

猜你喜欢

转载自blog.csdn.net/Onion_521257/article/details/130419073