当前位置: 首页 > 数学 >求助,用MATLAB求解这个一阶微分方程,为啥一运行就出错,求指导

求助,用MATLAB求解这个一阶微分方程,为啥一运行就出错,求指导

作者 happyday2016
来源: 小木虫 150 3 举报帖子
+关注

求大神指导,为啥一运行MATLAB这个程序就出现这个错误
Index exceeds matrix dimensions.Error in Untitled7 (line 18)


t=0:0.01:10;
omg0=2.87;                 %单位    MHz
omgm=0;                    %单位    MHz
omg=2.5e6               %单位    rad/s
y1(1)=0;
y2(1)=0;
y3(1)=0;
y4(1)=0;
a=(omg/2)*i;
b=omg0*i;
c=omgm*i;
for n=1:1000;
    y1(n+1)=y1(n)+a.*(y3(n)-y2(n)).*0.01;
    y2(n+1)=(1+0.01*(b-c)).*y2(n)-a.*(y1(n)-y4(n)).*0.01;
    y3(n+1)=(1+0.01*(c-b)).*y3(n)+a.*(y1(n)-y4(n)).*0.01;
    y4(n)=1-y1(n);
end
t=0:0.01:10;
hold on
subplot(2,2,1);
plot(t,y1,'r')
subplot(2,2,2);
plot(t,y2,'b')
subplot(2,2,3);
plot(t,y3,'k')
subplot(2,2,4);
plot(t,y4,'g')

一运行就出现这个错误
Index exceeds matrix dimensions.

Error in Untitled7 (line 18)
    y2(n+1)=(1+0.01*(b-c)).*y2(n)-a.*(y1(n)-y4(n)).*0.01;

 返回小木虫查看更多

今日热帖
  • 精华评论
  • mdechuan

    y4(n+1)=1-y1(n);

  • wurongjun

    把y4(n)=1-y1(n);
    放到
    y2(n+1)=(1+0.01*(b-c)).*y2(n)-a.*(y1(n)-y4(n)).*0.01;
    之前就行了,

猜你喜欢