我使用python进行科学应用,尤其是用于求解微分方程 . 我已经在简单方程系统上成功使用了 odeint 函数 .

现在我的目标是解决一个由300多个方程组成的相当复杂的系统 . 此时,只要 t-array 中的时间步长等于或小于1e-3, odeint 函数就会给出合理的结果 . 但我需要更大的时间步骤,因为系统必须集成几千秒 . 较大的时间步长会产生"excess work done.."错误 .

有没有人有 odeint 的经验,可以告诉我,为什么会这样,虽然 odeint 函数似乎自动选择时间步,然后显示与我给出的时间步长相匹配的结果?

我根本不明白为什么会这样 . 我想我可以通过多次集成来解决这个问题,但也许有人知道更好的解决方案 . 我在其他地方已经有解决方案的情况下事先道歉,我还没有看到它 .