非线性系统分岔图程序中的问题。

我刚刚接触MATLAB和分岔,在论坛中看到了一个朋友发的画分岔图的程序,但是算法我不是很明白,请教各位高人帮忙解释一下:就是在命令plot(d(j),y(500:100:1400,2),'linewidth',5) 中,那个y(500:100:1400,2)为什么取500-1400,中间的100是什么意思?500和1400的取法是怎样的?我看别的程序取得都不一样,为什么?
附加程序如下:
M 函数文件:dbfun.m
function ydot=dbfun(t,y,flag,d)
w=1;c=0.3;
ydot=[y(2);
- y(1)^3 - c*y(2)+d*cos(w*t)];
相应程序:
d=20:0.01:40;
w=1.0;
T=2*pi/w;
hold on
for j=1:length(d)
[t,y]=ode23 ('dbfun',[0:T/100:70*T],[4,4],[],d(j));
plot(d(j),y(500:100:1400,2),'linewidth',5)
title('分岔图二')
xlabel(' 参数 F0')
ylabel(' 位移')
end

 Réponse acceptée

royas
royas le 18 Nov 2022

0 votes

这基本上是一个受迫振动的过程,外界力对应的就是d*cos(w*t),周期是T=2*pi/w;如果解唯一的话,那就在以T时刻为周期取值,观察到的状态是一致的;如果是混沌的话,就会出现各种情况了。至于取后时段的值也可以啊,这个基本比较随意吧。

Plus de réponses (0)

Catégories

En savoir plus sur Nonlinear Dynamics dans Centre d'aide et File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!