Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
 
 
主题工具 显示模式
旧 2008-05-31, 00:10   #1
闫世军 neu
初级会员
 
注册日期: 2008-03-27
年龄: 40
帖子: 11
声望力: 18
闫世军 neu 正向着好的方向发展
帖子 [求助]请教一下,下面这段代码怎么修改!

函数fun1.m文件为
function dy=fun1(t,y)
u=[t/1000+0.1 t/1000+0.1];
dy=zeros(6,1);
m1=0.2;m2=0.000034;m3=0.0337;m4=0.0386;
w1=0.3;w2=0;w3=0.1;
p=0;
k1=0.1;k2=0.125;
d1=0.0079;d2=0.0068;
dy(1)=m2*(y(1)+y(2)+y(3)+y(4)+y(5)+y(6))-y(1)*(m1*y(4)+w1*m1*y(2)+w2*m1*y(3)+w3*m1*y(5))/(y(1)+y(2)+y(3)+y(4)+y(5)+y(6))-m2*y(1);
dy(2)=p+y(1)*(m1*y(4)+w1*m1*y(2)+w2*m1*y(3)+w3*m1*y(5))/(y(1)+y(2)+y(3)+y(4)+y(5)+y(6))-(u(1:366)+k1+m2).*y(2);---------------------------------错误行
dy(3)=u(1:366).*y(2)-(k2+m2)*y(3);
dy(4)=k1*y(2)-(u(367:end)+d1+m3+m2).*y(4);
dy(5)=u(367:end).*y(4)+k2*y(3)-(d2+m4+m2)*y(5);
dy(6)= m3*y(4)+m4*y(5)-m2*y(6);

主程序为
clear;
clc;
t=0:365;
u=[t./1000+0.1 t./1000+0.1];
y0=[12000000;1565;292;695;326;20];
[t,y]=ode45(@fun1,t,y0);
plot(t,y(:,1),'m')


matlab提示出现错误:
??? Index exceeds matrix dimensions.

Error in ==> fun1 at 10
dy(2)=p+y(1)*(m1*y(4)+w1*m1*y(2)+w2*m1*y(3)+w3*m1*y(5))/(y(1)+y(2)+y(3)+y(4)+y(5)+y(6))-(u(1:366)+k1+m2).*y(2);

Error in ==> funfun\private\odearguments at 110
f0 = feval(ode,t0,y0,args{:}); % ODE15I sets args{1} to yp0.

Error in ==> ode45 at 173
[neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, odeFcn, ...

Error in ==> xuxiang at 6
[t,y]=ode45(@fun1,t,y0);


针对u的两个分量是函数的情况,出现了上面的错误,应该怎么改正,谢谢高手!!!!!!!!!!!!
闫世军 neu 当前离线   回复时引用此帖
 


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码


相似的主题
主题 主题作者 版面 回复 最后发表
[求助]已知特征多项式,如何通过matlab求解特征向量。 java125 MATLAB论坛 3 2008-06-23 11:09
[求助]请帮忙纠错 LIKAIYU MATLAB论坛 2 2008-04-19 13:40
[求助]GUI的问题 shiningshone111 MATLAB论坛 1 2008-03-04 16:37
【求助】找电子书 长沙7喜 MATLAB论坛 0 2008-01-16 21:56


所有时间均为北京时间。现在的时间是 11:31


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.