我将python用于科学应用,尤其是用于求解微分方程。我已经在简单方程系统上成功使用了odeint
函数。
现在我的目标是解决一个包含300多个方程的相当复杂的系统。此时,只要odeint
中的时间步长等于或小于1e-3,t-array
函数就会给出合理的结果。但我需要更大的时间步骤,因为系统必须集成几千秒。更大的时间步骤产生“超额工作......”错误。
有没有人有odeint
的经验,可以告诉我,为什么会出现这种情况,尽管odeint
函数似乎会自动选择其时间步长,然后显示与给定时间步长相匹配的结果由我?
我根本不明白为什么会这样。我想我可以通过多次集成来解决这个问题,但也许有人知道更好的解决方案。我在其他地方已经有解决方案的情况下提前道歉,我还没有看到它。