why am I getting this error ? "Index exceeds array bounds."

h=1; c=0.1; k=0.1; m=1;
y(1)=0; z(1)=0; t(1)=0;
g=@(t,y,z) 1-(c*z)-(k*y);
f=@(t,y,z) (m*z);
for i=1:10
t(i+1)=t(i)+h;
k1=f(t(i),y(i),z(i));
l1=g(t(i),y(i),z(i));
k2=f(t(i)+(h*0.5),y(i)+(k1*0.5*h),z(i)+(l1*0.5*h));
l2=g(t(i)+(h*0.5),y(i)+(k1*0.5*h),z(i)+(l1*0.5*h));
k3=f(t(i)+(h*0.5),y(i)+(k2*0.5*h),z(i)+(l2*0.5*h));
l3=g(t(i)+(h*0.5),y(i)+(k2*0.5*h),z(i)+(l2*0.5*h));
k4=f(t(i)+h,y(i)+(k3*h),z(i)+(l3*h));
y(i+1)=y(i)+(k1+2*k2+2*k3+k4)*h/6;
end
plot(t,y)

 채택된 답변

madhan ravi
madhan ravi 2018년 11월 6일

0 개 추천

Becuase size of t ,y and z is one but you are trying to accessing the elements from 1 to 10 via loop!

댓글 수: 3

More t and y values are stored as you go along, but you do not store more z values so you run out of those.
Bullseye sir Walter thank you very much?
Ens S
Ens S 2018년 11월 6일
편집: Ens S 2018년 11월 6일
Thank you for your explanations. Walter's answer worked.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Matrix Indexing에 대해 자세히 알아보기

질문:

2018년 11월 6일

편집:

2018년 11월 6일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by