M新手 发表于 2009-4-27 20:37

新手请教!这个程序出问题,怎么改~急!!!

a=0.35;A(1)=-29;A(2)=138;A(3)=129;alpher(1)=0.03;alpher(2)=0.13;alpher(3)=0.625;b=0.5;beta=33;
dlambdadt=1.6380*(1-exp(-beta*t))./b;
Y2=dsolve('DQ1=A(1)*1.6380*(1-exp(-beta*t))/b-alpher(1)*Q1','Q1(0)=1');
Y3=dsolve('DQ2=A(2)*1.6380*(1-exp(-beta*t))/b-alpher(2)*Q2','Q2(0)=1');                              %Q2(T0)=0
Y4=dsolve('DQ3=A(3)*1.6380*(1-exp(-beta*t))/b-alpher(3)*Q3','Q3(0)=1');
Q=((819/500*A(1)/b*(1/alpher(1)*exp(alpher(1)*t)-1/(alpher(1)-beta)*exp(t*(alpher(1)-beta)))+1-819/500*A(1)/b*(1/alpher(1)-1/(alpher(1)-beta)))*exp(-alpher(1)*t))+((-819/500*A(2)/b*(-1/alpher(2)*exp(alpher(2)*t)+1/(alpher(2)-beta)*exp(t*(alpher(2)-beta)))+1+819/500*A(2)/b*(-1/alpher(2)+1/(alpher(2)-beta)))*exp(-alpher(2)*t))+((A(3)/b*(819/500/alpher(3)*exp(alpher(3)*t)-819/500/(alpher(3)-beta)*exp(t*(alpher(3)-beta)))+1-A(3)/b*(819/500/alpher(3)-819/500/(alpher(3)-beta)))*exp(-alpher(3)*t))
??? Error using ==> mtimes
Inner matrix dimensions must agree.


QQ=subs(Q); % 在不同t时刻Q的值,赋值给QQ(向量)
for q=QQ
if q<0
T=T0*(a*q+1)/(1-q);
else
T=T0*(1+(2+a)*q/(1-q));
end
end
t=1:max(size(T));
plot(t,T)
T0在其它程序已经算出,为一列数据向量~请各位高手帮帮忙,非常感谢~~~~~~

ChaChing 发表于 2009-4-28 11:35

回复 楼主 M新手 的帖子

楼主最後哪个式子过长很难判断哪里出错, 建议LZ将式子分批输入判别哪里出错!
感觉不外乎是点乘的问题!
并建议楼主看下 : 常见的程序出错问题整理 (eight)
http://forum.vibunion.com/forum/thread-46001-1-1.html

M新手 发表于 2009-4-28 12:41

原帖由 ChaChing 于 2009-4-28 11:35 发表 http://www.chinavib.com/forum/images/common/back.gif
楼主最後哪个式子过长很难判断哪里出错, 建议LZ将式子分批输入判别哪里出错!
感觉不外乎是点乘的问题!
并建议楼主看下 : 常见的程序出错问题整理 (eight)
http://www.chinavib.com/forum/thread-46001-1-1.html
非常感谢你的解答,我尝试过,是Q=Y2+Y3+Y4这句出错了~
式子中,我把Y2,Y3,Y4解出的函数式代入Q,所以特别长,请各位帮忙指导下,非常感谢!

ChaChing 发表于 2009-4-28 16:20

的确Q=Y2+Y3+Y4这句出错, 但LZ试过是Y2或Y3或Y4出错!? 是哪一部分出错!?
分批输入判别哪里出错! 真的自己试试看! 找出出错地方, 将哪地方的*改为.*!
若LZ跟我一样懒, 就把全部的*改为.*!
页: [1]
查看完整版本: 新手请教!这个程序出问题,怎么改~急!!!