【python】绘制Logistic映射的分叉图
1、现在,固定初始值为0.123569,系数介于2到2.999之间:
import numpy as np
import matplotlib.pyplot as plt
if __name__ == '__main__':
pts=[]
n=15
x=0.123569
a=np.linspace(2.1,2.999,100)
2、每一个系数对应一组Logistic映射,我们要搜索映射迭代的稳定数值:
for i in a:
nn,A=xunhuanjie(i,x,n)
此时的稳定周期,基本上都是2。
3、把稳定数值与系数配对:
for aa in A:
pts.append(np.array([i,aa]))
#pass
p=np.array(pts)
这样得到的p,是一组点。
4、可视化这些点:
plt.scatter(p[:,0],p[:,1],c="b",s=.5,marker=".")
plt.show()
看起来,稳定状态的两个数值差异很小,看不出分叉。
5、系数介于3.1到3.567之间:
a=np.linspace(3.1,3.567,100)
此时的分叉图:
6、系数介于2到3.567,但不包括3:
a0=np.linspace(2,2.999,100)
a1=np.linspace(3.001,3.567,100)
a=np.array([a0,a1]).flatten()
这样得到的分叉图:
7、导出图片:
plt.savefig(
"C:/Users/Administrator/Pictures/0.png",
dpi=200)
1、初始值为0.3的分叉图:
2、初始值为0.56的分叉图:
3、初始值为0.999999的分叉图: