zhong124 发表于 2010-3-1 21:07

求助一个延迟微分方程的MATLAB程序

function ddemyfun
lags=; history=; tspan=;
sol=dde23(@myddefun1,lags,history,tspan);
plot(sol.x,sol.y); xlabel('time t'); ylabel('solution y');
%%%%%%
% function
% dx(1)/dt=-k1*c*x(1)+2*k4*x(3)*(t-6.4)
%dx(4)/dt= k3*x(3)-k4*x(3)*(t-6.4)
%dx(2)/dt= k1*c*x(1)+2*k33*x(3)-k2*x(2)*x(2)
%dx(3)/dt= -(k3+k33)*x(3)+0.5*k2*x(2)*x(2)

function dxdt=myddefun1(t,x,Z)
k1=0.021; k2=2.46; k3=0.1066; k4=0.10658; k33=0.001;
c=10; xlag1=Z(:,1); xlag2=Z(:,2);
dxdt=[-k1*c*x(1)+2*k4*xlag1(1)
      k3*x(3)-k4*xlag2(2)
       k1*c*x(1)+2*k33*x(3)-k2*x(2)*x(2)
       -(k3+k33)*x(3)+0.5*k2*x(2)*x(2)    ];

[ 本帖最后由 ChaChing 于 2010-3-2 09:38 编辑 ]

ChaChing 发表于 2010-3-2 09:38

个人水平有限, 总觉得LZ似乎没说明白!?

yangzhanwen 发表于 2010-3-3 08:25

回复 楼主 zhong124 的帖子

% function
% dx(1)/dt=-k1*c*x(1)+2*k4*x(3)*(t-6.4)
%dx(4)/dt= k3*x(3)-k4*x(3)*(t-6.4)
%dx(2)/dt= k1*c*x(1)+2*k33*x(3)-k2*x(2)*x(2)
%dx(3)/dt= -(k3+k33)*x(3)+0.5*k2*x(2)*x(2)

是x(3)*(t-6.4)还是x(3)(t-6.4)

zhong124 发表于 2010-3-3 13:40

回复 板凳 yangzhanwen 的帖子

x(3)*(t-6.4)和x(3)(t-6.4) 是一样的,就是方程的这种表示,我写成了程序中的表示而已

ChaChing 发表于 2010-3-3 21:39

看看matlab自带的例子吧!
edit ddex1
页: [1]
查看完整版本: 求助一个延迟微分方程的MATLAB程序