混沌系统源于迭代,某些迭代函数会导致混沌现象的产生,迭代是一个确定的系统,但是也会产生仿佛随机系统一样的现象。例如人口模型常用的Logistic方程。
$$x_{t+1} = alpha imes x_t (1-x_t) $$
$$在迭代参数 alpha 取不同值的时候会产生不同得迭代结果,可能收敛于确定值,也可能产生混沌线性。$$
以Python程序来进行测试
$$其中 alpha in (0, 4) , x in (0, 1)$$
# -*- coding: utf-8 -*- # @Author : ZhaoKe # @Time : 2021-04-19 9:37 import numpy as np import matplotlib.pyplot as plt # sigma in (0, 4) # x0 in (0, 1) 无影响 def logistic_function(x, sigma): return sigma * x * (1 - x) def getChaosSeries(v0, sigma, lb, ub, length): res = np.zeros(length) res[0] = (v0 - lb) / (ub - lb) for i in range(1, length): res[i] = logistic_function(res[i - 1], sigma) res = lb + (ub - lb) * res return res def showPlot(): length = 100 for i in range(0, 100): x0 = 0.1+0.2*(i // 20) sigma = 0.1+0.2*i while sigma > 4: sigma -= 4 print("------------iter-%d:x0=%.2f--sigma=%.2f" % (i, x0, sigma)) lb = 0 ub = 1 res = getChaosSeries(x0, sigma, lb, ub, length) plt.figure(i) plt.plot(range(length), res, color="blue") plt.scatter(range(length), res, color="red") print("chaosImgs2/x0=%.2f--sigma=%.2f.png" % (x0, sigma)) plt.savefig("chaosImgs2/x0=%.2f--sigma=%.2f.png" % (x0, sigma), dpi=300, format='png') plt.close(i) if __name__ == '__main__': showPlot()
程序画出不同迭代参数和不同初始值的25张图,并保存本地,结果如下(注释部分是画5行5列的
$$结果可见, sigma 越大越趋于混沌 $$
而x0即迭代的初始值,对于迭代过程影响不大,或者说没什么影响,