【python】绘制Logistic映射的分叉图
本文,用python来绘制Logistic映射的分叉图。约定:计算精度为15。
工具/原料
电脑
python3.6(Anaconda)
初始值为0.123569
1、现在,固定初始值为0.123569,系数介于2到2.999之间:import numpy as npimport matplotlib.pyplot as pltif __nam髫潋啜缅e__ == '__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的分叉图: