主要内容gydF4y2Ba

dde23gydF4y2Ba

求解常时滞时滞微分方程gydF4y2Ba

语法gydF4y2Ba

Sol = dde23(ddefun,滞后,历史,tspan)gydF4y2Ba
Sol = 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 < tfgydF4y2Ba.gydF4y2Ba

选项gydF4y2Ba

可选的集成参数。类创建的结构gydF4y2BaddesetgydF4y2Ba函数。看到gydF4y2BaddesetgydF4y2Ba获取详细信息。gydF4y2Ba

描述gydF4y2Ba

Sol = dde23(ddefun,滞后,历史,tspan)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

阴=阴(溶胶,色调)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

Sol = 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

[value, terminal,direction] = events(t,y,Z)gydF4y2Ba

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

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

  • 端点k = 1gydF4y2Ba如果你想让积分在这个事件函数的零点处终止gydF4y2Ba0gydF4y2Ba否则。gydF4y2Ba

  • 方向k = 0gydF4y2Ba如果你愿意gydF4y2Badde23gydF4y2Ba要计算该事件函数的所有0,gydF4y2Ba+1gydF4y2Ba如果只在事件函数增加的地方归零,并且gydF4y2Ba-1gydF4y2Ba如果只在事件函数减小的地方归零。gydF4y2Ba

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

sol.xegydF4y2Ba

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

sol.yegydF4y2Ba

矩阵的列是对应于时间的解的值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

Tint = linspace(0,5);Yint = deval(sol,色调);情节(色彩、yint);gydF4y2Ba

ddex1gydF4y2Ba展示如何使用局部函数对该问题进行编码。有关更多示例,请参见gydF4y2Baddex2gydF4y2Ba.gydF4y2Ba

算法gydF4y2Ba

dde23gydF4y2Ba的显式龙格-库塔(2,3)对和插值函数来跟踪不连续点gydF4y2Baode23gydF4y2Ba.它使用迭代来执行比滞后时间更长的步骤。gydF4y2Ba

参考文献gydF4y2Ba

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

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

版本历史gydF4y2Ba

R2006a之前介绍gydF4y2Ba

另请参阅gydF4y2Ba

|gydF4y2Ba|gydF4y2Ba|gydF4y2Ba|gydF4y2Ba

主题gydF4y2Ba