2

是否可以使用 C++ Boost - odeint 库求解时间延迟微分方程?对于以下等式的示例:

x'(t) = r*x(t)*(1 - x(t-tau)), 

其中 tau 是时间延迟的常数值。

4

1 回答 1

2

是的你可以。但是 odeint 并不是专门为 DDE 设计的。使用 odeint 解决 DDE 有两种可能性:

  1. 您将 x 及其离散化历史视为因变量并直接使用步进器。
  2. 您仅将 x 视为因变量并使用系统函数(您的 rhs)传递历史。但在这种情况下,您应该只使用在多个时间步长上评估状态的步进器,例如 Euler 或 RK2。

如果我有时间,我会写一个更具体的答案,也许还有一些代码片段。

于 2014-02-05T11:48:01.113 回答