声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2539|回复: 4

[稳定性与分岔] 分岔图出现跃迁问题,如何修改

[复制链接]
发表于 2017-5-22 21:05 | 显示全部楼层 |阅读模式

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

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

x
按照下面的程序做出来的分岔图出现了跳跃,不知是何原因,如何修改程序能使最后变成就是一条直线。
untitled.bmp
function dy=myDuffing(t,y)
global F omiga;
kp2= 0.0411;
s=1.1350;
u= 0.04;
cta= 1.0951;


dy=zeros(3,1);
dy(1)=y(2);
dy(2)=-u*y(2)-(1-s)*y(1)-y(1)^3+y(3)-F*cos(omiga*t);
dy(3)=-kp2*y(2)-cta*y(3);




%%%%%%%分岔图绘制程序:
clear;
box on;
xlim([0,0.5]);
ylim([-2,2]);
s=1.1350;
global F omiga;
omiga=0.8;
range=[0.001:0.001:0.3];
period=2*pi/omiga;
k=0;
YY1=[];
step=2*pi/100;  %步长。
options=odeset('RelTol',1e-5,'AbsTol',1e-6);
for F=range
    y0=[sqrt(s-1) 0 0];
    k=k+1;
    % discard the first 60 periodic data;
    %除去前面60个周期的数据,并将最后的结果作为下一次积分的初值
    tspan=[0:step:60*period];
    [t,Y]=ode45(@myDuffing,tspan,y0,options);
    y0=Y(end,:);
    j=1;
    for i=60:200
        tspan=[i*period:step:(i+1)*period];
        [t,Y]=ode45(@myDuffing,tspan,y0,options);
        YY1(k,j)=Y(end,1);   % get the omega data from every period end
        j=j+1;               %取出每一个周期内的第一个解的最后一个值。
        y0=Y(end,:);
    end
end
bifdata=YY1(:,end-51:end);
plot(range,bifdata,'k*','markersize',2);


回复
分享到:

使用道具 举报

 楼主| 发表于 2017-5-23 09:03 | 显示全部楼层
发表于 2017-5-23 13:48 | 显示全部楼层
检查一下数据
 楼主| 发表于 2017-5-23 16:31 | 显示全部楼层

检查了  duffing方程和参数都是没问题的啊
 楼主| 发表于 2017-5-25 09:36 | 显示全部楼层
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-28 22:34 , Processed in 0.061572 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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