Main Content

解算时滞微分方程

时滞微分方程 (DDE) 是当前时间的解与过去时间的解相关的常微分方程。该时滞可以是固定不变、时间依赖、状态依赖或导数依赖。要开始积分,通常必须提供历史解,以便求解器可以获取初始积分点之前的时间的解。

常时滞 DDE

具有常时滞的微分方程组的形式如下:

y(t)=f(t,y(t),y(tτ1),,y(tτk)).

此处,t 为自变量,y 为因变量的列向量,而 y′ 表示 y 关于 t 的一阶导数。时滞 τ1,…,τk 是正常量。

dde23 函数用于求解具有历史解 y(t) = S(t)(其中 t <t0)的常时滞 DDE。

DDE 的解通常是连续的,但其导数不连续。dde23 函数跟踪低阶导数的不连续性,并使用 ode23 使用的同一显式龙格-库塔 (2,3) 对和插值求微分方程的积分。对于大于时滞的步长而言,龙格-库塔公式是隐式的。当 y(t) 足够平滑以证明此大小的步长时,使用预测-校正迭代法计算隐式公式。

时间依赖和状态依赖 DDE

常时滞 DDE 是一种特殊情况,更为一般的 DDE 形式为:

y(t)=f(t,y(t),y(dy1),...,y(dyp)).

时间依赖和状态依赖 DDE 涉及可能依赖于时间 t 和状态 y 的时滞 dy1、...、dyk。时滞 dyj(t, y) 必须满足 dyj(t, y) ≤ t(在区间 [t0, tf] 上,其中 t0 < tf)。

ddesd 函数用于求具有历史解 y(t) = S(t)(其中 t < t0)的时间依赖和状态依赖 DDE 的解 y(t)。ddesd 函数使用标准的四级、四阶显式龙格-库塔法来求积分,并它控制自然插值的余值大小。它使用迭代来采用超过时滞的步长。

中立型 DDE

中立型的时滞微分方程涉及在 y ′ 以及 y 中的时滞:

y(t)=f(t,y(t),y(dy1),...,y(dyp),y(dyp1),...,y(dypq)).

解中的时滞必须满足 dyi(t,y) ≤ t。一阶导数的时滞必须满足 dypj(t,y) < t,以便 y ′ 不显示在方程两端。

ddensd 函数使用时间依赖和状态依赖 DDE 来逼近中立型 DDE,从而对其求解:

y(t)=f(t,y(t),y(dy1),...,y(dyp)).

有关详细信息,请参阅 Shampine[1]

计算特定点的解

使用 deval 函数和任何 DDE 求解器的输出来计算积分区间中的特定点处的解。例如,y = deval(sol, 0.5*(sol.x(1) + sol.x(end))) 计算积分区间中点处的解。

历史解和初始值

对 DDE 求解时,将在区间 [t0,tf](其中 t0 < tf)上来逼近解。DDE 表明 y(t) 如何依赖于 t 之前的时间的解(及其可能的导数)的值。例如,具有常时滞时,y ′(t0) 依赖于 y(t0 – τ1),…,y(t0 – τk),其中 τj 为正常量。因此,[t0, tk] 上的解依赖于其在 t ≤ t0 处具有的值。必须使用历史解函数 y(t) = S(t)(其中 t <t0)定义这些值。

DDE 中的不连续性

如果问题具有不连续性,最好使用 options 结构体将其传递给求解器。为此,请使用 ddeset 创建一个 options 结构体以包含问题中的不连续性。

options 结构体中有三个属性可用于指定不连续性;InitialYJumpsEvents。选择的属性取决于不连续性的位置和特性。

不连续性的特性

属性

注释

在初始值 t = t0

InitialY

初始值 y(t0) 通常是历史解函数返回的值 S(t0),也就是说,解在初始点连续。如果不属于此种情况,请使用 InitialY 属性提供一个不同的初始值。

在历史解(即 t <t0 的解)或在 t >t0 的方程系数中

Jumps

在向量中提供不连续处的已知位置 t,以作为 Jumps 属性的值。仅适用于 dde23

状态依赖

Events

dde23ddesdddensd 使用您提供的事件函数来查找这些不连续的位置。当求解器查找这种不连续的位置时,请重新启动积分以便继续。将当前积分的解结构体指定为新积分的历史解。求解器在每次重新启动之后扩展解结构体的每个元素,以使最终结构体为整个积分区间提供解。如果新问题与解变化相关,请使用 InitialY 属性指定新集成的初始值。

不连续性传播

通常,解的一阶导数在初始点处具有跳跃性。这是因为历史解函数 S(t) 的一阶导数通常在此点处不满足 DDE。当时滞为常量时,则 y(t) 的任何导数中的以间距 τ1,…, τk 传播不连续点。如果时滞不为常量,则不连续性的传播更复杂。对于 常时滞 DDE时间依赖和状态依赖 DDE 形式的中立型 DDE,每次传播时,不连续性会出现在高一阶的导数中。在这种意义上,解会随着积分的进行而变得更圆滑。中立型 DDE 中指定的形式的中立型 DDE 的解在性质上不同。解的不连续性不会传播到高阶的导数。特别是,y ′(t) 中 t0 处的典型跳跃作为 y ′(t) 中的跳跃传播到整个 [t0, tf]。

DDE 示例和文件

可使用几个示例文件作为求解最常见 DDE 问题的绝佳起点。要方便地查看和运行示例,可以使用 Differential Equations Examples App。要运行此 App,请键入

odeexamples
要打开单独的示例文件进行编辑,请键入
edit exampleFileName.m
要运行示例,请键入
exampleFileName

下表包含可用的 DDE 示例文件及其使用的求解器和选项的列表。

示例文件

使用的求解器指定的选项

描述

示例链接

ddex1

dde23

具有常历史解的 DDE

具有常时滞的 DDE

ddex2

dde23

  • 'Jumps'

具有不连续性的 DDE

具有不连续性的心血管模型 DDE

ddex3

ddesd

具有状态依赖时滞的 DDE

具有状态依赖时滞的 DDE

ddex4

ddensd

带有两个时滞的中立型 DDE

中立型 DDE

ddex5

ddensd

具有初始值的中立型 DDE

中立型的初始值 DDE

参考

[1] Shampine, L.F. “Dissipative Approximations to Neutral DDEs.” Applied Mathematics & Computation, Vol. 203, 2008, pp. 641–648.

另请参阅

| | |

相关主题