matlab用dde23求解带有固定时滞的时滞微分方程
dde23函数调用方法
sol = dde23(ddefun,lags,history,tspan,options)
dde23 跟踪不连续性并使用显式 Runge-Kutta (2,3) 对和插值对 ode23 求积分。它通过迭代来采用超过时滞的步长。
举例:
t≤0 的历史解函数是常量 y1(t)=y2(t)=y3(t)=1。
方程中的时滞仅存在于 y 项中,并且时滞本身是常量,因此各方程构成常时滞方程组。
要在 MATLAB 中求解此方程组,需要先编写方程组、时滞和历史解的代码,然后再调用时滞微分方程求解器 dde23,该求解器适用于具有常时滞的方程组。可以将所需的函数作为局部函数或者将它们作为单独的命名文件保存在 MATLAB 路径上的目录中。
编写时滞代码
首先,创建一个向量来定义方程组中的时滞。此方程组有两种不同时滞:
在第一个分量 y1(t−1) 中时滞为 1。
在第二个分量 y2(t−0.2) 中时滞为 0.2。
dde23 接受时滞的向量参数,其中每个元素是一个分量的常时滞。
lags = [1 0.2];
编写方程代码
现在,创建一个函数来编写方程的代码。此函数应变换为这种格式:
dydt = ddefun(t,y,Z)
其中:
t 是时间(自变量)。
y 是解(因变量)。
Z(:,j) 用于逼近时滞 y(t−τj),其中常时滞 τj 由 lags(j) 给定。
求解器会自动将这些输入传递给该函数,但是变量名称决定如何编写方程代码。在这种情况下:
Z(:,1) → y1(t−1)
Z(:,2) → y2(t−0.2)
function dydt = ddefun(t,y,Z)
ylag1 = Z(:,1);
ylag2 = Z(:,2);
dydt = [ylag1(1); ylag1(1)+ylag2(2); y(2)];
end
编写历史解代码
接下来,创建一个函数来定义历史解。历史解是时间 t≤t0 的解。
function s = history(t)
s = ones(3,1);
end
求解方程
最后,定义积分区间 [t0 tf] 并使用 dde23 求解器对 DDE 求解。
tspan = [0 5];
sol = dde23(@ddefun, lags, @history, tspan);
对解进行绘图
求解的结构体 sol 具有字段 sol.x 和 sol.y,这两个字段包含求解器在这些时间点所用的内部时间步和对应的解。绘制三个解分量对时间的图。
plot(sol.x,sol.y,'-o')
xlabel('Time t');
ylabel('Solution y');
legend('y_1','y_2','y_3','Location','NorthWest');
matlab用dde23求解带有固定时滞的时滞微分方程相关推荐
- matlab中dde23求解时滞微分方程
微分方程求解在工科生这里想必不那么陌生吧,在科研中,求解微分方程是家常便饭.对于微分方程求解,大家首先可能想到的是常用的ode45,ode45适用性很强,不过我这里讲的是dde23. 首先有这么一个时 ...
- matlab ddesd,求解带有常规时滞的时滞微分方程 (DDE)
ddesd 求解带有常规时滞的时滞微分方程 (DDE) 语法 sol = ddesd(ddefun,delays,history,tspan) sol = ddesd(ddefun,delays,hi ...
- Matlab非线性规划——求解周长固定四边形的最大面积
问题提出: 已知四边形的周长固定为4cm,四边形边长为a,b,c,d,对角线长度为x.求四边形面积最大时的每一条边长和面积.编写MATLAB程序进行求解. 问题分析: 四边形ABCD问题可将其划分为
- Matlab非线性规划——求解周长固定三角形的最大面积
问题提出: 已知三角形的周长固定为3cm,求三角形面积最大时的每一条边长和面积.编写MATLAB程序进行求解. 问题分析: 我们假设边长分别为a,b,c,a+b+c=3,面积为S,三角形面积求法为: ...
- matlab解带约束线性方程,Matlab求解带有约束条件的线性方程组
研究了一会solve函数,发现Matlab对于带有约束条件的线性方程组可以用solve函数解答. 关于solve函数的全部用法,可以参考博客https://blog.csdn.net/ldj1208/ ...
- matlab二元一次方程求解_2-函数的求解计算
一.本期介绍函数的求解有两种 (1)已知x求y (2)已知y求x 1.1已知x求y 回想我们上一期,讲了多项式求解的方法,也是已知x求y.想一下,多项式不也是函数的一种吗,所以本期求解的方法同样适用于 ...
- MATLAB实现分支定界法求解整数规划
利用MATLAB实现分支定界法求解整数规划 classdef Model < matlab.mixin.CopyablepropertiesintconlbubsolverAineqbineqA ...
- MATLAB麻雀搜索算法求解物流配送中心选址问题实例代码
实例视频: MATLAB麻雀搜索算法求解物流配送中心选址问题优化实例 1.问题描述 根据目前已知所需客户点位置.备选中心位置和客户需求货物的前提下,指定选址位置,合理设计配送路线,使运输成本趋于最小化 ...
- matlab两个多项式相除,C++和MATLAB混合编程求解多项式系数(矩阵相除)
摘要:MATLAB对于矩阵处理是非常高效的,而C++对于矩阵操作是非常麻烦的,因而可以采用C++与MATLAB混合编程求解矩阵问题. 主要思路就是,在MATLAB中编写函数脚本并使用C++编译为dll ...
最新文章
- Spring配置JDBC连接Orcale、MySql、sqlserver
- 现代软件工程 第七章 【MSF】练习与讨论
- python与c语言在语法上的区别-C语言和Python编程先学习哪个
- Linux目录配置及应放置的内容
- 怎能错过这个技术集市!转发有奖,惊喜连连!
- Internal Error 2738 - Installing ArcGIS Server 9.3,10 for Java
- 要“牵手”了?抖音和腾讯商谈对等开放 腾讯火速回应
- 英伟达推出全新DPU处理器 透露未来三年DPU发展路线图
- d. powerful ksenia_DEBON D.D |这才是每个女人应该拥有的
- vision画流程图的软件_流程图制作软件visio|流程图制作软件visio vs2010 中文版 - 软件下载 - 绿茶软件园|33LC.com...
- 【2022年】安装vm虚拟机unbuntu 服务器版
- The Last Non-zero Digit
- dump和coredump
- aes在tomcat解密中文乱码,在控制台解密中文不是乱码
- php外边距的代码,外边距简写属性 margin
- C/C++模拟按键按下弹起
- 会计软件遭黑客攻击,QuickBooks数据盗窃现象大幅增加
- 明解C语言 入门 课后习题练习答案 第二章
- cv2.rectangle()
- 【Dell PowerEdge T640 无法适配3090引起的噪声问题的解决】