这是我在这里的第一个问题,所以请放轻松我 . 我想知道是否有办法只集成ODE系统,直到找到指定变量的局部最大值 . 这里有一些更详细的信息:
我们称之为ODE系统 dX/dt = F(X) where X(t) = [x1(t), x2(t), ... , xn(t)]
. 假设该系统的解决方案被吸引到稳定的极限周期C,但是在一个不稳定的固定点p处 . 选择一些初始条件X0而不是p,而不是C.我们希望遵循解决方案的轨迹:
dX/dt = F(X), X(0) = X0 (*)
直到x1(t)达到其第一个局部最大值 .
进展:使用scipy.integrate.odeint我能够找到极限周期C及其周期T的解,但从任意点开始,我能够解决这个问题的唯一方法是求解(*)for “长时间”(可能是4 * T),假设这是一个足够长的时间,确定事后的第一个局部最大值x1 . 我的大项目要求多次完成,所以我尽量减少计算时间 . 似乎必须有一种更快的方法来做到这一点,而无需编写我自己的颂歌解算器 .
有可能(也可能)我让这个太复杂了吗?如果你想到一个不同的方式来做到这一点,我将不胜感激任何建议 .
1 回答
我没有测试过这个,但以下代码应该起作用或者至少有用:
我还会进一步研究python ode
编辑:
更好的是使用
solout
可以找到here