本文讲述了如何使用 ddensd 求解中立型DDE(时滞微分方程),其中时滞出现在导数项中。

方程是:

y ′ ( t ) = 1 + y ( t ) − 2 y ( t 2 ) 2 − y ′ ( t − π ) y'(t) = 1 + y(t) -2y(\dfrac{t}{2})^2 - y'(t-π) y′(t)=1+y(t)−2y(2t​)2−y′(t−π)。

在 t ≤ 0 t≤0 t≤0 时,历史解函数是 y ( t ) = c o s ( t ) y(t)=cos(t) y(t)=cos(t)。

由于该方程在 y ′ y' y′ 项中存在时滞,因此该方程称为中立型 DDE。如果时滞仅出现在 项中,则根据时滞的形式,方程将是常时滞或状态相关 DDE。

要在 MATLAB 中求解此方程,您需要先编写方程、时滞和历史解的代码,然后再调用时滞微分方程求解器 ddensd。您可以将这些作为局部函数包含在文件末尾,或者将它们作为单独的文件保存在 MATLAB 路径上的目录中。

编写时滞代码

首先,编写函数来定义方程中的时滞。方程中具有时滞的首项是 。

function dy = dely(t,y) dy = t/2;
end

方程中具有时滞的另一个项是 。

function dyp = delyp(t,y) dyp = t-pi;
end

在此示例中, y y y 和 y ′ y' y′ 分别仅有一个时滞。如果有更多时滞,则您可以将它们添加到这些相同的函数文件中,这样函数将返回向量而不是标量。

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

编写方程代码

现在,创建一个函数来编写方程代码。此函数应具有签名 yp = ddefun(t,y,ydel,ypdel),其中:

  • t 是时间(自变量)。
  • y 是解(因变量)。
  • ydel 包含 的时滞。
  • ypdel 包含 的时滞。

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

  • y d e l → y ( t 2 ) ydel   →  y(\dfrac{t}{2}) ydel   →  y(2t​)

  • y p d e l → y ′ ( t − π ) ypdel   → y'(t−π)  ypdel   →y′(t−π) 

function yp = ddefun(t,y,ydel,ypdel) yp = 1 + y - 2*ydel^2 - ypdel;
end

编写历史解代码

接下来,创建一个函数来定义历史解。历史解是时间 的解。

function y = history(t)y = cos(t);
end

求解方程

最后,定义积分区间 [ t 0 t f ] [t_0 t_f] [t0​tf​] 并使用 ddensd 求解器对 DDE 求解。

tspan = [0 pi];
sol = ddensd(@ddefun, @dely, @delyp, @history, [0,pi]);

对解进行绘图

解结构体 sol 具有字段 sol.x 和 sol.y,这两个字段包含求解器在这些时间点所用的内部时间步和对应的解。但是,您可以使用 deval 计算在特定点的解。

在 0 和 pi 之间以 20 个等距点计算解。

tn = linspace(0,pi,20);
yn = deval(sol,tn);

绘制计算解和历史解对解析解的图。

th = linspace(-pi,0);
yh = history(th);
ta = linspace(0,pi);
ya = cos(ta);plot(th,yh,tn,yn,'o',ta,ya)
legend('History','Numerical','Analytical','Location','NorthWest')
xlabel('Time t')
ylabel('Solution y')
title('Example of Paul with 1 Equation and 2 Delay Functions')
axis([-3.5 3.5 -1.5 1.5])

局部函数

此处列出了 DDE 求解器 ddensd 为计算解而调用的局部辅助函数。您也可以将这些函数作为它们自己的文件保存在 MATLAB 路径上的目录中。

function yp = ddefun(t,y,ydel,ypdel) yp = 1 + y - 2*ydel^2 - ypdel;
end
%-------------------------------------------
function dy = dely(t,y) % delay for ydy = t/2;
end
%-------------------------------------------
function dyp = delyp(t,y) % delay for y'dyp = t-pi;
end
%-------------------------------------------
function y = history(t) % history function for t < 0y = cos(t);
end
%-------------------------------------------

