最近看完了梅拉妮·米歇尔写的《复杂》。这本书简单地介绍了复杂性科学的方方面面。其中提到logistic map是研究混沌的模式方程。
如果我们使a=2,X的初始值为0.2,那么Xn会渐渐收敛于一个定值。
import matplotlib.pyplot as plt
n = 1
x = 0.2
num = []
logistic_num = []
while n < 1000:
x = 2*x*(1.0-x)
num.append(n)
logistic_num.append(x)
n = n + 1
plt.scatter(num, logistic_num, s=5)
plt.show()
Xn的值迅速收敛至0.5
如果X1很大,比如0.99
最终结果还是一样,不过过程要稍微长一点。
而如果让a=2.5
Xn会收敛至0.6
我们再增大a值,如果a=3.1
最终Xn的值会在两个值之间震荡。任何初始位置都会被“吸引”到这两个值上。
不管x1取什么值,X你最终都会在4个值之间周期震荡。
当a介于3.564和3.565之间时,周期上升至16。
当a大于3.569946时,Xn的值不再进入震荡,而是变成混沌。Xn的值将对初始值X1极其敏感。
由逻辑斯蒂映射得到的混沌数值看上去非常随机,是计算机中生成伪随机数的方法之一。表面上的随机可以来自非常简单的确定性系统。