最大值方法画出分岔图 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); 最后一项什么意思呢 这个意思应该是取一个极值点。 我的实际感觉有最后一项无伤大雅你可以去掉试试 getmax建议还是少用,计算分岔图最好还是采用庞加莱截面方法。 这段程序实际上就是取经过三个点的抛物线的顶点 最大值法做的分岔图,效果灰常不好。取最大值还不取极大值。极大值法师一个很值得推荐的方法。另外就是频闪法。频闪法是最常用的的方法。分岔图的方法很多,各有利弊,因此要因地制宜才好。 请问用poincare截面法画分岔图怎么画呢?不太懂原理,有没有类似的程序呢 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:50
这个是我的程序的一部分,运行不起来的,你大致看看,不懂可以问我。
貌似我看错了,你要的是分岔图,我给的是庞加莱截面图
页:
[1]