| 查看: 271 | 回复: 1 | |||
| 当前主题已经存档。 | |||
chshy1234银虫 (小有名气)
|
[交流]
【求助】,MATLAB程序错在哪了???
|
||
|
Error in ==> ode45 at 173 [neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, odeFcn, ... Error in ==> chemical_kinetic at 17 [t,x]=ode45(@myfun,[t0:0.1:t1],x0,optimset('display','iter'),A); 运行下面程序出现上述错误:各位高手帮忙分析一下错在哪了??? function chemical_kinetic %计算反应物随浓度的变化关系 clear all clc %输入初值 A0=1.50; B0=0;C0=0;D0=0; k1=1.00;k2=0.50;k3=0.30;k4=0.10; x0=[B0 C0 D0]; %赋浓度初值 t0=0;t1=20; %赋时间起始值 for f=0.5:0.1:1.0 switch f case 0.5 %计算反应速率方程中的系数矩阵 A=[-k1*f*A0 k2 -k3*f*A0 0;k1*f*A0 -k2 -k3*f*A0 0 ;0 0 k3*f*A0 -k4;0 0 0 k4]; %调用ode45函数计算常微分方程组 [t,x]=ode45(@myfun,[t0:0.1:t1],x0,optimset('display','iter'),A); %作反应物浓度随时间的变化图 figure(1) plot(t,x(:,1),'k-') xlabel('t') ylabel('B浓度') title('B的浓度变化曲线(f=0.5)') figure(2) plot(t,x(:,2),'k-') xlabel('t') ylabel('C浓度') title('C的浓度变化曲线(f=0.5)') figure(3) plot(t,x(:,3),'k-') xlabel('t') ylabel('D浓度') title('D的浓度变化曲线(f=0.5)') fprintf('\n f=0.5\n') fprintf('\n B=%.4g\n',x(length(x),1)) fprintf('\n C=%.4g\n',x(length(x),2)) fprintf('\n D=%.4g\n',x(length(x),3)) case 0.75 A=[-k1*f*A0 k2 -k3*f*A0 0;k1*f*A0 -k2 -k3*f*A0 0 ;0 0 k3*f*A0 -k4;0 0 0 k4]; [t,x]=ode45(@myfun,[t0:0.1:t1],x0,optimset('display','iter'),A); figure(4) plot(t,x(:,1),'k-') xlabel('t') ylabel('B浓度') title('B的浓度变化曲线(f=1.6)') figure(5) plot(t,x(:,2),'k-') xlabel('t') ylabel('C浓度') title('C的浓度变化曲线(f=1.6)') figure(6) plot(t,x(:,3),'k-') xlabel('t') ylabel('D浓度') title('D的浓度变化曲线(f=1.6)') fprintf('\n f=1.6\n') fprintf('\n B=%.4g\n',x(length(x),1)) fprintf('\n C=%.4g\n',x(length(x),2)) fprintf('\n D=%.4g\n',x(length(x),3)) case 1.0 A=[-k1*f*A0 k2 -k3*f*A0 0;k1*f*A0 -k2 -k3*f*A0 0 ;0 0 k3*f*A0 -k4;0 0 0 k4]; [t,x]=ode45(@myfun,[t0:0.1:t1],x0,optimset('display','iter'),A); figure(7) plot(t,x(:,1),'k-') xlabel('t') ylabel('B浓度') title('B的浓度变化曲线(f=2.3)') figure(8) plot(t,x(:,2),'k-') xlabel('t') ylabel('C浓度') title('C的浓度变化曲线(f=2.3)') figure(9) plot(t,x(:,3),'k-') xlabel('t') ylabel('D浓度') title('D的浓度变化曲线(f=2.3)') fprintf('\n f=2.3\n') fprintf('\n B=%.4g\n',x(length(x),1)) fprintf('\n C=%.4g\n',x(length(x),2)) fprintf('\n D=%.4g\n',x(length(x),3)) end end %------------------ function y=myfun(t,x,A) y=A*[1;x(1);x(1);x(2)]; [ Last edited by sunxiao on 2009-3-9 at 08:30 ] |
» 猜你喜欢
售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急
已经有13人回复
售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急
已经有18人回复
售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急
已经有18人回复
2027博士申请-临床检验诊断学、病原生物学、微生物方向
已经有4人回复
售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急
已经有10人回复
售SCI文章,我:8O.5.5.1O.54,科目全,可十急
已经有22人回复
越来越担心硕士毕业后没有竞争力了
已经有14人回复
论文的挂名怎么评判贡献?基金申请中,排名第一的挂名文章
已经有3人回复
申博自荐 2篇一区TOP+1篇EI+2公开发明专利 2027博士申请
已经有3人回复
闲聊
已经有6人回复

zajage
金虫 (著名写手)
- 应助: 7 (幼儿园)
- 金币: 4648.5
- 散金: 1
- 红花: 1
- 帖子: 2078
- 在线: 160.1小时
- 虫号: 244937
- 注册: 2006-04-22
- 性别: GG
- 专业: 药剂学
2楼2009-02-17 19:21:46










回复此楼