声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1291|回复: 1

[稳定性与分岔] 我这个AFM的分岔图怎么画不出来呢

[复制链接]
发表于 2010-12-9 13:37 | 显示全部楼层 |阅读模式

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

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

x
附上源程序大家帮我看看问题会出在哪里
function dx=AFMfencha(t,x)
global F;
delt=0.04;
sigma=0.3;
alpha=0.8;
fwan=2;
omega=1;
d=4/27;

fil=(sigma^6*d)/(30*(alpha+x(1))^8)-d/(alpha+x(1))^2;
fil=double(fil);

dx=zeros(3,1);
dx=[x(2)-F*x(1)
    -x(1)-delt*x(2)+fwan*cos(t)+fil-F*x(2)];



function AFM_bifur_F
clear;
global F ;

range=[0:0.2:10];
period=2*pi;
k=0;
YY1=[];
step=2*pi/100;  %步长。
for F=range
    y0=[1 0];
    F
    k=k+1;
    % discard the first 60 periodic data;
    %除去前面60个周期的数据,并将最后的结果作为下一次积分的初值
    options = odeset('MaxStep',0.001);
    tspan=[0:step:60*period];
    [t,Y]=ode45(@AFMfencha,tspan,y0,options);
    y0=Y(end,:);
    j=1;
    for i=60:200
        tspan=[i*period:step:(i+1)*period];
        [t,Y]=ode45(@AFMfencha,tspan,y0);
        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,'b*','markersize',1);
下面是画出来的图,但感觉不对,因为当参数F[0,2]之间仿真出来是混沌的,在F>2时应该是周期解的。

分岔参数0<f<10

分岔参数0<f<10


回复
分享到:

使用道具 举报

发表于 2010-12-10 10:43 | 显示全部楼层
不知道你这个程序具体的模型是什么样的
1.
  1. dx=zeros(3,1);
  2. dx=[x(2)-F*x(1)
  3.     -x(1)-delt*x(2)+fwan*cos(t)+fil-F*x(2)];
复制代码
请问你的系统是几维的?从程序上推测是2维的,但是dx为什么要定义成三维的呢?

2.
运行过程中,matlab提示:
In ode45 at 371
  In AFM_bifur_F at 22
Warning: Failure at t=1.256689e+003.  Unable to meet integration tolerances
without reducing the step size below the smallest value allowed (3.637979e-012)
at time t.  

这说明计算并不能收敛,可能方程是刚性的,建议改用ode23s或者ode15s进行计算
3.
即便程序计算都没有问题,也不是所有的系统都会出现的分岔的,这和系统自身的特性及参数有关
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-17 17:21 , Processed in 0.058128 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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