Logistic系统被广泛应用在各个领域中,如生态学、物理学和社会科学等,也被用于密码学和数据加密中。在工业和商业中,混沌Logistic系统也被用于数据编码和保密通信。Logistic系统是一种非常简单的二次多项式形式的映射。
混沌Logistic系统指的是一类基于混沌现象的数学模型,它可以用来模拟和描述一些系统中出现的复杂动态行为,如自然界中的天气系统和生物体的生命活动等。在Logistic系统中,混沌模型通过迭代计算去逼近某个“平衡点”,这种平衡点也称为混沌吸引子。
混沌Logistic系统的基本方程式如下:
x n + 1 = r x n ( 1 − x n ) x_{n+1} = rx_n(1-x_n) xn+1=rxn(1−xn)
其中, x n x_n xn表示系统在第 n n n次迭代后达到的状态, r r r为混沌参数,可以通过改变 r r r的取值来产生不同的混沌行为。该方程式能够产生丰富的动态行为,如周期、混沌和吸引子等。
混沌Logistic系统被广泛应用在各个领域中,如生态学、物理学和社会科学等,也被用于密码学和数据加密中。在工业和商业中,混沌Logistic系统也被用于数据编码和保密通信。
clear
clc
close all
%分岔图
%离散系统
%% 1Logistic系统
%% 1.1Logistic系统 两个典型的a,进行迭代的效果
d=0.004;
x=d:d:1-d;
Nx=length(x);
BF=zeros(1,Nx);
a1=2.1;
a_k1=a1;%第一个a=2.1
a2=3.3;
a_k2=a2;%第二个a=3.3
x1=x;
x2=x;
%在系统中迭代50次
for m=1:50
%把结果绘图
f1=figure(1);
set(f1,'Color',[1,1,1])
clf
subplot(1,2,1)
plot(a1*ones(size(x1)),x1,'.')
ylim([0,1])
text(a1-0.8,0.5,['a1=',num2str(a1)])
text(a1-0.8,0.4,['迭代次数',num2str(m)])
subplot(1,2,2)
plot(a2*ones(size(x1)),x2,'.')
ylim([0,1])
text(a2-0.8,0.5,['a2=',num2str(a2)])
text(a2-0.8,0.4,['迭代次数',num2str(m)])
pause(0.1)
%更新下一次迭代
x1=Logistic(x1,a_k1);
x2=Logistic(x2,a_k2);
end
%% 1.2 不同a,绘制分岔图
%初始种群采用均匀分布
d=0.005;
x=d:d:1-d;
a=0:0.004:4;%把a采集的足够密,就可以绘制随参数a变化的分岔图
Nx=length(x);
Na=length(a);
BF=zeros(Na,Nx);%初始化最终储存的矩阵
for k=1:Na
a_k=a(k);
x1=x;
%在系统中迭代200次
for m=1:200
x1=Logistic(x1,a_k);
end
%把结果保存
BF(k,:)=x1;
end
%画图
figure()
hold on
for k=1:Na
a_k=a(k);
plot(a_k*ones(1,Nx),BF(k,:),...
'LineStyle','none','Marker','.','MarkerFaceColor','k','MarkerEdgeColor','k',...
'MarkerSize',1)
end
hold off
xlabel('a')
%% 1.3 不同a 动图,把上面那个分岔图的过程展示出来
d=0.005;
x=d:d:1-d;
a=0:0.004:4;
Nx=length(x);
Na=length(a);
BF=ones(Na,1)*x;
BFx=a'*ones(1,Nx);
%在系统中迭代100次
for m=1:90
%绘制图片
f3=figure(3);
clf
scatter(BFx(:),BF(:),0.5,'k','MarkerEdgeAlpha',0.5)
text(0.7,0.6,['迭代次数',num2str(m)])
xlabel('a')
ylabel('x')
set(f3,'Color',[1,1,1])
pause(0.1)
%迭代更新
for k=1:Na
a_k=a(k);
x1=BF(k,:);
x1=Logistic(x1,a_k);
%把结果保存
BF(k,:)=x1;
end
end
%% 1.4 不同a上颜色
d=0.002;
x=d:d:1-d;
a=0:0.002:4;
Nx=length(x);
Na=length(a);
BF=zeros(Na,Nx);
for k=1:Na
a_k=a(k);
x1=x;
%在系统中迭代250次
for m=1:250
x1=Logistic(x1,a_k);
end
%把结果保存
BF(k,:)=x1;
end
%上颜色
BF_C=zeros(size(BF));
for k=1:Na
BF_k=BF(k,:);
[N,~,bin] = histcounts(BF_k,[0:0.01:1]);%统计每个小区间,点的数量,作为颜色
BF_C(k,:)=N(bin);%记录各个点的颜色
end
BFy=BF;
BFx=a'*ones(1,Nx);
figure()
scatter(BFx(:),BFy(:),0.5,BF_C(:),'MarkerEdgeAlpha',0.5)
caxis([0,20])
colormap(jet)
ylim([0,1]);
xlim([2,4]);
xlabel('\lambda' )
ylabel('r')
% set(gca,'XLim',[-1 1]) % X轴显示范围
set(gca,'YTick',[0:0.2:1]) % 设置坐标刻度
set(gca,'XTick',[2:0.4:4]) % 设置坐标刻度
%% 后置函数
function x2=Logistic(x1,a)
%Logistic系统
%x(n+1)=a*(1-x(n))*x(n)
x2=a*(1-x1).*x1;
end