Python语言在Liu混沌系统仿真实验中的应用
2020-07-01于清文赵海滨颜世玉
于清文 赵海滨 颜世玉
摘 要:以Liu混沌系统为例,采用Python语言进行建模和仿真,并利用matplotlib绘制状态变量的响应曲线、二维相图和三维相图。采用Python语言进行混沌系统的仿真,非常方便和直观,能够加深学生对理论知识的理解和掌握。
关键词:混沌系统 仿真教学 Python语言
中图分类号:G642.1 文献标识码:A 文章编号:1674-098X(2020)04(c)-0139-02
Abstract:Taking Liu chaotic system as an example, we use Python language to model and simulation, and use matplotlib to draw the response curve, two-dimensional and three-dimensional phase diagram of state variables. It is very convenient and intuitive to use Python language to stimulate chaotic system, which can deepen students understanding and mastery of theoretical knowledge.
Key Words:Chaotic system; Simulation training; Python language
混沌及其应用技术是近年来非线性科学领域的热点问题[1]。混沌系统对初始条件非常敏感,广泛存在于各种非线性系统中。1963年气象学家Lorenz在三维自治系统中发现了第一个混沌吸引子。刘崇新等提出了Liu混沌系统,能够用硬件电路实现,具有非常丰富的动力学特性和广泛的应用[2]。
本文以Liu混沌系统为研究对象,采用Python语言进行建模和仿真。在仿真实验中,根据Liu混沌系统的状态方程,采用欧拉方法进行仿真,并通过matplotlib库进行数据的可视化。该仿真实验非常的方便和直观,能够激发学生的学习兴趣,加深学生对理论知识的理解和掌握。
1 Python语言
Python语言简单易学,而且具有开源和免费的优点,是目前最受欢迎的程序设计语言之一。越来越多的大学和科研机构将Python作为首门程序设计课程的教学语言[3-4]。Python是一种跨平台的解释型、面向对象、动态的高级程序設计语言,有大量的开源库可供调用[5]。matplotlib是Python经典的二维绘图库,可以很容易的绘制折线图、柱状图和散点图等二维图像,非常方便的进行数据可视化[6]。在matplotlib库中,通过函数Axes3D绘制数据的三维图形。
2 Liu混沌系统
Liu混沌系统的结构简单,能够用硬件电路实现[7]。Liu混沌系统的状态方程表示为
(1)
其中,x,y和z为Liu混沌系统状态变量,a,b,c和d为常数。当a=10.0,b=40.0,c=2.5和d=4.0时,Liu混沌系统为混沌状态。Liu混沌系统具有三个不稳定的平衡点,分别为,和。
3 Liu混沌系统的仿真
欧拉方法是一种简单的数值积分方法,数值收敛性好。在欧拉方法中,将时间区间[0,T]做N等分,小区间的长度h=T/N称为步长。采用欧拉法进行Liu混沌系统仿真,Python语言脚本程序如下
在脚本程序中,对Liu混沌系统的参数和初始状态进行设置。Liu混沌系统的初始状态设定为。采用欧拉方法进行仿真时,步长设定为h=0.001,仿真时间设定为50s。在matplotlib库中通过函数Axes3D绘制三维图形。
该脚本程序运行后,可以得到Liu混沌系统的三维相图,如图1所示。Liu混沌系统状态变量x和y的二维相图,如图2所示,状态变量y和z的二维相图,如图3所示,状态变量的响应曲线,如图4所示。Liu混沌系统处于混沌状态。
4 结语
Python语言具有非常高的编程效率,在机器学习、数据挖掘和模式识别等领域具有广泛的应用。根据Liu混沌系统的状态方程,本文采用Python语言进行Liu混沌系统的建模和仿真,采用matplotlib绘制三维相图、二维相图和状态变量的响应曲线。采用Python语言进行混沌系统的仿真,非常形象和直观。学生可以修改参数和脚本程序,然后进行仿真实验,观察仿真结果,能够加深学生对理论知识的理解和掌握。
参考文献
[1] 孙克辉. 混沌保密通信原理与技术[M]. 北京:清华大学出版社,2015.
[2] 高秉建. 基于Liu混沌系统生成的多翅膀蝴蝶吸引子[J]. 复杂系统与复杂性科学,2016,13(1):91-94.
[3] 嵩天,黄天羽. Python语言程序设计教学案例新思维[J].计算机教育,2017(12):11-14.
[4] 杨荣领.《Python语言程序设计基础》课程教学改革实践[J]. 高教学刊,2019(3):135-137.
[5] 张健,张良均. Python编程基础[M].北京:人民邮电出版社,2018.
[6] 张若愚. Python科学计算[M].北京:清华大学出版社,2012.
[7] 王发强,刘崇新. Liu混沌系统的混沌分析及电路实验的研究[J]. 物理学报,2006,55(10):5061-5069.