matlab使用教程(35)—求解时滞微分方程(3)

1中立型 DDE

        以下示例说明如何使用 ddensd 求解中立型 DDE(时滞微分方程),其中时滞出现在导数项中。此问题最初由 Paul [1] 提出。方程是:
        由于该方程在 y ′ 项中存在时滞,因此该方程称为中立型 DDE。如果时滞仅出现在 y 项中,则根据时滞的形式,方程将是常时滞或状态依赖 DDE。要在 MATLAB® 中求解此方程,您需要先编写方程、时滞和历史解的代码,然后再调用时滞微分方程求解器 ddensd。您可以将这些作为局部函数包含在文件末尾(如本处所示),或者将它们作为单独的文件保存在 MATLAB 路径上的目录中。

1.1编写时滞代码

function dy = dely(t,y) 
 dy = t/2;
end
function dyp = delyp(t,y) 
 dyp = t-pi;
end
        在此示例中,y y ′ 分别仅有一个时滞。如果有更多时滞,则您可以将它们添加到这些相同的函数文件中,这样函数将返回向量而不是标量。

1.2编写方程代码

现在,创建一个函数来编写方程代码。此函数应具有签名 yp = ddefun(t,y,ydel,ypdel) ,其中:
function yp = ddefun(t,y,ydel,ypdel) 
 yp = 1 + y - 2*ydel^2 - ypdel;
end

1.3编写历史解代码

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

1.4 求解方程

        最后,定义积分区间 并使用 ddensd 求解器对 DDE 求解。
tspan = [0 pi];
sol = ddensd(@ddefun, @dely, @delyp, @history, [0,pi]);

1.5对解进行绘图

        解结构体 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])

1.6局部函数

        此处列出了 DDE 求解器 ddensd 为计算解而调用的局部辅助函数。您也可以将这些函数作为它们自己的文件保存在 MATLAB 路径上的目录中。
function yp = ddefun(t,y,ydel,ypdel) % equation being solved
 yp = 1 + y - 2*ydel^2 - ypdel;
end
%-------------------------------------------
function dy = dely(t,y) % delay for y
 dy = t/2;
end
%-------------------------------------------
function dyp = delyp(t,y) % delay for y'
 dyp = t-pi;
end
%-------------------------------------------
function y = history(t) % history function for t < 0
 y = cos(t);
end

2中立型的初始值 DDE

        以下示例说明如何使用 ddensd 求解具有时间依赖时滞的初始值 DDE(时滞微分方程)方程组。此示例最初由 Jackiewicz [1] 提出。
        由于方程中的时滞存在于 y 项中,因此该方程称为中立型 DDE。
        要在 MATLAB® 中求解此方程,您需要先编写方程和时滞的代码,然后调用时滞微分方程求解器ddensd,后者是中立型方程的求解器。您可以将所需的函数作为局部函数包含在文件末尾(如本处所示),或者将它们作为单独的文件保存在 MATLAB 路径上的目录中。

2.1编写时滞代码

        首先,编写一个匿名函数来定义方程中的迟滞。由于 y y′ 都有 t/2 形式的迟滞,因此只需要一个函数定 义。此时滞函数后来传递给求解器两次,一次表示 y 的时滞,一次表示 y 的时滞。
delay = @(t,y) t/2;

2.2编写方程代码

        现在,创建一个函数来编写方程代码。此函数应具有签名 yp = ddefun(t,y,ydel,ypdel) ,其中:
function yp = ddefun(t,y,ydel,ypdel) 
 yp = 2*cos(2*t)*ydel^(2*cos(t)) + log(ypdel) - log(2*cos(t)) - sin(t);
end

2.3求解方程

        最后,定义积分区间 和初始值,然后使用 ddensd 求解器求解 DDE。通过在第四个输入参数的元胞数组中指定初始值,将初始值传递给求解器。
tspan = [0 0.1];
y0 = 1;
s1 = 2;
sol1 = ddensd(@ddefun, delay, delay, {y0,s1}, tspan);
第二次求解方程,这次使用 s 的备选值作为初始条件。
s2 = 0.4063757399599599;
sol2 = ddensd(@ddefun, delay, delay, {y0,s2}, tspan);

