洛伦兹方程的求解洛伦兹吸引子是混沌理论重要的标志,而它是由洛伦兹方程求解得来的
洛伦兹方程是一组常微分方程,而Runge-Kutta方法是求解常微分方程的经典方法,Matlab提供了多个采用该方法的函数命令,比如ode23,ode45等等,采用ode45命令求解Lorenz在研究大气对流模型时得到的洛伦兹方程:dx/dt=A*(-x+y)dy/dt=B*x-y-x*zdz/dt=x*y-C*z经常引用的具体参数是A=10,B=28,C=8/3相空间维数为三
为了用matlab求解,将x,y,z,表示为y(1),y(2),y(3),即为列向量中的三个分量
建立自定义函数,在edit中建立“Lorenz
m”的M文件
程序如下:functiondy=Lorenz(~,y)dy=zeros(3,1);dy(1)=10*(-y(1)+y(2));dy(2)=28*y(1)-y(2)-y(1)*y(3);dy(3)=y(1)*y(2)-8*y(3)/3;end2
在edit中建立“Lzdis
m”的M文件,用来求解和绘图
程序如下:[t,y]=ode45('Lorenz',[0,30],[12,2,9]);figure(1)plot(t,y(:,1))figure(2)plot(t,y(:,2))figure(3)plot(t,y(:,3))figure(4)plot3(y(:,1),y(:,2),y(:,3))3
运行得到如下的结果:051015202530-20-15-10-505101520Figure(1)是y(1)即x关于t的变化关系图051015202530-25-20-15-10-50510152025Figure(2)是y(2)即y关于t的变化关系图05101520253051015202530354045Figure(3)是y(3)即z关于t的变化关系图-20-