24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2272  |  回复: 15
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

_alarrn90

无虫 (小有名气)

[求助] matlab解微分方程组

哪位高手指点一下matlab解微分方程组!
图片是微分方程组。
下面是我根据网上查到的解法写的程序,能运行,但是计算出来的图像完全不对。
主函数:
tspan=[0:0.01:2];%求解时间为2秒也可以 tspan=[0 2]表示自动时间步长
x0=[0;0;2.4*10^(-4);20;1.15*10^(-7);0];%初值
[t,x]=ode45(@ff,tspan,x0);%用龙格库塔法求解
figure
plot(t,x(:,1))
figure
plot(t,x(:,2))
figure
plot(t,x(:,3))
figure
plot(t,x(:,4))
figure
plot(t,x(:,5))
figure
plot(t,x(:,6))

M文件
%微分方程
function dx=ff(t,x)
dx=zeros(6,1);
%x(1)=X1
%x(2)=X2
%x(3)=X3
%x(4)=X4
%x(5)=X5
%x(6)=X6
k1u=1.5*10^(-7)
k1b=1.0*10^(-4)
k2=1.3*10^(7)
k3=7*10^(-1)
k4=1.0*10^(10)
k5=2.6*10^(9)
k6=3*10^(3)
Xc=0.5
MMT=0
dx(1)=2*k1u*x(3)+k1b*x(3)^2-k2*x(1)*x(5)+k3*x(2)*x(4)-2*k4*x(1)^2-k5*x(1)*x(2);
dx(2)=k1b*x(3)^2+k2*x(1)*x(5)-k3*x(2)*x(4)-k5*x(1)*x(2)-2*k6*x(2);
dx(3)=-k1u*x(3)-2*k1b*x(3)^2+k3*x(2)*x(4);
dx(4)=-k1u*x(3)-k1b*x(3)^2-k3*x(2)*x(4);
dx(5)=-k2*x(1)*x(5)+k6*x(2)^2;
dx(6)=(k1u*x(3)+k1b*x(3)^2)*(1-Xc-MMT)*1.1111;
end















回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dbb627

荣誉版主 (著名写手)

【答案】应助回帖

你的方程有些问题,氧气的方程有关于空间的扩散项,没包涵.第四个初值是pH吧,怎么取到20了,氧气浓度也太低了吧,你是不是把条件写错了
The more you learn, the more you know, the more you know, and the more you forget. The more you forget, the less you know. So why bother to learn.
6楼2011-12-09 23:39:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 16 个回答

buxiudehun

木虫 (小有名气)

【答案】应助回帖


dbb627(金币+1): 欢迎交流 2011-12-02 09:29:51
_alarrn90(金币+2): 2011-12-10 10:44:38
可能性很多,首先你确定没有打错公式,其次你可以选择别的求解方法,不过这个问题看起来非线性性不是很强,步长小一些再试试。。。
2楼2011-12-02 09:22:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

_alarrn90

无虫 (小有名气)

多谢,我试一下。
3楼2011-12-02 09:47:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zt_chem

木虫 (正式写手)

【答案】应助回帖

_alarrn90(金币+2): 2011-12-10 10:44:43
为什么在程序最后加上‘end’?加上以后程序运行不下去啊?另外,步长减小以后结果变化很大
4楼2011-12-03 10:26:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见