Index in position 2 exceed array bounds
1 回表示 (過去 30 日間)
古いコメントを表示
Here's my code and im tryna figure out why i always get "index in position 2 exceed arra bounds"
What do i have to change?
function [t, y] = Euler_implicite(fonction, J ,t0,y0, h,e, Nt)
y(1,:) = y0;
t=zeros(Nt);
t(1) = t0;
for i = 1:Nt
g= y(:,i+1)-y(:,i)- h*fonction;
t(i+1)=t(i)+h;
y = newton_systeme(g,J,SP, niteration, precision);
end
newton_systeme(g,J,y0,e,Nt);
end
9 件のコメント
回答 (2 件)
Adam Danz
2019 年 4 月 11 日
編集済み: Adam Danz
2019 年 4 月 11 日
Just before the i-loop, you set y equal to 10.
%from your code...
y0 = 10;
y(1,:) = y0; % same as y = 10
Then on the first iteration of the i-loop, i=1 so when you execute this line
g= y(:,i+1)-y(:,i)- h*fonction;
% ----------
you're trying to access the second value of y but y only has 1 value (y=10)!
Even if that didn't cause an error this section below would (also) cause an error.
g= y(:,i+1)-y(:,i)- h*fonction;
% -----------
K>> h*fonction
Undefined operator '*' for input arguments of type 'cell'.
So there's at least a couple areas of your code you need to re-think. In other words, your errors are conceptual errors. Your code isn't written properly and that's something you'll need to work on in the context of your project.
I suggest going through your code line-by-line to confirm that it's doing what it's supposed to be doing.
3 件のコメント
Adam Danz
2019 年 4 月 11 日
We don't have enough information to fix it (or confirm that it's broken). It's just a bunch of letters to us.
Bob Thompson
2019 年 4 月 12 日
What you need to do to fix your code is to figure out how to get more than one element in y. As has been mentioned already the calculation of g is looking for two elements of y when only one exists. We are not particularly able to help you fix this particular problem because it is a very contextual solution, not something to do with the code. All we can tell you is that this is why the code isn't working.
jahanzaib ahmad
2019 年 4 月 11 日
there is nothing in y(:,i+1)
2 件のコメント
jahanzaib ahmad
2019 年 4 月 11 日
u want to minus before and after values but when u reach last value it gives error .
for for i = 1:Nt -1
the last value will not change .
参考
カテゴリ
Help Center および File Exchange で Matrix Indexing についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!