时滞微分方程求解_泛函微分方程内容设计

时滞微分方程求解_泛函微分方程内容设计时滞微分方程(DDE)是当前时间的解与过去时间的解相关的常微分方程。该时滞可以固定不变、与时间相关、与状态相关或与导数相关。要开始积分,通常必须提供历史解,以便求解器可以获取初始积分点之前的时间的解。常时滞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​)).此处,t为自变量,y为因变量的列向量,

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

Jetbrains全系列IDE稳定放心使用

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

常时滞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)).

此处,t 为自变量,y 为因变量的列向量,而 y′ 表示 y 关于 t 的一阶导数。时滞 τ 1 , … , τ k τ_1,…,τ_k τ1,,τk 是正常量。

dde23 函数用于求解具有历史解 y(t) = S(t)(其中 t < t0)的常时滞 DDE。

DDE 的解通常是连续的,但其导数不连续。dde23 函数跟踪低阶导数的不连续性,并使用 ode23 使用的同一显式 Runge-Kutta (2,3) 对和插值求微分方程的积分。对于大于时滞的步长而言,Runge-Kutta 公式是隐式的。当 y(t) 足够平滑以证明此大小的步长时,使用预测-校正迭代法计算隐式公式。

时间相关和状态相关的DDE

常时滞 DDE 是一种特殊情况,更为一般的 DDE 形式为:

y ′ ( t ) = f ( t , y ( t ) , y ( d y 1 ) , . . . , y ( d y p ) ) . y'(t)=f(t,y(t),y(dy_1),…,y(dy_p)). y(t)=f(t,y(t),y(dy1),...,y(dyp)).

时间相关和状态相关的 DDE 涉及可能依赖于时间 t 和状态 y 的时滞 d y 1 、 . . . 、 d y k dy_1、…、dy_k dy1...dyk。时滞 d y j ( t , y ) dy_j(t, y) dyj(t,y) 必须满足 d y j ( t , y ) ≤ t dy_j(t, y) ≤ t dyj(t,y)t(在区间 [ t 0 , t f ] [t_0, t_f] [t0,tf] 上,其中 t 0 < t f t_0 < t_f t0<tf)。

ddesd 函数用于求具有历史解 y(t) = S(t)(其中 t < t 0 t < t_0 t<t0)的时间相关和状态相关 DDE 的解 y(t)。ddesd 函数使用标准的四级、四阶显式 Runge-Kutta 法来求积分,并它控制自然插值的余值大小。它使用迭代来采用超过时滞的步长。

中立型 DDE

中立型的时滞微分方程涉及在 y ′ 以及 y 中的时滞:

y ′ ( t ) = f ( t , y ( t ) , y ( d y 1 ) , . . . , y ( d y p ) , y ′ ( d y p 1 ) , . . . , y ′ ( d y p q ) ) . y'(t)=f(t,y(t),y(dy_1),…,y(dy_p),y'(dy_{p_1}),…,y'(dy_{p_q})). y(t)=f(t,y(t),y(dy1),...,y(dyp),y(dyp1),...,y(dypq)).

解中的时滞必须满足 d y i ( t , y ) ≤ t dy_i(t,y) ≤ t dyi(t,y)t。一阶导数的时滞必须满足 d y p j ( t , y ) < t dy_{p_j}(t,y) < t dypj(t,y)<t,以便 y′ 不显示在方程两端。

ddensd 函数使用时间相关和状态相关 DDE 来逼近中立型 DDE,从而对其求解:

y ′ ( t ) = f ( t , y ( t ) , y ( d y 1 ) , . . . , y ( d y p ) ) . y'(t)=f(t,y(t),y(dy_1),…,y(dy_p)). y(t)=f(t,y(t),y(dy1),...,y(dyp)).

计算特定点的解

使用 deval 函数和任何 DDE 求解器的输出来计算积分区间中的特定点处的解。例如,y = deval(sol, 0.5*(sol.x(1) + sol.x(end))) 计算积分区间中点处的解。

历史解和初始值

对 DDE 求解时,将在区间 [t0,tf](其中 t0 < tf)上来逼近解。DDE 表明 y(t) 如何依赖于 t 之前的时间的解(及其可能的导数)的值。例如,具有常时滞时,y ′(t0) 依赖于 y(t0 – τ1),…,y(t0 – τk),其中 τj 为正常量。因此,[t0, tk] 上的解依赖于其在 t ≤ t0 处具有的值。必须使用历史解函数 y(t) = S(t)(其中 t <t0)定义这些值。

DDE 中的不连续性

如果问题具有不连续性,最好使用 options 结构体将其传递给求解器。为此,请使用 ddeset 创建一个 options 结构体以包含问题中的不连续性。

