首页 > 代码库 > matlab求解时滞微分方程
matlab求解时滞微分方程
matlab求解时滞微分方程,dde23调用格式:
sol = dde23(ddefun,lags,history,tspan);
--ddefun函数句柄,求解微分方程y‘=f(t,y(t),y(t-τ1),...,y(t-τk))
必须写成下面形式:
dydt =ddefun(t,y,Z);
其中t对应当前时间t,y为列向量,近似于y(t);Z(:,j)近似于y(t-τj)
--lags为延迟时间,为正常数。
例:方程中包含y1(t-0.2)和y2(t-1),则可以表示为lags=[0.2,1]
--history t≤t0 时的状态变量的值
--tspan 积分区间 t0 = tspan(1),tf =tspan(end)。
*注意:该函数返回的sol中结构体sol.x和sol.y均为按行排列,与ode45等不同
看下面例子:
假定系统状态方程为dXdt = Ax(t) + Bx(t-0.23)+Bx(t-0.56); A=[1,-1;0,3],B =[3,5;1,4]。
程序如下:
(1) 编写延迟函数
function dx = ddefun(t,y,Z)A = [0,1;0,j];B = [0,0;-1,-3];tau1= Z(:,1);tau2= Z(:,2);v=A*y+B*ylag1;
(1) 编写主调函数
matlab求解时滞微分方程
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。