2.4对解进行绘图

        解结构体 sol1 sol2 具有字段 x y,这些字段包含求解器在这些时间点所用的内部时间步和对应的解。但是,您可以使用 deval 计算在特定点的解。绘制两个解以比较结果。
plot(sol1.x,sol1.y,sol2.x,sol2.y);
legend('y''(0) = 2','y''(0) = .40637..','Location','NorthWest');
xlabel('Time t');
ylabel('Solution y');
title('Two Solutions of Jackiewicz''s Initial-Value NDDE');

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于SSM的基于个人需求和地域特色的外卖推荐系统(有报告)。Javaee项目。ssm项目。

演示视频&#xff1a; 基于SSM的基于个人需求和地域特色的外卖推荐系统&#xff08;有报告&#xff09;。Javaee项目。ssm项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&…

10 - 三态门和寄存器

1. 三态门 1.1 引入背景 现在我们需要封装一个单字节存储器。 Clear 清零&#xff0c;Pre 置 1&#xff0c;CP 的上升沿将输入 DI 数据写入。 问题&#xff1a;总线冲突。如果将多个存储器连到一起&#xff0c;就会出现一个输入连到多个输出发生数据冲突的问题。 需要三态门…

【单片机家电产品学习记录--红外线】

单片机家电产品学习记录–红外线 红外手势驱动电路&#xff0c;&#xff08;手势控制的LED灯&#xff09; 原理 通过红外线对管&#xff0c;IC搭建的电路&#xff0c;实现灯模式转换。 手势控制灯模式转换&#xff0c;详细说明 转载 1《三色调光LED台灯电路》&#xff0c…

计数排序解读

当我们提及排序算法时&#xff0c;通常会想到冒泡排序、选择排序、插入排序、归并排序和快速排序等经典算法。然而&#xff0c;今天我们要探讨的是一种非比较型整数排序算法——计数排序。计数排序在某些特定场景下表现出色&#xff0c;具有线性的时间复杂度。下面我们将深度剖…

SYS-2722音频分析仪SYS2722

181/2461/8938产品概述&#xff1a; Audio Precision 2722 音频分析仪是 Audio Precision 屡获殊荣的 PC 控制音频分析仪的旗舰型号&#xff0c;长期以来一直是音频设备设计和测试的全球公认标准。功能齐全的 SYS-2722 提供了测试转换器技术最新进展所需的无与伦比的失真和噪声…

NoSQL概述

NoSQL概述 目录 一、为什么用NoSQL 二、什么是NoSQL 三、经典应用分析 四、N o S Q L 数 据 模 型 简 介 五、NoSQL四大分类 六、CAP BASE 一、为什么用NoSQL 1、单机MySQL的美好年代 在90年代&#xff0c;一个网站的访问量一般不大&#xff0c;用单个数据库完全可以轻松应…

Linux离线安装python3(源码编译)

1、下载python包 下载python3.9.6的源码包 python下载 下载后&#xff0c;解压&#xff0c;目录如下&#xff1a; -rw-------. 1 root root 1454 Aug 26 2023 anaconda-ks.cfg -rw-r--r--. 1 root root 25640094 Apr 4 21:52 Python-3.9.6.tgz drwxrwxr…

搭建电商购物独立站抓取主流电商产品数据的方法:工具+电商数据采集API接口

分享一个抓取数据产品的方法&#xff0c;也是别人给我说的。 想做一个联盟产品相关的网站&#xff0c;然后需要采集电商网站的产品。咨询大佬告诉我&#xff0c;大量级电商商品数据的采集可以接入专业的电商数据采集API接口&#xff0c;也可以用webscrsper&#xff0c;于是乎就…

秒懂Springboot之如何使用logback做日志脱敏和截取

[版权申明] 非商业目的注明出处可自由转载 出自&#xff1a;shusheng007 文章目录 前言日志logback原理实现原理方案 技术总结总结源码 前言 日志的重要性无需多言&#xff0c;而数据的安全性亦不用赘述&#xff0c;但不幸的是它两常常产生矛盾。要便利就会牺牲安全&#xff0…

【MySQL】如何判断一个数据库是否出问题

在实际的应用中&#xff0c;其实大多数是主从结构。而采用主备&#xff0c;一般都需要一定的费用。 对于主备&#xff0c;如果主机故障&#xff0c;那么只需要直接将流量打到备机就可以&#xff0c;但是对于一主多从&#xff0c;还需要将从库连接到主库上。 对于切换的操作&a…

