逻辑斯蒂方程 是数学生物学家 P. Verhulst 提出的著名的人口增长模型.从其问世以来,它的应用从人口增长模型拓展到很多领域.
而逻辑斯蒂映射正是逻辑斯蒂方程的离散形式。
给定一个初始值 ,不断利用上式进行迭代,我们会得到一系列 .
例如
又例如 得到
对应代码如下:
clear allclcmu=3.2;x0=0.4;n=100;data=x0;for i = 1:n x1=mu*x0*(1-x0); x0=x1; data=[data x0 ];endsubplot(121)plot(data,'k-o')axis([0 n 0. 1])axis squaretext(0.1,0.1,'\mu=3.52,x_0=0.4')subplot(122)for i = 1:1:n-1 line([data(i) data(i+1)],[data(i) data(i)]) hold on line([data(i+1) data(i+1)],[data(i) data(i+1)]) hold onendaxis([0 1 0 1])axis squareh=line([0 1 ],[0 1]);set(h,'color','r')x=0:0.01:1;y=mu*x.*(1-x);plot(x,y,'r--')
对于不同的参数值,我们会得到截然不同的结果,例如
clear allclcmu=3.52;x0=0.4;n=100;data=x0;for i = 1:n x1=mu*x0*(1-x0); x0=x1; data=[data x0 ];endsubplot(121)plot(data,'k-o')axis([0 n 0. 1])axis squaretext(0.1,0.1,'\mu=3.52,x_0=0.4')subplot(122)for i = 1:1:n-1 line([data(i) data(i+1)],[data(i) data(i)]) hold on line([data(i+1) data(i+1)],[data(i) data(i+1)]) hold onendaxis([0 1 0 1])axis squareh=line([0 1 ],[0 1]);set(h,'color','r')x=0:0.01:1;y=mu*x.*(1-x);plot(x,y,'r--')
当 的时候
clear allclcmu=3.56;x0=0.4;n=100;data=x0;for i = 1:n x1=mu*x0*(1-x0); x0=x1; data=[data x0 ];endsubplot(121)plot(data,'k-o')axis([0 n 0. 1])axis squaretext(0.1,0.1,'\mu=3.52,x_0=0.4')subplot(122)for i = 1:1:n-1 line([data(i) data(i+1)],[data(i) data(i)]) hold on line([data(i+1) data(i+1)],[data(i) data(i+1)]) hold onendaxis([0 1 0 1])axis squareh=line([0 1 ],[0 1]);set(h,'color','r')x=0:0.01:1;y=mu*x.*(1-x);plot(x,y,'r--')
分岔图
我们发现不同的参数下,图像可以有一个周期到两个周期,四个周期,八个周期等等。
clear allclcx0=0.4;n=200;for mu = 2.8:0.005:4 mu data=x0; for i = 1:n x1=mu*x0*(1-x0); x0=x1; data=[data x0 ]; end plot(mu,data(end-50:end),'.','color',rand(1,3)) hold onendxlabel('\mu')ylabel('x')set(gca,'fontsize',15)xlim([2.8 4])