讨论一维Logistic映射之一维抛物线映射$$x_{i+1}=ux_{i}(1-x_{i})$$
的轨道特性。
python 3代码
# -*- coding: utf-8 -*- import numpy import matplotlib.pyplot as plt def f(x, r): return r*x*(1-x) ys = [] rs = numpy.linspace(2.5, 4, 9000) for r in rs: x = 0.5 for i in range(500): x = f(x, r) for i in range(50): x = f(x, r) ys.append([r, x]) ys = numpy.array(ys) plt.plot(ys[:,0], ys[:,1], ',') plt.show()
以迭代次数i为横轴,x_{i}为纵轴,
初始值x_{0}=0.54
python 3代码
# -*- coding: utf-8 -*- """ Created on Sat Oct 29 20:29:39 2016 @author: dakaijun """ import matplotlib.pyplot as plt u=2 x=0.54 for i in range(0,100):#迭代100次 y=x x=u*x*(1-x) plt.scatter(i,x,s=10,c="r",linewidths=0) plt.xlabel('i') # 给 x 轴添加标签 plt.ylabel('x') ''' cm = plt.cm.get_cmap('coolwarm') sc=plt.scatter(y,x,c=i,vmin=1,vmax=i,linewidths=0.5,cmap=cm) plt.xlabel('x(i)') plt.ylabel('x(i+1)') plt.colorbar(sc) #这一段被注释了的内容是以xi为横轴,xi+1为纵轴作的图 ''' plt.text(i/2, x/2, 'u=2')#支持LaTex语法 plt.show()
当0<u<1时,x=0是吸引子:
当1<u<3时,吸引子变为1-1/u:
当3<u<1+sqrt(6)时,1-1/u变为排斥子;出现周期为2的吸引子:
当1+sqrt(6)<u<3.544…时,原先周期为2的吸引子变为排斥子,出现周期为4的吸引子:
再增加u的值(3.544…<u<3.569945…),吸引子周期成倍增加。周期为8的吸引子:
Feigenbaum发现相邻两个临界参数u之间的距离成比例缩小;周期轨道的分布也存在自相似结构
当u>3.569945…,映射或迭代结果大部分完全不收敛到任何有限个点的周期轨道,出现混沌轨道。
henon map:
# -*- coding: utf-8 -*- import matplotlib.pyplot as plt a=1.4 b=0.3 x=0.5 y=0.5 for i in range(1000): x1=x x=1-a*x*x+y y=b*x1 plt.scatter(x,y,s=5,c="r",linewidths=0) plt.xlabel('x(n)') plt.ylabel('y(n)')
参考资料:黄永念. 非线性动力学引论[M]. 北京大学出版社, 2010.
Smilie Vote is loading.
“Logistic map and henon map”下有一个评论: