主要内容gydF4y2Ba

dde23gydF4y2Ba

求解具有常数时滞的时滞微分方程(DDEs)gydF4y2Ba

语法gydF4y2Ba

索尔= dde23 (tspan ddefun、滞后、历史)gydF4y2Ba
索尔= dde23 (ddefun、滞后、历史、tspan选项)gydF4y2Ba

参数gydF4y2Ba

ddefungydF4y2Ba

对微分方程右侧求值的函数句柄gydF4y2Ba ygydF4y2Ba ′gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba =gydF4y2Ba fgydF4y2Ba (gydF4y2Ba tgydF4y2Ba ,gydF4y2Ba ygydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba ,gydF4y2Ba ygydF4y2Ba (gydF4y2Ba tgydF4y2Ba −gydF4y2Ba τgydF4y2Ba 1gydF4y2Ba )gydF4y2Ba ,gydF4y2Ba ...gydF4y2Ba ,gydF4y2Ba ygydF4y2Ba (gydF4y2Ba tgydF4y2Ba −gydF4y2Ba τgydF4y2Ba kgydF4y2Ba )gydF4y2Ba )gydF4y2Ba .函数必须有形式gydF4y2Ba

dydt = ddefun (t, y, Z)gydF4y2Ba

在哪里gydF4y2BatgydF4y2Ba对应于当前gydF4y2BatgydF4y2Ba,gydF4y2BaygydF4y2Ba是一个近似的列向量吗gydF4y2BaygydF4y2Ba(gydF4y2BatgydF4y2Ba),gydF4y2BaZ (:, j)gydF4y2Ba接近gydF4y2BaygydF4y2Ba(gydF4y2BatgydF4y2Ba- - - - - -gydF4y2BaτgydF4y2BajgydF4y2Ba),延迟gydF4y2BaτgydF4y2BajgydF4y2Ba=gydF4y2Ba滞后(j)gydF4y2Ba.输出是对应的列向量gydF4y2Ba fgydF4y2Ba (gydF4y2Ba tgydF4y2Ba ,gydF4y2Ba ygydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba ,gydF4y2Ba ygydF4y2Ba (gydF4y2Ba tgydF4y2Ba −gydF4y2Ba τgydF4y2Ba 1gydF4y2Ba )gydF4y2Ba ,gydF4y2Ba ...gydF4y2Ba ,gydF4y2Ba ygydF4y2Ba (gydF4y2Ba tgydF4y2Ba −gydF4y2Ba τgydF4y2Ba kgydF4y2Ba )gydF4y2Ba )gydF4y2Ba .gydF4y2Ba

滞后gydF4y2Ba

常数向量,正延迟gydF4y2BaτgydF4y2Ba1gydF4y2Ba、……gydF4y2BaτgydF4y2BakgydF4y2Ba.gydF4y2Ba

历史gydF4y2Ba

指定gydF4y2Ba历史gydF4y2Ba三种方式之一:gydF4y2Ba

  • 的函数gydF4y2BatgydF4y2Ba这样gydF4y2Bay =历史(t)gydF4y2Ba返回的解决方案gydF4y2BaygydF4y2Ba(gydF4y2BatgydF4y2Ba)gydF4y2BatgydF4y2Ba≤gydF4y2BatgydF4y2Ba0gydF4y2Ba作为列向量gydF4y2Ba

  • 一个常数列向量,如果gydF4y2BaygydF4y2Ba(gydF4y2BatgydF4y2Ba)是恒定的gydF4y2Ba

  • 解决方案gydF4y2Ba索尔gydF4y2Ba从以前的集成,如果这个调用继续集成gydF4y2Ba

tspangydF4y2Ba

积分区间gydF4y2Bat0 = tspan (1)gydF4y2Ba来gydF4y2Batf = tspan(结束)gydF4y2Ba与gydF4y2Bat0 <特遣部队gydF4y2Ba.gydF4y2Ba

选项gydF4y2Ba

可选的集成的论点。属性创建的结构gydF4y2BaddesetgydF4y2Ba函数。看到gydF4y2BaddesetgydF4y2Ba获取详细信息。gydF4y2Ba

描述gydF4y2Ba

索尔= dde23 (tspan ddefun、滞后、历史)gydF4y2Ba集成了dde系统gydF4y2Ba

ygydF4y2Ba ′gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba =gydF4y2Ba fgydF4y2Ba (gydF4y2Ba tgydF4y2Ba ,gydF4y2Ba ygydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba ,gydF4y2Ba ygydF4y2Ba (gydF4y2Ba tgydF4y2Ba −gydF4y2Ba τgydF4y2Ba 1gydF4y2Ba )gydF4y2Ba ,gydF4y2Ba ...gydF4y2Ba ,gydF4y2Ba ygydF4y2Ba (gydF4y2Ba tgydF4y2Ba −gydF4y2Ba τgydF4y2Ba kgydF4y2Ba )gydF4y2Ba )gydF4y2Ba

在间隔时[gydF4y2BatgydF4y2Ba0gydF4y2Ba,gydF4y2BatgydF4y2BafgydF4y2Ba),gydF4y2BaτgydF4y2Ba1gydF4y2Ba、……gydF4y2BaτgydF4y2BakgydF4y2Ba是持续的,积极的延迟和gydF4y2BatgydF4y2Ba0gydF4y2Ba,gydF4y2BatgydF4y2BafgydF4y2Ba.输入参数,gydF4y2BaddefungydF4y2Ba,是函数句柄。gydF4y2Ba

参数化功能gydF4y2Ba解释如何向函数提供附加参数gydF4y2BaddefungydF4y2Ba,如果必要的。gydF4y2Ba

dde23gydF4y2Ba以结构形式返回解决方案gydF4y2Ba索尔gydF4y2Ba.使用辅助功能gydF4y2Ba德瓦尔gydF4y2Ba和输出gydF4y2Ba索尔gydF4y2Ba在特定的点上评估解决方案gydF4y2Ba色彩gydF4y2Ba在这一期间gydF4y2Batspan = (t0, tf)gydF4y2Ba.gydF4y2Ba

yint =德瓦尔(溶胶、色彩)gydF4y2Ba

结构gydF4y2Ba索尔gydF4y2Ba返回的gydF4y2Badde23gydF4y2Ba具有以下字段。gydF4y2Ba

sol.xgydF4y2Ba

网选择gydF4y2Badde23gydF4y2Ba

sol.ygydF4y2Ba

近似gydF4y2BaygydF4y2Ba(gydF4y2BaxgydF4y2Ba)的网格点gydF4y2Basol.xgydF4y2Ba.gydF4y2Ba

sol.ypgydF4y2Ba

近似gydF4y2BaygydF4y2Ba”(gydF4y2BaxgydF4y2Ba)的网格点gydF4y2Basol.xgydF4y2Ba

sol.solvergydF4y2Ba

解算器的名字,gydF4y2Ba“dde23”gydF4y2Ba

索尔= dde23 (ddefun、滞后、历史、tspan选项)gydF4y2Ba中的值替换默认集成属性,解决上述问题gydF4y2Ba选项gydF4y2Ba,引起的争论gydF4y2BaddesetgydF4y2Ba.看到gydF4y2BaddesetgydF4y2Ba和gydF4y2Ba解时滞微分方程gydF4y2Ba为更多的信息。gydF4y2Ba

常用的选项是标量相对误差公差gydF4y2Ba“RelTol”gydF4y2Ba(gydF4y2Ba1 e - 3gydF4y2Ba默认情况下)和绝对容错矢量gydF4y2Ba“AbsTol”gydF4y2Ba(所有组件gydF4y2Ba1 e-6gydF4y2Ba默认情况下)。gydF4y2Ba

使用gydF4y2Ba“跳跃”gydF4y2Ba选择解决问题与不连续的历史或解决方案。将此选项设置为一个向量,该向量包含之前解中的不连续点位置gydF4y2Bat0gydF4y2Ba(历史)或在已知值时方程的系数gydF4y2BatgydF4y2Ba后gydF4y2Bat0gydF4y2Ba.gydF4y2Ba

使用gydF4y2Ba“事件”gydF4y2Ba选项指定一个函数gydF4y2Badde23gydF4y2Ba查找函数调用的位置gydF4y2Ba ggydF4y2Ba (gydF4y2Ba tgydF4y2Ba ,gydF4y2Ba ygydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba ,gydF4y2Ba ygydF4y2Ba (gydF4y2Ba tgydF4y2Ba −gydF4y2Ba τgydF4y2Ba 1gydF4y2Ba )gydF4y2Ba ,gydF4y2Ba ...gydF4y2Ba ,gydF4y2Ba ygydF4y2Ba (gydF4y2Ba tgydF4y2Ba −gydF4y2Ba τgydF4y2Ba kgydF4y2Ba )gydF4y2Ba )gydF4y2Ba 消失。这个函数必须是有形式的gydF4y2Ba

(价值、isterminal方向)=事件(t, y, Z)gydF4y2Ba

并为要测试的每个事件包含一个事件函数。为gydF4y2BakgydF4y2Ba第一个事件函数gydF4y2Ba事件gydF4y2Ba:gydF4y2Ba

  • 值(k)gydF4y2Ba价值是多少gydF4y2BakgydF4y2Ba事件函数。gydF4y2Ba

  • isterminal (k) = 1gydF4y2Ba如果你想让积分在事件函数和的0处终止gydF4y2Ba0gydF4y2Ba否则。gydF4y2Ba

  • 方向(k) = 0gydF4y2Ba如果你想要gydF4y2Badde23gydF4y2Ba为了计算这个事件函数的所有零,gydF4y2Ba+1gydF4y2Ba如果事件函数增加时为零gydF4y2Ba-1gydF4y2Ba如果事件函数减小时为零。gydF4y2Ba

如果指定gydF4y2Ba“事件”gydF4y2Ba选项和事件被检测,输出结构gydF4y2Ba索尔gydF4y2Ba还包括:gydF4y2Ba

sol.xegydF4y2Ba

所有事件位置的行向量,即事件函数消失的时间gydF4y2Ba

sol.yegydF4y2Ba

矩阵的列是乘以in的解值gydF4y2Basol.xegydF4y2Ba

sol.iegydF4y2Ba

中包含指定在相应时间发生的事件的索引的向量gydF4y2Basol.xegydF4y2Ba

例子gydF4y2Ba

这个例子求解了间隔[0,5]上时滞为1和0.2的DDE。这个函数gydF4y2Baddex1degydF4y2Ba计算延迟微分方程,并且gydF4y2Baddex1histgydF4y2Ba计算的历史gydF4y2Bat < = 0gydF4y2Ba.gydF4y2Ba

请注意gydF4y2Ba

这个文件,gydF4y2Baddex1.mgydF4y2Ba,包含此示例的完整代码。要在编辑器中查看代码,输入gydF4y2Ba编辑ddex1gydF4y2Ba在命令行。要运行它,输入gydF4y2Baddex1gydF4y2Ba在命令行。gydF4y2Ba

Sol = dde23(@ddex1de,[1,0.2],@ddex1hist,[0,5]);gydF4y2Ba

这段代码在间隔中的100个等间距点上计算解决方案gydF4y2Ba[0, 5]gydF4y2Ba,然后绘制结果。gydF4y2Ba

色= linspace (0 5);yint =德瓦尔(溶胶、色彩);情节(色彩、yint);gydF4y2Ba

ddex1gydF4y2Ba演示如何使用本地函数编写此问题的代码。有关更多示例,请参见gydF4y2Baddex2gydF4y2Ba.gydF4y2Ba

算法gydF4y2Ba

dde23gydF4y2Ba跟踪不连续,并与显式龙格-库塔(2,3)对和插值相结合gydF4y2Baode23gydF4y2Ba.它使用迭代来采取比滞后时间更长的步骤。gydF4y2Ba

参考文献gydF4y2Ba

[1] Shampine, L.F. and S. Thompson,《MATLAB中求解DDEs》gydF4y2Ba应用数值数学gydF4y2Ba, Vol. 37, 2001, pp. 441-458。gydF4y2Ba

Kierzenka J L.F. Shampine和S. Thompson, "gydF4y2Ba用dde23求解时滞微分方程gydF4y2Ba”gydF4y2Ba

另请参阅gydF4y2Ba

|gydF4y2Ba|gydF4y2Ba|gydF4y2Ba|gydF4y2Ba

主题gydF4y2Ba

之前介绍过的R2006agydF4y2Ba