Matlab代码绘制见的混沌序列及其散点图、直方图,直接运行即可画出!!!
function Chaotic_Mapping
%% PWLCM Chaotic Mapping
x(1)=rand;
A=x(1);
P=0.4;
for i=1:4999
if x(i)>=0 && x(i)<P
x(i+1)=x(i)/P;
end
if x(i)>=P && x(i)<0.5
x(i+1)=(x(i)-P)/(0.5-P);
end
if x(i)>=0.5 && x(i)<1-P
x(i+1)=(1-P-x(i))/(0.5-P);
end
if x(i)>=1-P && x(i)<1
x(i+1)=(1-x(i))/P;
end
end
figure
plot(x,'.')
xlabel('dim')
ylabel('chaos value')
title('PWLCM Chaotic Mapping')
figure
hist(x)
xlabel('chaos value')
ylabel('frequency')
title('PWLCM Chaotic Mapping')
%% Logistic Chaotic Mapping
clearvars -except A
x0 = A;
len = 5000;
squence = zeros(1,len);
xn = x0;
for i=1:len
xn = 4*xn*(1-xn);
squence(i) = xn;
end
figure
plot(squence,'.')
xlabel('dim')
ylabel('chaos value')
title('Logistic Chaotic Mapping')
figure
hist(squence)
xlabel('chaos value')
ylabel('frequency')
title('Logistic Chaotic Mapping')
%% Circle Chaotic Mapping
clearvars -except A
z0=A;
len=5000;
a=0.5;
b=2.2;
zn=z0;
squence = zeros(1,len);
for i=1:len
zn=zn+a-mod((b/(2*pi))*sin(2*pi*zn),1);
squence(i)=zn;
end
figure
plot(squence,'.')
xlabel('dim')
ylabel('chaos value')
title('Circle Chaotic Mapping')
figure
hist(squence)
xlabel('chaos value')
ylabel('frequency')
title('Circle Chaotic Mapping')
%% Singer Chaotic Mapping
clearvars -except A
z0=A;
len = 5000;
squence = zeros(1,len);
zn = z0;
u=1.07;
for i=1:len
zn=u*(7.86*zn-23.31*zn^2+28.75*zn^3-13.302875*zn^4);
squence(i)=zn;
end
figure
plot(squence,'.')
xlabel('dim')
ylabel('chaos value')
title('Singer Chaotic Mapping')
figure
hist(squence)
xlabel('chaos value')
ylabel('frequency')
title('Singer Chaotic Mapping')
%% Sine Chaotic Mapping
clearvars -except A
x0=A;
len = 5000;
xn=x0;
squence = zeros(1,len);
u=3.999;
for i=1:len
xn=(u/4)*sin(pi*xn);
squence(i)=xn;
end
figure
plot(squence,'.')
xlabel('dim')
ylabel('chaos value')
title('Sine Chaotic Mapping')
figure
hist(squence)
xlabel('chaos value')
ylabel('frequency')
title('Sine Chaotic Mapping')
%% Tent Chaotic Mapping
clearvars -except A
z0=A;
len = 5000;
zn=z0;
p=0.499;
squence = zeros(1,len);
for i=1:len
if zn<p
zn=zn/p;
else
zn=(1-zn)/(1-p);
end
squence(i)=zn;
end
figure
plot(squence,'.')
xlabel('dim')
ylabel('chaos value')
title('Tent Chaotic Mapping')
figure
hist(squence)
xlabel('chaos value')
ylabel('frequency')
title('Tent Chaotic Mapping')
%% Bernoulli Chaotic Mapping
clearvars -except A
z0=A;
len = 5000;
p=0.479;
zn=z0;
squence = zeros(1,len);
for i=1:len
if(zn>0&&zn<=1-p)
zn=zn/(1-p);
else
zn=(zn-1+p)/p;
end
squence(i)=zn;
end
figure
plot(squence,'.')
xlabel('dim')
ylabel('chaos value')
title('Bernoulli Chaotic Mapping')
figure
hist(squence)
xlabel('chaos value')
ylabel('frequency')
title('Bernoulli Chaotic Mapping')
%% Cubic Chaotic Mapping
clearvars -except A
x0=A;
len=5000;
p=2.595;
xn=x0;
squence = zeros(1,len);
for i=1:len
xn=p*xn*(1-xn^2);
squence(i)=xn;
end
figure
plot(squence,'.')
xlabel('dim')
ylabel('chaos value')
title('Cubic Chaotic Mapping')
figure
hist(squence)
xlabel('chaos value')
ylabel('frequency')
title('Cubic Chaotic Mapping')
%% SPM Chaotic Mapping
clearvars -except A
x(1)=A;
eta=0.4;
u=0.3;
for i=1:4999
if x(i)>=0 && x(i)<eta
x(i+1)=mod(x(i)/eta+u*sin(pi*x(i))+rand,1);
end
if x(i)>=eta && x(i)<0.5
x(i+1)=mod((x(i)/eta)/(0.5-eta)+u*sin(pi*x(i))+rand,1);
end
if x(i)>=0.5 && x(i)<1-eta
x(i+1)=mod(((1-x(i))/eta)/(0.5-eta)+u*sin(pi*(1-x(i)))+rand,1);
end
if x(i)>=1-eta && x(i)<1
x(i+1)=mod((1-x(i))/eta+u*sin(pi*(1-x(i)))+rand,1);
end
end
figure
plot(x,'.')
xlabel('dim')
ylabel('chaos value')
title('SPM Chaotic Mapping')
figure
hist(x)
xlabel('chaos value')
ylabel('frequency')
title('SPM Chaotic Mapping')
end