阿里云无影云电脑具体价格_4核8G和8核16G配置99元一年

2024年阿里云无影云电脑具体价格99元一年起&#xff0c;配置可选4核8G和8核16G&#xff0c;使用时长可选800小时和1800小时&#xff0c;目前有四款无影云电脑可以享受优惠价格&#xff0c;阿里云服务器网aliyunfuwuqi.com整理2024年无影云电脑详细配置和优惠价格表&#xff0c;…

ARMv8/Armv9架构中cacheable属性的介绍

快速链接: 【精选】ARMv8/ARMv9架构入门到精通-[目录] &#x1f448;&#x1f448;&#x1f448; 思考&#xff1a;在页表的Descriptors中的Lower attributes中的AttrIndx中指向的MAIR_EL1寄存器中有配置cacheable属性, 在TCR_EL1寄存器中有cacheable属性位ORGN0、IRGN0、ORGN1…

每日五道java面试题之ZooKeeper篇(三)

目录&#xff1a; 第一题. 会话管理第二题. 服务器角色第三题. Zookeeper 下 Server 工作状态第四题. 数据同步第五题. zookeeper 是如何保证事务的顺序一致性的&#xff1f; 第一题. 会话管理 分桶策略&#xff1a;将类似的会话放在同一区块中进行管理&#xff0c;以便于 Zoo…

C语言第四十弹---预处理(下)

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】 预处理 1、#和## 1.1 #运算符 1.2、##运算符 2、命名约定 3、#undef 4、命令行定义 5、条件编译 6、头文件的包含 6.1、头文件被包含的方式 6.1.1、本地…

蓝桥杯-冶炼金属(二分求最大最小)

P9240 [蓝桥杯 2023 省 B] 冶炼金属 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 二分做法&#xff1a; #include<bits/stdc.h> using namespace std; #define int long long const int N 1e410; int n,a,b; int v[N],cnt[N]; int check(int x){for(int i1;i<n;i…

硬件-1、体系架构

cpu 处理器 arm处理器的七种工作模式 arm寄存器 两张图是一样的&#xff0c;r0---r12是通用寄存器。其他寄存器可参考图一&#xff0c;cpu架构。 程序状态寄存器psr&#xff08;cpsr/spsr&#xff09; 程序异常处理 理解示例 当使用swi&#xff08;软中断指令&#xff09;指令…

RabbitMQ3.13.x之十_流过滤的内部结构设计与实现

RabbitMQ3.13.x之十_流过滤的内部结构设计与实现 文章目录 RabbitMQ3.13.x之十_流过滤的内部结构设计与实现1. 概念1. 消息发布2. 消息消费 2. 流的结构1. 在代理端进行过滤2. 客户端筛选3. JavaAPI示例4. 流过滤配置5. AMQP上的流过滤6. 总结 3. 相关链接 1. 概念 流过滤的思…

大算力芯片,正在拥抱Chiplet

随着摩尔定律走到极限&#xff0c;Chiplet被行业普遍认为是未来5年算力的主要提升技术。 在和业内人士交流时&#xff0c;有人曾表示&#xff1a;“要么业界采用Chiplet技术&#xff0c;维持摩尔定律的影响继续前进&#xff0c;要么就面临商业市场的损失。” 随着摩尔定律走到…

使用ADS确定元器件的等效感值与等效容值

使用ADS确定元器件的等效感值与等效容值 使用Win家的ADS的PDK&#xff0c;里面有一些微带电感结构&#xff0c;但是居然没有标注感值&#xff0c;给设计带来了一定的不便。 那么对于一个电路结构&#xff0c;如微带线、微带螺旋电感&#xff0c;我们如何知道其实际的感值、容…

磁盘压力测试工具(vdbenchfio)

磁盘压力测试工具&#xff08;vdbench&fio&#xff09; 最近有遇到对象挂载为文件系统的需求&#xff0c;为了测试挂载后的读写性能&#xff0c;有了解了一些测试工具。下面给大家分享下我使用的工具vdbench和fio。 1 vdbench 官网文档&#xff1a;https://www.oracle.com/…