dde23:求解带有固定时滞的时滞微分方程 (DDE)。

语法

sol = dde23(ddefun,lags,history,tspan)
sol = dde23(ddefun,lags,history,tspan,options)

参数

参数 说明
ddefun 用于对微分方程 y′(t)=f(t,y(t),y(t−τ1),...,y(t−τk))y'(t)=f(t,y(t),y(t−τ_1),...,y(t−τ_k))y′(t)=f(t,y(t),y(t−τ1​),...,y(t−τk​)) 右侧进行计算的函数句柄。此函数必须为以下形式:dydt = ddefun(t,y,Z);其中 t 对应当前 t,y 是一个求 y(t) 近似值的列向量,Z(:,j) 用于为时滞 τj = lags(j) 求 y(t – τj) 的近似值。输出是对应 f(t,y(t),y(t−τ1),...,y(t−τk))f(t,y(t),y(t−τ_1),...,y(t−τ_k))f(t,y(t),y(t−τ1​),...,y(t−τk​)) 的列向量。
lags 固定正时滞向量 τ1, …, τk。
history 按以下三种方式之一指定 history:

  • 一个 t 函数,要求 y = history(t) 能够将 t ≤ t0 的解 y(t) 以列向量的形式返回
  • 一个固定列向量(如果 y(t) 为常量)
  • 来自之前积分的解 sol(如果此调用继续该积分)
tspan 从 t0=tspan(1) 到 tf=tspan(end) 的积分区间,其中 t0 < tf。
options 可选积分参数。使用 ddeset 函数创建的结构体。

说明

sol = dde23(ddefun,lags,history,tspan) 计算 DDE 结构体

y′(t)=f(t,y(t),y(t−τ1),...,y(t−τk))y'(t)=f(t,y(t),y(t−τ_1),...,y(t−τ_k))y′(t)=f(t,y(t),y(t−τ1​),...,y(t−τk​))

在 [t0,tf][t_0,t_f][t0​,tf​] 区间上的积分,其中 τ1,...,τkτ_1, ..., τ_kτ1​,...,τk​ 为固定正时滞和 t0,tft_0,t_ft0​,tf​。输入参数 ddefun 是一个函数句柄。

dde23 以结构体 sol 的形式返回解。使用辅助函数 deval 和输出 sol 来计算区间 tspan = [t0,tf] 中的特定点 tint 的解。

yint = deval(sol,tint)

dde23 返回的结构体 sol 包含下列字段。

字段 含义
sol.x dde23 选择的网格
sol.y sol.x 网格点处的 y(x) 近似值。
sol.yp sol.x 网格点处的 y(x) 近似值
sol.solver 求解器名称 ‘dde23’

sol = dde23(ddefun,lags,history,tspan,options) 的解算方法与上述方法相同,只是将默认积分属性替换为了 options(使用 ddeset 创建的参数)中的值。

常用选项包括标量相对误差容限 ‘RelTol’(默认为 e−3e^{-3}e−3)和绝对误差容限的向量 ‘AbsTol’(默认情况下,所有分量均为 e−6e^{-6}e−6)。

使用 ‘Jumps’ 选项解决历史记录或求解中的不连续问题。将此选项设置为一个包含不连续性问题位置的向量,这些不连续性位于 t0t_0t0​ 之前的求解中(历史记录),或者位于 t0t_0t0​ 之后的 ttt 已知值位置的等式系数中。

使用 ‘Events’ 选项指定一个函数,dde23 调用该函数来找出函数 g(t,y(t),y(t−τ1),...,y(t−τk))g(t,y(t),y(t−τ_1),...,y(t−τ_k))g(t,y(t),y(t−τ1​),...,y(t−τk​)) 消失位置。此函数必须为以下形式

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

并包含一个事件函数以测试每个事件。对于 events 中的第 k 个事件函数:

  • value(k) 是第 k 个事件函数的值。
  • 如果想要积分在此事件函数为零时终止,则 isterminal(k) = 1;否则为 0。
  • 如果想要 dde23 计算此事件函数的所有零,则 direction(k) = 0;如果仅计算事件函数呈上升趋势时的零,则 +1,如果仅计算事件函数呈下降趋势时的零,则 -1。

