我想为延迟微分方程编写一种近似方法,这有点小众,但我想尝试一下。然而,标准的欧拉或其他龙格-库塔方法并不一定符合这一点。如何准确地近似
解来延迟方程?对于 ODE,要传递给求解器的数据是 ODE 函数f(t,y)
、初始点y(t_0)=y_0
和积分区间的结束t_f
。
对于 DDE 求解器,驱动 DDE 评估所需的额外数据是延迟td[0..s]
,以及历史函数h(t)
,它也承担初始值的作用。DDE"右侧"函数本身f(t,y,yd)
将当前状态y
和在延迟时间yd[i]=y(t-td[i])
的状态向量作为输入。
要实现求解器,您可以采用任何具有插值过程(也称为"密集输出")的方法,其顺序与该方法相同。此过程或插值器对象包含前面积分步骤中的数据,并默认为积分间隔开始前的时间h(t)
的历史函数。然后在求解器阶段,此插值用于计算yd
值,在每个积分步骤之后,插值数据将更新以包含新数据。
其他一切都照常进行,唯一的限制是时间步长必须小于最小延迟,以便所有延迟状态都在插值器的历史数据中。