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

荣誉版主 (著名写手)

【答案】应助回帖

你看下时间吧,别人模拟了90h,你的2min趋势上也在0点那个平台阶段,怎么也得过了40h才看得出趋势
注意下你的参数单位,主要是k的值是以什么作为时间单位的
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.
11楼2011-12-10 11:19:56
已阅   回复此楼   关注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的回帖
信息提示
请填处理意见