很抱歉收集了关键字,"延迟微分方程"没有特定的标签(我怀疑创建一个标签是否有用)。
我正在Matlab中使用dde23
集成一个函数,我已经在ddeset
中查找了可用的选项,但我找不到对解决方案实施值约束的方法。
我所说的"值约束"的意思是,我的函数不允许取区间[0,1]
之外的值,但微分系统本身是连续的,根据积分方案,数值解有时可以取该区间之外的值。
我知道我可以在后验中限制的值,但我希望在每个成功的集成步骤之后直接强制执行这些约束。有办法做到这一点吗?
强制使用有限范围的解决方案的一种方法是通过具有有限共域的函数(如atan
)查找映像的解决方案。
例如,如果希望解决方案y(t)
的值介于YMIN
和YMAX
之间,则查找解决方案
y(t) = (YMAX+YMIN)/2 + (YMAX-YMIN)*atan(u(t))/pi
用新变量u
重写你的延迟系统,把它交给dde23
,并向柯西祈祷这样的解决方案存在。