| 查看: 3235 | 回复: 21 | |||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | |||
[交流]
【求助】向各位大侠求助matlab求解微分方程组遇到的一个问题 已有7人参与
|
|||
|
向各位大侠求助matlab求解微分方程组遇到的一个问题: 假设有以下的微分方程组 u'(t)=-a*f1(t)*y(t); v'(t)=-b*v(t)+a*f1(t)*y(t); w'(t)=b*v(t); x'(t)=-a*f2(t)*v(t)+a*f1(t)*y(t)+a*f3(t)*y(t)+c*y(t); y'(t)= a*f2(t)*v(t) - a*f1(t)*y(t) - a*f3(t)*y(t) - c*y(t); 其中 f1(t)=0 if u(t)=0 =1 if u(t)>0; f2(t)=0 if x(t)=0 =1 if x(t)>0; f3(t)=0 if v(t)=0 =1 if v(t)>0; a=1;b=0.1;c=0.5; 且u(0)=1000;v(0)=1;w(0)=0;x(0)=200;y(0)=0.现在要得到各函数随t的变化曲线,如果微分方程组中没有f1(t),f2(t),f2(t)这三个方程,那么在matlab中可以直接用ode来得到,但是现在有这三个方程,我就没办法了,试了好几种方法都没用,想请教各位高手,在matlab下怎么才能求解这个方程? [ Last edited by ybnav on 2011-3-11 at 22:27 ] |
» 猜你喜欢
26年申博自荐-计算机视觉
已经有4人回复
考博
已经有4人回复
药化及相关博士的申请
已经有3人回复
一篇MDPI论文改变了学习工作和生活
已经有4人回复
一个化合物的合成路线:CAS:367929-02-0 名称:8β-乙烯基雌二醇
已经有4人回复
太白金星有点烦
已经有3人回复
中国地质大学(北京)博士招生补录,数理学院材料科学与工程专业和材料与化工专业
已经有3人回复
收到国自然专家邀请后几年才会有本子送过来评
已经有3人回复
有没有快的中文核心比较快录用的,纳米材料光催化
已经有4人回复
信彼南山
木虫 (著名写手)
- 应助: 33 (小学生)
- 金币: 4142.9
- 散金: 1221
- 红花: 16
- 帖子: 1178
- 在线: 233.5小时
- 虫号: 1133529
- 注册: 2010-10-27
- 专业: 导航、制导与传感技术
18楼2011-03-12 15:17:23
★
小木虫(金币+0.5):给个红包,谢谢回帖交流
小木虫(金币+0.5):给个红包,谢谢回帖交流
|
把你的函数贴出来,我稍改改就可以求解了。 或者参考:http://muchong.com/bbs/viewthread.php?tid=2764636### 把微分方程写成分段函数的形式即可。 |

2楼2011-03-11 15:42:54
|
就是这个微分方程组 u'(t)=-*f1(t)*y(t); v'(t)=-0.1*v(t)+*f1(t)*y(t); w'(t)=0.1*v(t); x'(t)=-f2(t)*v(t)+f1(t)*y(t)+f3(t)*y(t)+0.5*y(t); y'(t)= f2(t)*v(t) -f1(t)*y(t) -f3(t)*y(t) -0.5*y(t); 其中 f1(t)=0 if u(t)=0 =1 if u(t)>0; f2(t)=0 if x(t)=0 =1 if x(t)>0; f3(t)=0 if v(t)=0 =1 if v(t)>0; 且u(0)=1000;v(0)=1;w(0)=0;x(0)=200;y(0)=0. 只要求在matlab中画出u(t)、v(t)、w(t)、x(t)、y(t)在t的某一段区间内,比如[0,60]的曲线图,还是没想出来改怎么办,同学说可能需要迭代,我也不知道怎么办,万分感谢版主同志! [ Last edited by ybnav on 2011-3-11 at 22:28 ] |
3楼2011-03-11 17:31:40
|
刚方程写错了,应该是 就是这个微分方程组 u'(t)=-f1(t)*y(t); v'(t)=-0.1*v(t)+f1(t)*y(t); w'(t)=0.1*v(t); x'(t)=-f2(t)*v(t)+f1(t)*y(t)+f3(t)*y(t)+0.5*y(t); y'(t)= f2(t)*v(t) -f1(t)*y(t) -f3(t)*y(t) -0.5*y(t); 其中 f1(t)=0 if u(t)=0 =1 if u(t)>0; f2(t)=0 if x(t)=0 =1 if x(t)>0; f3(t)=0 if v(t)=0 =1 if v(t)>0; 且u(0)=1000;v(0)=1;w(0)=0;x(0)=200;y(0)=0. 只要求在matlab中画出u(t)、v(t)、w(t)、x(t)、y(t)在t的某一段区间内,比如[0,60]的曲线图,还是没想出来改怎么办,同学说可能需要迭代,我也不知道怎么办,万分感谢版主同志! [ Last edited by ybnav on 2011-3-11 at 22:31 ] |
4楼2011-03-11 17:33:08












回复此楼