声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1244|回复: 2

[稳定性与分岔] 为什么我的分岔图出不来

[复制链接]
发表于 2008-6-2 15:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
function dx=yang(t,x)
global A ;
dx=zeros(3,1);
dx(1)=6.3*x(2)-1.8*x(1)-A*(abs(x(1)-1)-abs(x(1)+1));
dx(2)=0.7*x(1)-0.7*x(2)+x(3);
dx(3)=-7.0*x(2);

function chua
clear;
global A
range=[0.1: 0.0001: 0.35];
period=2*pi;
k=0;
YY1=[];
Step=2*pi/100;
for A=range
  x0=[0 0.001 0];
  A
  k=k+1;     %出去前面60个周期的数据,并将最后的结果作为下一次积分的初值。
  tspan=[0:step:60*period];
  [t,Y]=ode45('yang',tspan ,x0);
  y0=Y(end,:);
  j=1;
  for i=60:200
    tspan=[i*period:step(i+1)*period];
    [t,Y]ode45('yang',tspan ,x0);
    YY1(k, j)=Y(end,1);
    j=j+1;    %取出每一个周期内的第一个解的最后一个值。
    y0=Y(end,:);
   end
end
bifdata=YY1(:,end-51:end);
plot(range,bifdata,'k','markersize',1);
各位请都给点意见吧
回复
分享到:

使用道具 举报

发表于 2008-6-2 19:07 | 显示全部楼层
[t,Y]ode45('yang',tspan ,x0);
这里有问题
不过你的程序有问题吧

function chua
clear;
global A
range=[0.1: 0.0001: 0.35];
period=2*pi;
k=0;
YY1=[];
Step=2*pi/100;
for A=range
  x0=[0 0.001 0];
  A
  k=k+1;     %出去前面60个周期的数据,并将最后的结果作为下一次积分的初值。
  tspan=[0:step:60*period];
  [t,Y]=ode45('yang',tspan ,x0);
  y0=Y(end,:);
  j=1;
  for i=60:200
    tspan=[i*period:step(i+1)*period];
    [t,Y]ode45('yang',tspan ,x0);
    YY1(k, j)=Y(end,1);
    j=j+1;    %取出每一个周期内的第一个解的最后一个值。
    y0=Y(end,:);
   end
end
bifdata=YY1(:,end-51:end);
plot(range,bifdata,'k','markersize',1);
为什么出现两次 [t,Y]=ode45('yang',tspan ,x0);
 楼主| 发表于 2008-6-2 19:17 | 显示全部楼层
我是按照liliangbiao提供的Duffing系统的分岔图的Matlab实现中的程序编的,实现不了
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-30 07:25 , Processed in 0.057074 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表