24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2276  |  回复: 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

荣誉版主 (著名写手)

【答案】应助回帖

引用回帖:
7楼: Originally posted by _alarrn90 at 2011-12-10 10:43:54:
确实是氧气浓度的初值有问题,我忘记乘上环境压力,但是修改后的图趋势没什么变化。扩散的影响在这里可以忽略。[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.
8楼2011-12-10 11:08:07
已阅   回复此楼   关注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的回帖
信息提示
请填处理意见