声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1030|回复: 4

[编程技巧] 求助一个延迟微分方程的MATLAB程序

[复制链接]
发表于 2010-3-1 21:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
function ddemyfun
lags=[6.4,6.4]; history=[0,0]; tspan=[0,60];
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 编辑 ]
回复
分享到:

使用道具 举报

发表于 2010-3-2 09:38 | 显示全部楼层
个人水平有限, 总觉得LZ似乎没说明白!?
发表于 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)

评分

1

查看全部评分

 楼主| 发表于 2010-3-3 13:40 | 显示全部楼层

回复 板凳 yangzhanwen 的帖子

x(3)*(t-6.4)和x(3)(t-6.4) 是一样的,就是方程的这种表示,我写成了程序中的表示而已
发表于 2010-3-3 21:39 | 显示全部楼层
看看matlab自带的例子吧!
edit ddex1
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-22 01:40 , Processed in 0.055558 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表