如果指定了 ‘Events’ 选项,并且检测到事件,输出结构体 sol 还包括下列字段:

字段 含义
sol.xe 包含所有事件位置的行向量,即事件函数消失的时间
sol.ye 包含特定列数据的矩阵,其列值为与 sol.xe 中的时间对应的解
sol.ie 索引向量,其中的索引值用于指定在 sol.xe 中的对应时间所发生的事件

示例

以下示例显示如何在 [0, 5] 区间上对 DDE 求解,其中 lags 为 1 和 0.2。ddex1de 函数计算时滞微分方程,ddex1hist 计算 t <= 0 的历史记录。

sol = dde23(@ddex1de,[1, 0.2],@ddex1hist,[0, 5]);

此代码在 [0,5] 的区间上以 100 个等间距点计算解,然后绘制结果。

tint = linspace(0,5);
yint = deval(sol,tint);
plot(tint,yint);

ddex1 显示如何使用局部函数解决此问题。

算法

dde23 跟踪不连续性并使用显式 Runge-Kutta (2,3) 对和插值对 ode23 求积分。它通过迭代来采用超过时滞的步长。

MATLAB 数学应用 微分方程 时滞微分方程 dde23相关推荐

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

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

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

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

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

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

  4. MATLAB 数学应用 微分方程 时滞微分方程 中立型DDE

    本文讲述了如何使用 ddensd 求解中立型DDE(时滞微分方程),其中时滞出现在导数项中. 方程是: y ′ ( t ) = 1 + y ( t ) − 2 y ( t 2 ) 2 − y ′ ( ...

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

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

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

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

  7. matlab用dde23求解带有固定时滞的时滞微分方程

    dde23函数调用方法 sol = dde23(ddefun,lags,history,tspan,options) dde23 跟踪不连续性并使用显式 Runge-Kutta (2,3) 对和插值对 ...

  8. MATLAB 数学应用 微分方程

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

  9. matlab求解时滞微分方程

    matlab求解时滞微分方程,dde23调用格式: sol = dde23(ddefun,lags,history,tspan); –ddefun函数句柄,求解微分方程y'=f(t,y(t),y(t- ...

最新文章

  1. Linux centos7安装Git及 Jenkins配置Git
  2. aop简介-基于jdk的动态代理
  3. NLayerAppV3--.net Core2实现的DDD分层架构
  4. int和Integer的比较
  5. 服务器怎么用u盘传文件进去_云服务器无法使用USB设备?一文读懂如何在云服务器上使用优盘...
  6. python模块time_python模块之time和datetime
  7. mysql-5.7.12安装
  8. gaussdb 安全维护【设置帐户权限】【02】
  9. mysql c盘满了 怎么办_C盘太满清理技巧
  10. Three.js的uv坐标贴图理解
  11. 计算机提高游戏运行速度的方法,怎么提高游戏运行速度
  12. Mac安装软件时提示已损坏的解决方法
  13. Windows系统的Chrome 调试运行在 IOS-safari (iPad/iPhone)上的页面
  14. 印度加强网络管理或部署网猫软件屏蔽Facebook
  15. 基于卷积神经网络的猫狗识别
  16. > 《物联网技术与应用》课程学习笔记
  17. 从数据库取String的值存放到Map中 按汉字首字母排序并输出
  18. 新浪微博终于完成多数ui
  19. 数学在计算机密码学中的运用,数学在密码学中的应用浅析
  20. JAR文件(文件格式)

热门文章

  1. C# 键盘中的按键对应的KeyValue
  2. SpringBoot + geotools 操作 shp文件
  3. UML 图中 包含关系和扩展关系的联系和区别
  4. html标签 补全方法 python,Python Beautiful Soup学习之HTML标签补全功能
  5. ROS自主驾驶割草机
  6. To C/To B/To G分别是什么
  7. python抓取视频中的人物动作,并生成3D的bvh
  8. 渗透中超全的Google hack语法
  9. SQL Server阻塞与锁
  10. gfsj(getit)