主要内容

初始值中性型DDE

这个例子展示了如何使用ddensd求解具有时滞的初值时滞微分方程组。这个例子最初由Jackiewicz[1]提出。

方程是

y t 2 因为 2 t y t 2 2 因为 t + 日志 y t 2 - 日志 2 因为 t - t

这个方程是最初的价值DDE,因为时间延迟在 t 0 .因此,无需使用求解历史来计算解,只需要初始值:

y 0 1

y 0 年代

年代 是解 2 + 日志 年代 - 日志 2 0 .的值 年代 满足这个方程的是 年代 1 2 年代 2 0 4063757399599599

由于方程中的时间延迟在a y 这个方程叫做a中性DDE

为了在MATLAB中求解这个方程,您需要在调用延迟微分方程求解器之前对方程和延迟进行编码ddensd,它是中立型方程的求解器。您可以将所需的函数作为本地函数包含在文件的末尾(就像这里所做的那样),或者将它们作为单独的文件保存在MATLAB路径中的一个目录中。

代码的延迟

首先,编写一个匿名函数来定义等式中的延迟。因为两个 y y 表格有延误 t 2 ,只需要一个函数定义。这个延迟函数随后被传递给求解器两次,第一次是为了指示延迟 y 和一次 y

Delay = @(t,y) t/2;

代码方程

现在,创建一个函数来编写这个方程。这个函数应该具有签名yp = ddefun (t y所说,ypdel),地点:

  • t是时间(自变量)。

  • y是解(因变量)。

  • 所说包含的延迟y

  • ypdel包含的延迟 y dy dt

这些输入由求解器自动传递给函数,但变量名决定如何编写方程。在这种情况下:

  • 所说 y t 2

  • ypdel y t 2

函数yp = ddefun (t y所说,ypdel) yp = 2 * cos (2 * t *所说^ (2 * cos (t)) +日志(ypdel)——日志(2 * cos (t))——罪(t);结束

注意:在示例的末尾,所有函数都是作为局部函数包含的。

解决方程

最后,定义积分区间 t 0 t f 的初始值,然后利用ddensd解算器。通过在第四个输入参数的单元格数组中指定初始值,将它们传递给求解器。

Tspan = [0 0.1];y0 = 1;s1 = 2;Sol1 = ddensd(@ddefun, delay, delay, {y0,s1}, tspan);

再解一次方程,这次用的是 年代 对于初始条件。

s2 = 0.4063757399599599;Sol2 = ddensd(@ddefun, delay, delay, {y0,s2}, tspan);

策划解决方案

解决方案结构sol1sol2有足够的场地xy包含求解器在这些时间采取的内部时间步长和相应的解。金宝搏官方网站但是,您可以使用德瓦尔求特定点处解的值。

画出两种解决方案来比较结果金宝搏官方网站。

情节(sol1.x sol1.y、sol2.x sol2.y);传奇(“y”(0)= 2”“y”(0)= .40637 . .”“位置”“西北”);包含(“t”);ylabel (“解决方案y”);标题(Jacki金宝搏官方网站ewicz初始值NDDE的两种解);

Figure包含一个轴对象。标题为Jackiewicz's Initial-Value N金宝搏官方网站DDE的Two solution的轴对象包含两个类型为line的对象。这些对象表示y'(0) = 2, y'(0) = .40637…

本地函数

这里列出的是DDE求解器的本地帮助函数ddensd调用来计算解决方案。或者,您可以将这些函数作为它们自己的文件保存在MATLAB路径中的一个目录中。

函数yp = ddefun (t y所说,ypdel) yp = 2 * cos (2 * t *所说^ (2 * cos (t)) +日志(ypdel)——日志(2 * cos (t))——罪(t);结束

参考文献

中立型泛函微分方程的任意阶一步方法数值分析杂志。第21卷,第3卷。1984.486 - 511页。

另请参阅

|||

相关的话题