时滞系统matlab仿真_时滞模型的matlab编程

时滞系统matlab仿真_时滞模型的matlab编程ddesd求解带有常规时滞的时滞微分方程(DDE)语法sol=ddesd(ddefun,delays,history,tspan)sol=ddesd(ddefun,delays,history,tspan,options)参数ddefun用于对微分方程y′(t)=f(t,y(t),y(d(1),…,y(d(k)))的右侧进行计算的函数句柄。此函数必须为以下形式:dydt=…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

ddesd

求解带有常规时滞的时滞微分方程 (DDE)

语法

sol = ddesd(ddefun,delays,history,tspan)

sol = ddesd(ddefun,delays,history,tspan,options)

参数

ddefun用于对微分方程 y′(t) = f(t,y(t),y(d(1),…,y(d(k))) 的右侧进行计算的函数句柄。此函数必须为以下形式:

dydt = ddefun(t,y,Z)

其中 t 对应当前 t,y 是一个求 y(t) 近似值的列向量,Z(:,j) 用于为以 delays(t,y) 的分量 j 形式提供的时滞 d(j) 求 y(d(j)) 近似值。输出是对应 f(t,y(t),y(d(1),…,y(d(k))) 的列向量。

delays返回时滞 d(j) 的列向量的函数句柄。时滞取决于 t 和 y(t) 两者。ddesd 通过使用 min(d(j),t) 施加 d(j) ≤ t 要求。

如果所有时滞函数都采用 d(j) = t – τj 形式,则您可以将参数 delays 设置为常向量 delays(j) = τj。有了这种形式的时滞函数,ddesd 的使用方法与 dde23 完全相同。

history按以下三种方式之一指定 history:

一个 t 函数,要求 y

= history(t) 能够将 t ≤ t0 的解 y(t) 以列向量的形式返回

一个固定列向量(如果 y(t) 为常量)

来自之前积分的解 sol(如果此调用继续该积分)

tspan从 t0=tspan(1) 到 tf=tspan(end) 的积分区间,其中 t0

< tf。

options可选积分参数。使用 ddeset 函数创建的结构体。有关详细信息,请参阅 ddeset。

说明

sol = ddesd(ddefun,delays,history,tspan) 计算 DDE 结构体

y′(t)=f(t,y(t),y(d(1)),…,y(d(k)))

在 [t0,tf] 区间上的积分,其中时滞 d(j) 取决于 t 和 y(t) 两者,且 t0 < tf。输入 ddefun 和 delays 均为函数句柄。有关详细信息,请参阅创建函数句柄。

参数化函数解释了如何为函数 ddefun、delays 和 history 提供其他参数(如果需要)。

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

yint = deval(sol,tint)

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

sol.xddesd 选择的网格

sol.ysol.x 网格点处的 y(x) 近似值。

sol.ypsol.x 网格点处的 y(x) 近似值

sol.solver求解器名称 ‘ddesd’

sol = ddesd(ddefun,delays,history,tspan,options) 的解算方法与上述方法相同,只是将默认积分属性替换为了 options(使用 ddeset 创建的参数)中的值。有关详细信息,请参阅 ddeset 和解算时滞微分方程。

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

使用 ‘Events’ 选项指定一个 ddesd 调用来找出函数 g(t、y(t)、y(d(1)),…,y(d(k))) 消失位置的函数。此函数必须为以下形式

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

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

value(k) 是第 k 个事件函数的值。

如果想要积分在此事件函数为零时终止,则 isterminal(k) = 1;否则为 0。

如果想要 ddesd 计算此事件函数的所有零,则 direction(k) = 0;如果仅计算事件函数呈上升趋势时的零,则 +1,如果仅计算事件函数呈下降趋势时的零,则 -1。

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

sol.xe包含所有事件位置的行向量,即事件函数消失的时间

sol.ye包含特定列数据的矩阵,其列值为与 sol.xe 中的时间对应的解

sol.ie索引向量,其中的索引值用于指定在 sol.xe 中的对应时间所发生的事件

示例

方程

sol = ddesd(@ddex1de,@ddex1delays,@ddex1hist,[0,5]);

使用函数 ddex1delays 指定的时滞以及 ddex1de 计算的微分方程对 [0,5] 区间上的 DDE 求解。t ≤ 0 条件下的历史记录由函数 ddex1hist 计算求得。计算时在 [0,5] 区间内放入了 100 个等间距点,以此来求解:

tint = linspace(0,5);

yint = deval(sol,tint);

同时使用以下函数绘图:

plot(tint,yint);

此问题涉及固定时滞。delay 函数的格式为

function d = ddex1delays(t,y)

%DDEX1DELAYS Delays for using with DDEX1DE.

d = [ t – 1

t – 0.2];

该问题也可以使用与固定时滞对应的语法求解

delays = [1, 0.2];

sol = ddesd(@ddex1de,delays,@ddex1hist,[0, 5]);

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

有关解时滞微分方程的更多示例,请参阅 ddex2 和 ddex3。

参考

[1] Shampine, L.F., “Solving ODEs and

DDEs with Residual Control,” Applied Numerical

Mathematics, Vol. 52, 2005, pp. 113-127.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/188616.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • roc曲线的意义_Pre / Rec / ROC / PR「建议收藏」

    roc曲线的意义_Pre / Rec / ROC / PR「建议收藏」Precision和Recall值是既矛盾又统一的两个指标,为了提高Precision值,分类器需要尽量在“更有把握”时(即,提高分类阈值!)才把样本预测为正样本,但此时往往会因为过于保守而漏掉很多“没有把握”的正样本,导致Recall值降低。ROC(ReceiverOperatorCharacteristic)曲线被广泛应用于二分类问题中来评估分类器的可信度,但是当处理一…

    2022年5月13日
    47
  • excel函数大全完整版_大学excel函数公式大全

    excel函数大全完整版_大学excel函数公式大全一、数据库和清单管理函数1、DAVERAGE【参数】返回数据库或数据清单中满足指定条件的列中数值的平均值。【语法】DAVERAGE(database,field,criteria)【参数】Databa

    2022年8月3日
    2
  • pycharm安装包出现的错误

    pycharm安装包出现的错误1,先装python,在装pycharm,将python的路径添加到电脑路径的path中2,re是python自带的库,不需要再装了3,不放在虚拟环境中,创建项目,导入包的时候都要记得放在实际的python…exe中4,当出现不是正确版本的pip时(1)可能是pip版本过低,去cmd下载(2)网络太慢,在这里我是通过pipinstallddt-ihttp://pypi.douban.com/simple/–trusted-hostpypi.douban.com豆瓣源下载的,很快

    2022年5月16日
    135
  • StringBuilder的常用方法

    StringBuilder的常用方法在程序开发过程中,我们常常碰到字符串连接的情况,方便和直接的方式是通过"+"符号来实现,但是这种方式达到目的的效率比较低,且每执行一次都会创建一个String对象,即耗时,又浪费空

    2022年7月1日
    25
  • U盘重装系统

    U盘重装系统U盘重装系统

    2022年4月24日
    38
  • pycharm版本区别_怎么看pycharm的python版本

    pycharm版本区别_怎么看pycharm的python版本1、分类:专业版是收费的Professional教育版是免费eduhttps://www.jetbrains.com/pycharm-edu/whatsnew/社区版是免费的FreeCommunity2、教育版是教学式的,更适合学生。老师可以用他创建教学,学生可以通过他完成教学作业。集成了一个python的课程学习平台,可以有题目或者新手指导学习。需要足够的英语来支…

    2022年8月27日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号