MATLAB 数学应用 微分方程 时滞微分方程 中立型DDE相关推荐

  1. MATLAB 数学应用 微分方程 时滞微分方程 中立型的初始值DDE

    本文讲述了如何使用 ddensd 求解具有时间相关时滞的初始值 DDE(时滞微分方程)方程组. 方程是: y ′ ( t ) = 2 c o s ( 2 t ) y ( t 2 ) 2 c o s ( ...

  2. MATLAB 数学应用 微分方程 时滞微分方程 解算时滞微分方程

    时滞微分方程 (DDE) 是当前时间的解与过去时间的解相关的常微分方程.该时滞可以固定不变.与时间相关.与状态相关或与导数相关.要开始积分,通常必须提供历史解,以便求解器可以获取初始积分点之前的时间的 ...

  3. MATLAB 数学应用 微分方程 时滞微分方程

    时滞微分方程包含的项的值依赖于先前时间的解.时滞可以固定不变.与时间相关或与状态相关,而求解器函数(dde23.ddesd 或 ddensd)的选择取决于方程中的时滞类型.通常,时滞将导数的当前值与某 ...

  4. MATLAB 数学应用 微分方程 时滞微分方程 具有常时滞的DDE

    本文讲述了如何使用 dde23 对具有常时滞的DDE(时滞微分方程)方程组求解. 方程组为: y 1 ′ ( t ) = y 1 ( t − 1 ) y'_1(t)=y_1(t−1) y1′​(t)= ...

  5. MATLAB 数学应用 微分方程 时滞微分方程 具有不连续性的心血管模型DDE

    本文讲述了如何使用 dde23 对具有不连续导数的心血管模型求解. 方程组为: P ˙ a ( t ) = − 1 c a R P a ( t ) + 1 c a R P v ( t ) + 1 c ...

  6. MATLAB 数学应用 微分方程 时滞微分方程 dde23

    dde23:求解带有固定时滞的时滞微分方程 (DDE). 语法 sol = dde23(ddefun,lags,history,tspan) sol = dde23(ddefun,lags,histo ...

  7. matlab中dde23求解时滞微分方程

    微分方程求解在工科生这里想必不那么陌生吧,在科研中,求解微分方程是家常便饭.对于微分方程求解,大家首先可能想到的是常用的ode45,ode45适用性很强,不过我这里讲的是dde23. 首先有这么一个时 ...

  8. Matlab求解中性类型的时滞微分方程组-中性类型的时滞微分方程

    (1)中性类型的时滞微分方程: 满足上面形式的微分方程,也就是说微分方程的右边还要包含"时滞部分的导数". (2)使用ddensd函数求解:函数形式 函数说明:ddefun是微分方 ...

  9. MATLAB 数学应用 微分方程

    本文演示了如何使用 MATLAB 构造几种不同类型的微分方程并求解.MATLAB 提供了多种数值算法来求解各种微分方程: 初始值问题 边界值问题 时滞微分方程 偏微分方程 初始值问题 vanderpo ...

最新文章

  1. 解决MYSQL大表问题-实战篇(二)
  2. 通过bootstrap来学习less
  3. 【uni-app】rich-text 无法处理 video 的解决办法
  4. leetcode 752. Open the Lock | 752. 打开转盘锁(BFS)
  5. BZOJ 3112 Zjoi2013 防守战线 单纯形
  6. 16-Flutter移动电商实战-切换后页面状态的保持AutomaticKeepAliveClientMixin
  7. IntelliJ IDEA汉化版jar包
  8. Scrapy爬虫笔记
  9. Python(6)-文件和异常
  10. 贵安新区生物医学大数据中心揭牌成立
  11. javascript的caller,callee,call,apply
  12. 嵌入式Linux开发板移植SSH
  13. Java习题集第三章Java程序设计基础
  14. 窥探PTAM之模板搜索
  15. 漏洞复现之(MS17-010)
  16. word里画的流程图怎么全选_word画流程图 Word中绘制流程图的正确姿势,这招大多数人不知道...
  17. android root测试,android检测是否已经具有root权限
  18. 四川大学计算机学院软件工程期末,2015四川大学软件工程期末复习.doc
  19. 上楼梯的走法 ← 递归
  20. UE4 FlipFlop的使用

热门文章

  1. java和php哪个容易学?
  2. 靶中化合物设计/靶点及信号通路验证之酶抑制剂靶点预测
  3. 程序开发心理学(银年纪念版)(经典重读,与温伯格大师的思想共舞)
  4. GD32F470系列-CAN配置(500K,90%采样点)
  5. python openpyxl写入多行_MemoryError使用openpyxl写入500k +行
  6. 股票、期货及A股行情股票交易接口api
  7. 携程千人规模团队研发效能提升实践
  8. excel转csv操作
  9. iPhone升级到ios5收不到电话和短信的解决方法
  10. eclipse大小写转换快捷键