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

我刚刚接触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

 Respuesta aceptada

royas
royas el 18 de Nov. de 2022

0 votos

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

Más respuestas (0)

Categorías

Más información sobre Nonlinear Dynamics en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 18 de Nov. de 2022

Respondida:

el 18 de Nov. de 2022

Community Treasure Hunt

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

Start Hunting!