我是靠谱客的博主 幸福白猫,最近开发中收集的这篇文章主要介绍Matlab histogram 画出十二种常见的混沌映射,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

   在群体智能优化算法中,需要随机产生数组,然而往往效果并不好。
   由于混沌序列具有非线性、遍历性和不可预测性等特点,因此随机数组可用混沌映射来替代。
   参考 Yu Y ,  Gao S ,  Cheng S , et al. CBSO: a memetic brain storm optimization with chaotic local search[J]. Memetic Computing, 2017.
   相关参数设置可见其论文,不在此赘述。

注:和论文的顺序不一样。
**Histogram distribuyion graph of 12 chaotic maps with 10^5 iterations**

Matlab代码如下

clear;
clc;
%% Logistic
y_1=zeros(1,10^5);
y_1(1)=0.152;   
mu=4;
for i = 1 : 10^5-1
    y_1(i+1)=mu*y_1(i)*(1-y_1(i));
end
%% Tent
y_2=zeros(1,10^5);
y_2(1)= 0.152;   
Beta = 0.4;
for i = 1 : 10^5-1   
       if (y_2(i)<=Beta && y_2(i)>0)
          y_2(i+1) = y_2(i)/Beta;
       else 
          y_2(i+1)=(1-y_2(i))/(1-Beta);
       end    
end
%% Cubic
y_3=zeros(1,10^5);
y_3(1)= 0.242;   
rho = 2.59;
for i = 1 : 10^5-1   
    y_3(i+1) = rho*y_3(i)*(1-y_3(i)^2);
end
%% Bernoulli
y_4=zeros(1,10^5);
y_4(1)= 0.152;   
lambda = 0.4;
for i = 1 : 10^5-1   
       if (y_4(i)<=(1-lambda)) && ((y_4(i)>0))
          y_4(i+1) = y_4(i)/(1-lambda);
       else 
          y_4(i+1)=(y_4(i)-1+lambda)/lambda;
       end    
end
%% PWLCM
y_5=zeros(1,10^5);
y_5(1)= 0.002;   
P = 0.7;
for i = 1 : 10^5-1   
       if (y_5(i)<P && y_5(i)>0)
          y_5(i+1) = y_5(i)/P;
       else 
          y_5(i+1)=(1-y_5(i))/(1-P);
       end    
end
%% Singer
y_6=zeros(1,10^5);
y_6(1)= 0.152;   
mu_1 = 1.073;
for i = 1 : 10^5-1   
          y_6(i+1) = mu_1*(7.86*y_6(i)-23.31*y_6(i)^2+28.75*y_6(i)^3-13.302875*y_6(i)^4);
end
%% Sine
y_7=zeros(1,10^5);
y_7(1)= 0.152;   
a = 4;
for i = 1 : 10^5-1   
          y_7(i+1) = a/4*sin(pi*y_7(i));
end
%% Gaussian
y_8=zeros(1,10^5);
y_8(1)= 0.152;   
mu_2 = 1;
for i = 1 : 10^5-1
    if (y_8(i)==0)
        y_8(i+1) =0 ;
    else
        y_8(i+1) =(rem(mu_2/y_8(i),1)) ;
    end
end
%% Chebyshew
y_9=zeros(1,10^5);
y_9(1)= 0.152;   
phi = 5;
for i = 1 : 10^5-1
    y_9(i+1) =cos(phi*acos(y_9(i))) ;
end
%% Circle
y_10=zeros(1,10^5);
y_10(1)= 0.152;   
a_1 = 0.5;
b_1 = 2.2;
for i = 1 : 10^5-1
    y_10(i+1) = y_10(i)+a_1-mod(b_1/(2*pi)*(sin(2*pi*y_10(i))),1);
end
%% Sinusoidal
y_11=zeros(1,10^5);
y_11(1)= 0.74;   
a_2 = 2.3;
for i = 1 : 10^5-1
    y_11(i+1) = a_2*y_11(i)^2*sin(pi*y_11(i));
end
%% ICMIC
y_12=zeros(1,10^5);
y_12(1)= 0.152;   
a_3 = 70;
for i = 1 : 10^5-1
    y_12(i+1) = sin(a_3/y_12(i));
end
%% 画图
subplot(3,4,1)
h1=histogram(y_1,200);
h1.FaceColor=[0 0 1];
xlim([0,1])%设置x轴范围
xlabel('Logistic map')

subplot(3,4,2)
h2=histogram(y_2,200);
h2.FaceColor=[0 0 1];
xlim([0,1])%设置x轴范围
xlabel('Tent map')

subplot(3,4,3)
h3=histogram(y_3,200);
h3.FaceColor=[0 0 1];
xlim([0,1])%设置x轴范围
xlabel('Cubic map')

subplot(3,4,4)
h4=histogram(y_4,200);
h4.FaceColor=[0 0 1];
xlim([0,1])%设置x轴范围
xlabel('Bernoulli map')

subplot(3,4,5)
h5=histogram(y_5,200);
h5.FaceColor=[0 0 1];
xlim([0,1])%设置x轴范围
xlabel('PWLCM map')
subplot(3,4,5)
h5=histogram(y_5,200);
h5.FaceColor=[0 0 1];
xlim([0,1])%设置x轴范围
xlabel('PWLCM map')

subplot(3,4,6)
h6=histogram(y_6,200);
h6.FaceColor=[0 0 1];
xlim([0,1])%设置x轴范围
xlabel('Singer map')

subplot(3,4,7)
h7=histogram(y_7,200);
h7.FaceColor=[0 0 1];
xlim([0,1])%设置x轴范围
xlabel('Sine map')

subplot(3,4,8)
h8=histogram(y_8,200);
h8.FaceColor=[0 0 1];
xlim([0,1])%设置x轴范围
xlabel('Gaussian map')

subplot(3,4,9)
h9=histogram(y_9,200);
h9.FaceColor=[0 0 1];
xlim([0,1])%设置x轴范围
xlabel('Chebyshew map')

subplot(3,4,10)
h10=histogram(y_10,200);
h10.FaceColor=[0 0 1];
xlim([0,1])%设置x轴范围
xlabel('Circle map')

subplot(3,4,11)
h11=histogram(y_11,200);
h11.FaceColor=[0 0 1];
xlim([0,1])%设置x轴范围
xlabel('Sinusoidal map')

subplot(3,4,12)
h12=histogram(y_12,200);
h12.FaceColor=[0 0 1];
xlim([0,1])%设置x轴范围
xlabel('ICMIC map')

最后

以上就是幸福白猫为你收集整理的Matlab histogram 画出十二种常见的混沌映射的全部内容,希望文章能够帮你解决Matlab histogram 画出十二种常见的混沌映射所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(32)

评论列表共有 0 条评论

立即
投稿
返回
顶部