非自治系统分岔图的取点周期及取点问题
假设非自治系统存在激励项cos(omega*t)omega=10;
那么激励周期应该为2*pi/omega;
对总体微分方程某一个变量求解其随一具体参数变化的分岔图
假设参数为I=100:200
程序 for i=1:length(I)
Period=2*pi/omega;
=ode45(@xxxxxx,,[ 1 1 1 1], I(i));
Plot(I(i),x(3000:100:end,1);
End
如果按照这样的程序写,那么输出点为x(1)在第3000,3100,3200,……,5000点随不同的I(i)的分岔图。
那么问题出现了,既然是只需要整百的点,也就是整周期的点,为什么还要在求解微分方程中对时间的步长进行处理,令其每个周期分为100个点。如果将
=ode45(@xxxxxx,,[ 1 1 1 1], I(i));
里面的周期分段改为
,
而画图是改为
Plot(I(i),x(30:1:end,1);
岂不是更好,可以节约计算时间的计算量。
另外,如果取点不选择整周期的点,而是其他的点,如
plot(I(i),x(3024:100:end,1);
这样对分岔图会产生什么样的影响。
请各位解答,谢谢。 在中午的时候我突然想明白了。
虽然取的是最后一步整周期的结果,但Runge-kutta法是迭代过程,需要步长。唉!
回复 沙发 chunshui2003 的帖子
呵呵 是的 rung kutta 需要小步长有关分岔图的疑问
程序 for i=1:length(I)Period=2*pi/omega;
=ode45(@xxxxxx,,[ 1 1 1 1], I(i));
Plot(I(i),x(3000:100:end,1);
请问x(3000:100:end,1)取的是位移还是速度? 其实你的这个方法是完全对的,如果你的系统是连续的话。详细的如果感兴趣的人比较多,我们可以开一个主题来讨论一下这个问题。 可能龙哥库塔法需要小步长吧
回复 6楼 chunshui2003 的帖子
你说的也对,但是其实计算的时候他还是小步长计算的 恩,感谢无水的回答,原理懂了其余的也就懂了。 学习到了,受益匪浅啊
页:
[1]