matlab使用教程(33)—求解时滞微分方程(1)

news2024/11/16 15:44:36

1.时滞微分方程(DDE)的分类

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

1.1常时滞 DDE

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

1.2时间相关和状态相关的 DDE

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

1.3 中立型 DDE

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

2求解DDE的方法

2.1计算特定点的解

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

2.2历史解和初始值

2.3DDE 中的不连续性

        如果问题具有不连续性,最好使用 options 结构体将其传递给求解器。为此,请使用 ddeset 创建一个options 结构体以包含问题中的不连续性。
        options 结构体中有三个属性可用于指定不连续性; InitialY Jumps Events。选择的属性取决于不连续性的位置和特性。

3. 常时滞 DDE求解示例

        以下示例说明如何使用 dde23 对具有常时滞的 DDE(时滞微分方程)方程组求解。
        方程组为:
        方程中的时滞仅存在于 y 项中,并且时滞本身是常量,因此各方程构成常时滞方程组。 要在 MATLAB® 中求解此方程组,您需要先编写方程组、时滞和历史解的代码,然后再调用时滞微分方程求解器 dde23,该求解器适用于具有常时滞的方程组。您可以将所需的函数作为局部函数包含在文件末尾(如本处所示),或者将它们作为单独的命名文件保存在 MATLAB 路径上的目录中。

3.1编写时滞代码

        首先,创建一个向量来定义方程组中的时滞。此方程组有两种不同时滞:
dde23 接受时滞的向量参数,其中每个元素是一个分量的常时滞。
lags = [1 0.2];

3.2 编写方程代码

        现在,创建一个函数来编写方程的代码。此函数应具有签名 dydt = ddefun(t,y,Z) ,其中:
function dydt = ddefun(t,y,Z)
 ylag1 = Z(:,1);
 ylag2 = Z(:,2);
 dydt = [ylag1(1); 
 ylag1(1)+ylag2(2); 
 y(2)];
end

3.3编写历史解代码

        接下来,创建一个函数来定义历史解。历史解是时间 t t 0 的解。
function s = history(t)
 s = ones(3,1);
end

3.4求解方程

        最后,定义积分区间 [t 0, t f ] 并使用 dde23 求解器对 DDE 求解。
tspan = [0 5];
sol = dde23(@ddefun, lags, @history, tspan);

3.5对解进行绘图

        解结构体 sol 具有字段 sol.x sol.y,这两个字段包含求解器在这些时间点所用的内部时间步和对应的解。(如果您需要在特定点的解,可以使用 deval 来计算在特定点的解。)绘制三个解分量对时间的图。
plot(sol.x,sol.y,'-o')
xlabel('Time t');
ylabel('Solution y');
legend('y_1','y_2','y_3','Location','NorthWest');

3.6 局部函数

        此处列出了 DDE 求解器 dde23 为计算解而调用的局部辅助函数。您也可以将这些函数作为它们自己的文件保存在 MATLAB 路径上的目录中。
function dydt = ddefun(t,y,Z) % equation being solved
 ylag1 = Z(:,1);
 ylag2 = Z(:,2);
 dydt = [ylag1(1); 
 ylag1(1)+ylag2(2); 
 y(2)];
end
%-------------------------------------------
function s = history(t) % history function for t <= 0
 s = ones(3,1);
end

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1568157.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

二维动画制作软件 Animate 2024 for mac激活版

Animate 2024 for Mac是一款功能强大的二维动画制作软件&#xff0c;专为Mac用户打造。它提供了丰富的动画编辑功能&#xff0c;使用户能够轻松创建出生动逼真的动画作品。无论是短片、广告还是游戏等应用领域&#xff0c;Animate 2024都能发挥出出色的表现。 软件下载&#xf…

ArcGIS Pro导出布局时去除在线地图水印

目录 一、背景 二、解决方法 一、背景 在ArcGIS Pro中经常会用到软件自带的在线地图&#xff0c;但是在导出布局时&#xff0c;图片右下方会自带地图的水印 二、解决方法 解决方法&#xff1a;添加动态文本--服务图层制作者名单&#xff0c;然后在布局中选定位置添加 在状…

基于 Docker 的 python grpc quickstart

工作之后一直使用的 RPC 框架是 Apache 的 thrift&#xff0c;现在发现 grpc 更流行&#xff0c;所以也要学习一下&#xff0c;先来简单的跑一下 demo。在本地安装运行也很方便&#xff0c;不过因为有了 docker&#xff0c;所以在 docker 里面安装运行隔离性更好&#xff0c;顺…

多线程--深入探究多线程的重点,难点以及常考点线程安全问题

˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好&#xff0c;我是xiaoxie.希望你看完之后,有不足之处请多多谅解&#xff0c;让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN 如…

【机器学习】K-近邻算法(KNN)介绍、应用及文本分类实现

一、引言 1.1 K-近邻算法&#xff08;KNN&#xff09;的基本概念 K-近邻算法&#xff08;K-Nearest Neighbors&#xff0c;简称KNN&#xff09;是一种基于实例的学习算法&#xff0c;它利用训练数据集中与待分类样本最相似的K个样本的类别来判断待分类样本所属的类别。KNN算法…

STM32工程 如何设置堆栈大小(Heap和Stack)

方法1&#xff1a;通过CubeMX、CubeIDE 配置 方法2&#xff1a;直接在启动文件中修改 &#xff08;适合所有Keil工程&#xff09; Heap、Stack的值大小&#xff0c;不管使用哪种开发环境&#xff0c;它俩都肯定在启动文件中。 可以通过CtrlF&#xff0c;搜索: Heap&#xff0…

iOS开发之Swift标识符

