matlab中混沌状是什么意思,MATLAB关于混沌现象程序实现问题

本人学生,之前没有学过MATLAB 课题需要 模仿网上的程序写了以下程序,运行时一直处于busy状态 没有图像。望各位大神帮忙,卡了5,6天了 谢谢!

m函数没有问题,在计算其他参数是用过。理论上结果应该为混沌图像

function dy = Lorenz(t,y);

R0=10*10^(-6);

rou=990;

sigma=0.0725;

mu=0.001;

p0=1*10^5;

pv=2.33*10^3;

c=1500;

k1=4/3;

pi=3.1415926;

pA=290*10^3;

dy=zeros(4,1);

dy(2)=y(1);

dy(1)=(-(y(1))^2/2*(3-y(1)/c)+(1+(1-3*k1)*y(1)/c)...

*((p0-pv)/rou+2*sigma/rou/R0)*(R0/y(2))^(3*k1)...

-2*sigma/rou/y(2)-4*mu*y(1)/rou/y(2)-(1+y(1)/c)...

*((p0-pv+pA*sin(2*pi*y(3)))/rou)...

-y(2)*2*pi*y(4)*pA*cos(2*pi*y(3))/rou/c)...

*((1-y(1)/c)*y(1)+4*mu/rou/c)^(-1);

dy(3)=y(4);

dy(4)=0;

主程序:

Z=[];

for r=linspace(1*10^5,8*10^5,1000);

[T,Y]=ode45('Lorenz',[0,0001],[0;10*10^(-6);0;r]);

[T,Y]=ode45('Lorenz',[0,0005],Y(length(Y),:));

Y(:,1)=Y(:,2)-Y(:,1);

for k=2:length(Y)

f=k-1;

if Y(k,1)<0

if Y(f,1)>0

y=Y(k,2)-Y(k,1)*(Y(f,2)-Y(k,2))/(Y(f,1)-Y(k,1));

Z=[Z r+(abs(y)/10^(-5))*i];

end

else

if Y(f,1)<0

y=Y(k,2)-Y(k,1)*(Y(f,2)-Y(k,2))/(Y(f,1)-Y(k,1));

Z=[Z r+(abs(y)/10^(-5))*i];

end

end

end

drawnow

plot(Z,'.','markersize',1)

end

title('Lorenz映射分岔图')

xlabel('r'),ylabel('R0/R')

网上的程序:

function dy = Lorenz(t,y)

% Lorenz系统

% 系统微分方程:

%        dx/dt = -a(x-y)

%        dy/dt = x(r-z)-y

%        dz/dt = xy-bz

%    a=y(4)

%    r=y(5)

%    b=y(6)

dy=zeros(6,1);

dy(1)=-y(4)*(y(1)-y(2));

dy(2)=y(1)*(y(5)-y(3))-y(2);

dy(3)=y(1)*y(2)-y(6)*y(3);

dy(4)=0;

dy(5)=0;

dy(6)=0;

随r的分岔图求解程序:——按照x=y平面取截面

function Lorenz_bifur_r

Z=[];

for r=linspace(1,500,1000);

% 舍弃前面迭带的结果,用后面的结果画图

[T,Y]=ode45('Lorenz',[0,1],[1;1;1;16;r;4]);

[T,Y]=ode45('Lorenz',[0,50],Y(length(Y),:));

Y(:,1)=Y(:,2)-Y(:,1);

% 对计算结果进行判断,如果点满足x=y,则取点

for k=2:length(Y)

f=k-1;

if Y(k,1)<0

if Y(f,1)>0

y=Y(k,2)-Y(k,1)*(Y(f,2)-Y(k,2))/(Y(f,1)-Y(k,1));

Z=[Z r+abs(y)*i];

end

else

if Y(f,1)<0

y=Y(k,2)-Y(k,1)*(Y(f,2)-Y(k,2))/(Y(f,1)-Y(k,1));

Z=[Z r+abs(y)*i];

end

end

end

end

plot(Z,'.','markersize',1)

title('Lorenz映射分岔图')

xlabel('r'),ylabel('|y| where x=y')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值