DDE和依赖延迟
这个例子展示了如何使用ddesd
解决系统的dd(延迟微分方程)与依赖延迟。这个系统的dd是用作测试问题,Enright, Hayashi [1]。
方程组
历史记录功能 分析解决方案金宝搏官方网站
方程中的时间延迟只是出现在 条款。拖延只取决于第二个组件的状态 形成一个系统,所以方程依赖政府推迟方程。
在MATLAB解决这个方程组,方程需要代码,延迟,和历史在调用时滞微分方程解算器之前ddesd
依赖政府,是系统延迟。你要么可以包括所需的函数作为本地功能的文件(如在这里完成),或者拯救他们作为独立,在MATLAB上的一个目录路径命名文件。
代码的延迟
首先,写一个函数来定义系统的时间延迟。唯一的延迟出现在这个方程组是术语 。
函数d = de (t, y) d = exp (1 - y (2));结束
注意:所有的功能都作为本地函数的例子。
代码方程
现在,创建一个函数代码方程。这个函数应该签名dydt = ddefun (t, y, Z)
,地点:
t
是时候(独立变量)。y
解决方案(因变量)。Z (n, j)
接近延迟 ,延迟 是由组件j
的德(t, y)
。
这些输入自动传递到函数的解算器,但方程的变量名决定你如何代码。在这种情况下:
Z (2, 1)
函数dydt = ddefun (t, y, Z) dydt = [y (2);y - z (2, 1) * (2) ^ 2 * exp (1 - y (2)));结束
代码解决方案历史
接下来,创建一个函数来定义解决方案的历史。解决方案历史是时间的解决方案 。
函数v =历史(t)% t < t0历史功能v =[日志(t);1. / t);结束
解决方程
最后,定义集成的间隔
并解决DDE使用ddesd
解算器。
tspan = (0.1 - 5);索尔= ddesd (@ddefun @dely、@history tspan);
策划解决方案
解决方案结构索尔
的字段sol.x
和sol.y
包含内部时间解算器采取的措施和相应的解决方案。金宝搏官方网站(如果你需要在特定点上,解决方案,您可以使用德瓦尔
评估解决方案的特定点。)
情节与时间这两个解决方案组件使用历史函数来计算积分区间内的解析解比较。
ta = linspace (0.1, 5);丫=历史(ta);情节(ta,是的,sol.x sol.y,“o”)传说(“y_1准确”,“y_2准确”,“y_1 ddesd”,“y_2 ddesd”)包含(“t”)ylabel (“解决方案y”)标题(“D1 Enright, Hayashi的问题”)
本地函数
这里列出当地的DDE解算器的辅助函数ddesd
调用计算解决方案。或者,您可以保存这些函数作为自己的文件在MATLAB上的一个目录路径。
函数dydt = ddefun (t, y, Z)%方程得到解决dydt = [y (2);- z (2, 1)。* y (2) ^ 2。* exp (1 - y (2)));结束% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -函数d = de (t, y)%延迟yd = exp (1 - y (2));结束% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -函数v =历史(t)% t < t0历史功能v =[日志(t);1. / t);结束% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
引用
[1]Enright, w·h·哈亚希和h。“为延迟微分方程数值软件的评价。“在学报联合会TC2 / WG2.5工作会议对质量的数值软件:评估和增强。(水Boisvert ed)。英国伦敦:查普曼和大厅,有限公司,179 - 193页。