|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
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
|
|