24小时热门版块排行榜    

查看: 540  |  回复: 3
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

happyday2016

新虫 (小有名气)

[求助] 求助,用MATLAB求解这个一阶微分方程,为啥一运行就出错,求指导 已有1人参与

求大神指导,为啥一运行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;

发自小木虫Android客户端
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

happyday2016

新虫 (小有名气)

引用回帖:
3楼: Originally posted by wurongjun at 2017-08-18 23:32:48
把y4(n)=1-y1(n);
放到
y2(n+1)=(1+0.01*(b-c)).*y2(n)-a.*(y1(n)-y4(n)).*0.01;
之前就行了!

谢谢!

发自小木虫Android客户端
4楼2017-08-19 20:51:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 4 个回答

mdechuan

新虫 (小有名气)

2楼2017-08-17 22:05:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wurongjun

专家顾问 (职业作家)

【答案】应助回帖

感谢参与,应助指数 +1
把y4(n)=1-y1(n);
放到
y2(n+1)=(1+0.01*(b-c)).*y2(n)-a.*(y1(n)-y4(n)).*0.01;
之前就行了!
善恶到头终有报,人间正道是沧桑.
3楼2017-08-18 23:32:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见