码迷,mamicode.com
首页 > 其他好文 > 详细

matlab求解时滞微分方程

时间:2014-09-05 16:03:31      阅读:291      评论:0      收藏:0      [点我收藏+]

标签:blog   io   div   cti   sp   log   on   c   时间   

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求解时滞微分方程

标签:blog   io   div   cti   sp   log   on   c   时间   

原文地址:http://www.cnblogs.com/rainrainbow/p/3958132.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!