options 结构体中有三个属性可用于指定不连续性;InitialY、Jumps 和 Events。选择的属性取决于不连续性的位置和特性。

不连续性的特性 属性 注释
在初始值 t = t0 处 InitialY 初始值 y(t0) 通常是历史解函数返回的值 S(t0),也就是说,解在初始点连续。如果不属于此种情况,请使用 InitialY 属性提供一个不同的初始值。
在历史解(即 t <t0 的解)或在 t >t0 的方程系数中 Jumps 在向量中提供不连续处的已知位置 t,以作为 Jumps 属性的值。仅适用于 dde23。
与状态相关 Events dde23、ddesd 和 ddensd 使用您提供的事件函数来查找这些不连续的位置。当求解器查找这种不连续的位置时,请重新启动积分以便继续。将当前积分的解结构体指定为新积分的历史解。求解器在每次重新启动之后扩展解结构体的每个元素,以使最终结构体为整个积分区间提供解。如果新问题与解变化相关,请使用 InitialY 属性指定新集成的初始值。

不连续性传播

通常,解的一阶导数在初始点处具有跳跃性。这是因为历史解函数 S(t) 的一阶导数通常在此点处不满足 DDE。当时滞为常量时,则 y(t) 的任何导数中的以间距 τ1,…, τk 传播不连续点。如果时滞不为常量,则不连续性的传播更复杂。对于 常时滞 DDE 或 时间相关和状态相关的 DDE 形式的中立型 DDE,每次传播时,不连续性会出现在高一阶的导数中。在这种意义上,解会随着积分的进行而变得更圆滑。中立型 DDE 中指定的形式的中立型 DDE 的解在性质上不同。解的不连续性不会传播到高阶的导数。特别是,y′(t) 中 t 0 t_0 t0 处的典型跳跃作为 y′(t) 中的跳跃传播到整个 [ t 0 , t f ] [t_0, t_f] [t0,tf]

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/187170.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • sed替换最后一个匹配_ppt占位符设置

    sed替换最后一个匹配_ppt占位符设置json字符串处理

  • mybatis插件原理_idea插件库

    mybatis插件原理_idea插件库Mybatis插件插件简介一般情况下,开源框架都会提供插件或其他形式的拓展点,供开发者自行拓展。这样的好处是显而易见的,一是增加了框架的灵活性。二是开发者可以结合实际需求,对框架进行拓展,使其能够更好的工作。以MyBatis为例,我们可基于MyBatis插件机制实现分页、分表,监控等功能。由于插件和业务无关,业务也无法感知插件的存在。因此可以无感植入插件,在无形中增强功能Mybatis插件介绍Mybatis作为一个应用广泛的优秀的ORM开源框架,这个框架具有强大的灵活性,在四大组件(Executo

  • InputStream read()方法详解「建议收藏」

    InputStream read()方法详解「建议收藏」在Java7中,InputStream被定义为一个抽象类,相应的,该类下的read()方法也是一个抽象方法,这也就意味着必须有一个类继承InputStream并且实现这个read方法。查阅Java7API,我们可以看到,在InputStream中定义了三个重载的read()方法:但是在这三个方法中,只有参数列表为空的read方法定义为抽象方法,这也就意味着在直接继承自InputStre

  • docker镜像的导出与导入「建议收藏」

    docker镜像的导出与导入「建议收藏」内网干活的忧桑大概就是偷点懒,使用docker镜像,dockerfile中使用的镜像内网中却没法down下来,so….找个外网机,先把需要的镜像下载下来,再将下载好的镜像载入到内网机。通过查资料,docker镜像的导入导出命令有save,load,export,import;其中save保存的是镜像,load加载的是镜像包(不能对镜像重命名);export保存的是容器,import载入的是容器包,可以为镜像指定新名称。同时,export导出的文件再…

  • shiro安全框架面试题_java分布式锁面试题

    shiro安全框架面试题_java分布式锁面试题shiro安全框架1.shiro可以完成哪些工作?shiro可以帮助我们完成:认证、授权、加密、会话管理、与Web集成、缓存等2.ApacheShiro的三大核心组件a、Subject:当前用户的操作b、SecurityManager:用于管理所有的Subjectc、Realms:用于进行权限信息的验证3.shiro有哪些组件?a、Authentication:身份认证/登录,验证用户是不是拥有相应的身份;b、Authorization:授权,即权限验证,验证某.

    2022年10月14日
  • Linux下7z文件解压

    Linux下7z文件解压安装:apt-getinstallp7zip-full解压实例:7zxfilename.7z

发表回复

您的电子邮箱地址不会被公开。

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