1963年,气象学家Lorenz发现了第一个混沌吸引子。混沌现象广泛存在于各种非线性系统中,对初始条件具有极端的敏感性,是非线性系统普遍存在的现象。混沌系统在保密通信和信息加密等众多领域具有潜在的应用价值,因此混沌理论和电路实现一直是混沌研究的热点[1]。
Python语言是一种跨平台的解释型、面向对象、动态的高级程序设计语言,具有语法简洁、编程高效和应用领域广泛等优点,并具有大量的第三方开源库可供调用[2]。Python语言已经成为最受欢迎的程序设计语言之一,很多科研机构和大学都将Python作为首门程序设计课程的教学语言[3]。Python语言简单易学,广泛用于模式识别和物理实验系统中[4-5]。相比于一些核心代码不开源、授权费用昂贵的软件,Python编程语言还具有开源和免费的优点[6]。
本文以双涡卷Jerk混沌系统为研究对象,采用Python语言进行仿真实验。在仿真实验中,采用两种方法进行仿真,并采用matplotlib库进行数据的可视化。matplotlib是Python语言的绘图库,类似于MatLab软件中绘图函数的功能,只需要几行代码就可以生成绘图,非常简单和方便。根据双涡卷Jerk混沌系统的状态方程,分别采用欧拉方法和odeint函数方法进行系统的仿真。欧拉方法是最简单的方法,以固定步长计算微分方程的近似解。odeint是SciPy库中求解常微分方程的函数。该仿真实验系统能够进行混沌系统的仿真,非常形象和直观,可以显示状态变量的三维相图、二维相图和状态变量的响应曲线。该仿真实验系统具有较强的通用性,而且具有良好的可控性、重复性和经济性等优点,能够激发学生的学习兴趣,提高学生的动手能力和科研能力。
1 双涡卷Jerk混沌系统
2 欧拉方法
3 odeint函数方法
4 结语
Python语言不仅简洁,而且高效,同样功能的计算任务,需要的代码行非常少。Python语言采用开源设计,具有大量的第三方库,几乎覆盖了所有的领域,因此具有非常高的编程效率。本文采用Python语言进行双涡卷Jerk混沌系统的仿真,采用2种方法进行仿真,并采用matplotlib绘制三维相图、二维相图和状态变量的响应曲线。该仿真实验系统能够进行混沌系统的仿真,非常形象和直观,学生可以修改系统参数,然后进行仿真实验,观察仿真结果。该仿真实验系统具有较强的通用性,能够激发学生的学习兴趣,提高学生的动手能力和科研能力[10]。
参考文献
[1] 孙克辉.混沌保密通信原理与技术[M].北京:清华大学出版社,2015.
[2] 张健,张良均.Python编程基础[M].北京:人民邮电出版社,2018.
[3] 嵩天,黄天羽.Python语言程序设计教学案例新思维[J].计算机教育,2017(12):11-14.
[4] 郭海,赵晶莹,刘向东,等.基于Python的模式识别综合设计性实验[J].实验技术与管理,2019,36(8):178-181.
[5] 马天成,李全彬.基于Python的牛顿环实验数据拟合及分析方法[J].大学物理实验,2019,32(3):112-115.
[6] 张俊生,郭彩萍,楼国红,等.Python在数字信号处理中的应用[J].电气电子教学学报,2015,37(4):115-117.
[7] 陈娇英,彭宇宁,唐英姿.双涡卷Jerk非线性系统混沌电路设计[J].桂林理工大学学报,2015,35(1):213-216.
[8] 王心华,江浩雨,冯娟娟,等.一类jerk混沌电路的仿真与设计[J].物理实验,2017,37(6):1-5.
[9] 张若愚. Python科学计算[M].北京:清华大学出版社,2012.
[10] 于清文,赵海滨,颜世玉.Python语言在Liu混沌系统仿真实验中的应用[J].科技创新导报,2020,17(12):139-140.
赵海滨 于清文 东北大学机械工程与自动化学院 |