转自:http://blog.csdn.net/daijiangtao/article/details/46742987#t0
延迟微分方程
matlab提供了dde23求解非中性微分方程。dde23的调用格式如下:
sol = dde23(ddefun,lags,history,tspan)
lags是延迟量,比如方程中包含y1(t-0.2)和y2(t-0.3)则可以使用lags=[0.2,0.3]。
这里的ddefun必须采用如下的定义方式:
dydt = ddefun(t,y,Z)
其中的Z(:,1)就是y(t-lags(1)),Z(:,2)就是y(t-lags(2))...
下面是使用dde23求解延迟微分方程的两个例子。
第一个例子:
代码如下:
ddex1dez =
@(t,y,Z) [y(1)*(1 + 0.1*sin(t)-0.1*Z(1,1) - y(2)/(1+y(1)) );
y(2)*(
(2+sin(t))*10^(-5) + 9*Z(1,2)/(1+Z(1,2)) - Z(2,1) )];
%y(1)表示x_1(t),因为dde求解的结果中sol会有个x,为了区别用y(1)表示x_1(t);Z(1,1)表示时滞项x_1(t-0.1);Z(1,2)表示时滞项x_1(t-0.3)