如何用matlab模拟混沌系统或者动力学系统

如何用matlab模拟混沌系统或者动力学系统,第1张

你找到某种混沌系统的表达式,作图就行了,比如经典的洛伦兹吸引子的程序如下:

% 第一个程序:lorenzfun.m

function dy=lorenzfun(t,y)

p=10

r=28

b=8/3

%p=16

%b=4.0

%r=45.92

dy=zeros(3,1)

dy(1,:)=p*(-y(1)+y(2))

dy(2,:)=r*y(1)-y(2)-y(1)*y(3)

dy(3,:)=y(1)*y(2)-b*y(3)

% 第一个程序:lorenztest.m

[t,yy]=ode45('lorenzfun',[0:0.01:100],[-1

0 1]) %模拟t=0~100步长0.01的10001个点,初值[-1

01]

x=yy(:,1)

y=yy(:,2)

z=yy(:,3)

figure(1)

plot3(x,y,z)

xlabel('x(t)'),ylabel('y(t)'),zlabel('z(t)')

title('Lorenz吸引子图')

x=x(1001:end)%抛弃前面的一些点

你在matlab下运行lorenztest看看能不能找到点感觉

只有 用matlab写的两次同步的误差系统的模拟图像。

function y=wuchaxitong(t,x)

a=35b=4c=25d=5e=35f=100

k1=1277k2=1388k3=55k4=1

y=zeros(8,1)

y(1)=a*((x(2)-x(6))-(x(1)-x(5)))+e*(x(2)-x(6))*(x(3)-x(7))+(x(3)-x(7))+e*(x(2)-x(6))*x(7)+e*x(6)*(x(3)-x(7))-k1*(x(1)-x(5))

y(2)=c*(x(1)-x(5))-d*(x(1)-x(5))*(x(3)-x(7))-d*x(5)*(x(3)-x(7))-d*x(7)*(x(1)-x(5))-(x(2)-x(6))+(x(4)-x(8))-k2*(x(2)-x(6))

y(3)=(x(1)-x(5))*(x(2)-x(6))+(x(1)-x(5))*x(6)+x(5)*(x(2)-x(6))-b*(x(3)-x(7))-k3*(x(3)-x(7))

y(4)=-f*(x(2)-x(6))-(k4+1)*(x(4)-x(8))

tspan=[0:0.001:4]%求解时间为2秒也可以 tspan=[0 2]表示自动时间步长

x0=[-130210-340.26]%初值

[T,Y]=ode45('wuchaxitong',tspan,x0)%用龙格库塔法求解

subplot(4,1,1),plot(T,Y(:,1)),xlabel('t/s'),ylabel('e1')

subplot(4,1,2),plot(T,Y(:,2)),xlabel('t/s'),ylabel('e2')

subplot(4,1,3),plot(T,Y(:,3)),xlabel('t/s'),ylabel('e3')

subplot(4,1,4),plot(T,Y(:,4)),xlabel('t/s'),ylabel('e4')

上面的是误差系统,下面的是画的误差系统的图像,不知道是不是你需要的,我做的是四维的系统

matlab命令如下:

global x

global y

global k

y=1

x=1

p=plot(x,y,'.','EraseMode','none','MarkerSize',3)

axis([0 2 -2 2])

hold on

for x=1:200

for k=1:500

y=1-x*y*y/100set(p,'Xdata',x/100,'Ydata',y)

drawnow

set(p,'Xdata',x/100,'Ydata',y)

drawnow

end

end


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7805581.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-10
下一篇 2023-04-10

发表评论

登录后才能评论

评论列表(0条)

保存