tiangehh 发表于 2009-10-30 14:46

最大值方法画出分岔图 getmax 方程有点看不懂啊

j=1;
for i=(a-1)/2:a
    b=(y(i,1)-y(i-2,1))/2;
    c=(y(i,1)+y(i-2,1))/2-y(i-1,1);
    if y(i-2,1)<=y(i-1,1)&y(i-1,1)>=y(i,1)&c==0
      Xmax(j)=y(i-1,1);
      j=j+1;
    elseif y(i-2,1)<=y(i-1,1)&y(i-1,1)>=y(i,1)
      Xmax(j)=y(i-1,1)-b^2/(4*c);
      j=j+1;
    end
end


为什么要 Xmax(j)=y(i-1,1)-b^2/(4*c); 最后一项什么意思呢

octopussheng 发表于 2009-10-30 18:43

这个意思应该是取一个极值点。

htwei 发表于 2009-10-31 23:05

我的实际感觉有最后一项无伤大雅你可以去掉试试

octopussheng 发表于 2009-11-1 20:22

getmax建议还是少用,计算分岔图最好还是采用庞加莱截面方法。

如枫 发表于 2013-1-31 22:14

这段程序实际上就是取经过三个点的抛物线的顶点

伤痕累累 发表于 2013-2-1 09:39

最大值法做的分岔图,效果灰常不好。取最大值还不取极大值。极大值法师一个很值得推荐的方法。另外就是频闪法。频闪法是最常用的的方法。分岔图的方法很多,各有利弊,因此要因地制宜才好。

micheller85@126 发表于 2014-6-25 11:52

请问用poincare截面法画分岔图怎么画呢?不太懂原理,有没有类似的程序呢

窃以为洒脱 发表于 2014-8-2 09:50

micheller85@126 发表于 2014-6-25 11:52
请问用poincare截面法画分岔图怎么画呢?不太懂原理,有没有类似的程序呢

这个是我的程序的一部分,运行不起来的,你大致看看,不懂可以问我。
omega=4;%外激励频率
tp=2*pi/omega;%外激励周期
np=round(10000/tp);%1000s内经过过多少个外激励周期
step=100;=ode45('vibt_10',0:tp/step:np*tp,x0,[])
lt=length(t);%时间数组的长度
range=lt:-step:round(0.5*lt);%0.5是为了去掉前面不稳定的项
npoint=length(range) %映射点的个数
for i=range
plot(pdot(i,1),pdot(i,2),'k.','markersize',10);
hold on;
end

窃以为洒脱 发表于 2014-8-2 09:54

窃以为洒脱 发表于 2014-8-2 09:50
这个是我的程序的一部分,运行不起来的,你大致看看,不懂可以问我。

貌似我看错了,你要的是分岔图,我给的是庞加莱截面图
页: [1]
查看完整版本: 最大值方法画出分岔图 getmax 方程有点看不懂啊