【发布时间】:2021-12-28 08:29:57
【问题描述】:
我正在 deSolve (R) 中编写延迟微分方程,但我收到一条错误消息,我不确定如何求解。 所以对于一些背景。我有一个包含 12 个微分方程的系统,其中 3 个有延迟。我在没有 deSolve 的情况下成功编写了系统,但我想使用 deSolve,因为它让我有机会轻松使用其他非固定步长欧拉的方法。 但是,现在我把它放在deSolve中,并且我正在使用延迟微分方程的通用求解器(dede),我得到了一个错误。
这是误差所涉及的延迟和微分方程:
lag2=ifelse(t-tau2<0, 0, e2(lagvalue(t-tau2,3))*lagvalue(t-tau2,8))
dn9dt=lag2-IP2*ethaP2M*P2-mu2*sf0B(B2)*P2-DNB(N2,B2)*P2+DD*PD
第一个和第三个延迟微分方程与这个相同,似乎没有错误。错误是:
Error in lagvalue(t - tau2, 3) : illegal input in lagvalue - lag, 0, too large, at time = 15.945
需要注意的是,在这种情况下延迟(tau2)为16,并且错误发生在time = 16之前。
我已经尝试将 t-tau2
我尝试过在线搜索,但是我在deSolve的dede上几乎找不到任何东西,所以我希望这里的人可以提供帮助。
【问题讨论】:
-
您能否提供一个可重现的最小示例,即重现错误但只有 2 个方程的东西?
标签: r if-statement differential-equations timedelay desolve