混沌迭代现象的观察
2021/4/19 10:56:29
本文主要是介绍混沌迭代现象的观察,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
混沌系统源于迭代,某些迭代函数会导致混沌现象的产生,迭代是一个确定的系统,但是也会产生仿佛随机系统一样的现象。例如人口模型常用的Logistic方程。
$$x_{t+1} = \alpha \times x_t (1-x_t) $$
$$在迭代参数 \alpha 取不同值的时候会产生不同得迭代结果,可能收敛于确定值,也可能产生混沌线性。$$
以Python程序来进行测试
$$其中 alpha \in (0, 4) , x \in (0, 1)$$
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 getSeries(x0, sigma, length): res = np.zeros(length) res[0] = x0 for i in range(1, len(res)): res[i] = logistic_function(res[i-1], sigma) return res def showPlot(): length = 20 # fig = plt.figure(figsize=(9, 9)) # # 布局, 间隔 # fig.subplots_adjust(left=0, right=1, bottom=0, top=1, hspace=0.02, wspace=0.02) for i in range(25): # ax = fig.add_subplot(5, 5, i + 1, xticks=[], yticks=[]) # ax.scatter(range(length), getSeries(0.1 + 0.2*int(i/5), 0.3+0.5*int(i % 5), length), color="blue") # ax.text(2, 2, "x0=%.2f, sigma=%.2f" % (0.1+0.2*int(i/5), 0.3+0.5*int(i % 5))) plt.scatter(range(length), getSeries(0.1+0.2*int(i/5), 0.3+0.5*int(i % 5), length), color="blue") plt.title("x0=%.2f, sigma=%.2f" % (0.1+0.2*int(i/5), 0.3+0.5*int(i % 5))) plt.savefig("chaosImgs2/x0=%.2f, sigma=%.2f.png" % (0.1+0.2*int(i/5), 0.3+0.5*int(i % 5)), dpi=300, format='png') # plt.show() if __name__ == '__main__': showPlot()
程序画出不同迭代参数和不同初始值的25张图,并保存本地,结果如下(注释部分是画5行5列的图)
$$结果可见, \sigma 越大越趋于混沌 $$
这篇关于混沌迭代现象的观察的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-25Java创意资料:新手入门的创意学习指南
- 2024-11-25JAVA对接阿里云智能语音服务资料详解:新手入门指南
- 2024-11-25Java对接阿里云智能语音服务资料详解
- 2024-11-25Java对接阿里云智能语音服务资料详解
- 2024-11-25JAVA副业资料:新手入门及初级提升指南
- 2024-11-25Java副业资料:入门到实践的全面指南
- 2024-11-25Springboot应用的多环境打包项目实战
- 2024-11-25SpringBoot应用的生产发布项目实战入门教程
- 2024-11-25Viite多环境配置项目实战:新手入门教程
- 2024-11-25Vite多环境配置项目实战入门教程