我正在使用方法 lsoda 在 DeSolve 中使用 ODE 和 DDE 制作人口分布模型。在这个模型中,我希望在特定时间(特定日期)有大量人口涌入。一个非常简单的例子:
dn1dt=influx - mortality
涌入 (x) 需要在时间 (t) = y(以天为单位)发生。如果不是第 y 天,我不想要大量涌入。目前我已将涌入编写为influx=function(t,y,x){ifelse((t==y), x, 0))
,但由于我使用的方法(lsoda),我遇到了时间步长变化的问题。由于时间步长的变化,我不会达到触发流入的具体时间(y)。我刚刚开始使用不断变化的时间步长,所以我不确定如何处理这个问题。如果有任何不清楚的地方,请告诉我。