iOS开发之Swift标识符 在iOS开发中&#xff0c;使用Swift语言时&#xff0c;标识符是用来命名变量、常量、函数、类、结构体、枚举等程序实体的&#xff1b; 这些标识符使得Swift代码更加清晰、易于理解和维护。 一、变量与常量&#xff1a;var、let var代表variable&#…

算法练习—day1

title: 算法练习—day1 date: 2024-04-03 21:49:55 tags: 算法 categories:LeetCode typora-root-url: 算法练习—day1 网址&#xff1a;https://red568.github.io 704. 二分查找 题目&#xff1a; 题目分析&#xff1a; 左右指针分别为[left,right]&#xff0c;每次都取中…

X86平台下Linux系统安装部署KVM,以及KVM一些配置

环境&#xff1a;银河麒麟SP1-V2303系统&#xff0c;X86架构&#xff0c;目标虚拟机为win10 一、安装 1.APT源安装 sudo apt install qemu qemu-kvm bridge-utils virt-manager libguestfs-tools qemu-system qemu-efi qemu-utils libvirt-clients libvirt-daemon-system …

Centos7安装Docker与Docker-compose【图文教程】

个人记录 查看一下系统是否已经安装了Docker yum list installed | grep docker如下图代表没有安装Docker 卸载已有Docker yum remove docker docker-common docker-selinux docker-engine切换目录 cd /etc/yum.repos.d/查看当前目录所有的镜像源 ll安装yum-util与devi…

去班味的尽头是风险管理

运维工程师的“班味”是从风险管理就加重的。 什么是班味呢&#xff1f;指的是打工人身上特有的疲惫气质&#xff0c;面色憔悴、双目无神和腰酸背痛都是“班味”的显著表现。习惯性回复“收到&#xff0c;马上来”、不自觉唉声叹气、下班也提不起精神等症状&#xff0c;则说明…

GIS水文分析计算流向学习

1 初步操作 流向&#xff0c;即水文表面水的流向&#xff1b; 水文分析的很多功能需要基于流向栅格&#xff1b; 在 SuperMap 中&#xff0c;对中心栅格的8个邻域栅格进行编码&#xff1b; 每一个中心栅格的水流方向都由这八个值中的某一个值来确定&#xff1b; 我还没弄懂水…

Linux------一篇博客了解Linux最常用的指令

&#x1f388;个人主页&#xff1a;靓仔很忙i &#x1f4bb;B 站主页&#xff1a;&#x1f449;B站&#x1f448; &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 &#x1f917;收录专栏&#xff1a;Linux &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#…

2012年认证杯SPSSPRO杯数学建模C题(第一阶段)碎片化趋势下的奥运会商业模式全过程文档及程序

2012年认证杯SPSSPRO杯数学建模 C题 碎片化趋势下的奥运会商业模式 原题再现&#xff1a; 从 1984 年的美国洛杉矶奥运会开始&#xff0c;奥运会就不在成为一个“非卖品”&#xff0c;它在向观众诠释更高更快更强的体育精神的同时&#xff0c;也在攫取着巨大的商业价值&#…

《C++程序设计》阅读笔记【1-函数】

&#x1f308;个人主页&#xff1a;godspeed_lucip &#x1f525; 系列专栏&#xff1a;《C程序设计》阅读笔记 本文对应的PDF源文件请关注微信公众号程序员刘同学&#xff0c;回复C程序设计获取下载链接。 1 函数1.1 概述1.2 函数定义、声明、原型1.3 变量1.3.1 全局变量1.3.…

【THM】Nmap Post Port Scans(后端口扫描)-初级渗透测试

介绍 本房间是 Nmap 系列的最后一个(网络安全简介模块的一部分)。在这个房间中,我们重点关注端口扫描之后的步骤:特别是服务检测、操作系统检测、Nmap脚本引擎和保存扫描结果。 Nmap实时主机发现Nmap基本端口扫描Nmap高级端口扫描Nmap后端口扫描在本系列的第一个房间中,我…

保持ssh断开后,程序不会停止执行

保持ssh断开后&#xff0c;程序不会停止执行 一、前言 笔者做远程部署搞了一阵子&#xff0c;快结项时发现一旦我关闭了ssh连接窗口&#xff0c;远程服务器会自动杀掉我在ssh连接状态下运行的程序。 这怎么行&#xff0c;岂不是想要它一直运行还得要一台电脑一直打开ssh连接咯…

基于STM32+VS1053B的MP3设计

目录 一、整体介绍 二、模块介绍 1. stm32主控 2. VS1053B音频解码 3. 按键 4. OLED显示 三、程序代码&#xff1a; 资料下载地址&#xff1a;基于STM32VS1053B的MP3设计 一、整体介绍 话不多说&#xff0c;先看看整体原理图&#xff1a; 制作出来的实…

vulnhub----natraj靶机

文章目录 一.信息收集1.网段探测2.端口扫描3.版本服务探测4.漏扫5.目录扫描 二.漏洞利用1.分析信息2..fuzz工具 三.getshell四.提权六.nmap提权 一.信息收集 1.网段探测 因为使用的是VMware&#xff0c;靶机的IP地址是192.168.9.84 ┌──(root㉿kali)-[~/kali/vulnhub] └─…

嵌入式|蓝桥杯STM32G431(HAL库开发)——CT117E学习笔记14:PWM捕获

系列文章目录 嵌入式|蓝桥杯STM32G431&#xff08;HAL库开发&#xff09;——CT117E学习笔记01&#xff1a;赛事介绍与硬件平台 嵌入式|蓝桥杯STM32G431&#xff08;HAL库开发&#xff09;——CT117E学习笔记02&#xff1a;开发环境安装 嵌入式|蓝桥杯STM32G431&#xff08;…