求助,用MATLAB求解这个一阶微分方程,为啥一运行就出错,求指导
求大神指导,为啥一运行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;
返回小木虫查看更多
y4(n+1)=1-y1(n);
把y4(n)=1-y1(n);
放到
y2(n+1)=(1+0.01*(b-c)).*y2(n)-a.*(y1(n)-y4(n)).*0.01;
之前就行了,