Index in position 2 exceed array bounds

1 回表示 (過去 30 日間)
Maureen Domtche
Maureen Domtche 2019 年 4 月 11 日
コメント済み: Bob Thompson 2019 年 4 月 12 日
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 件のコメント
Adam Danz
Adam Danz 2019 年 4 月 11 日
What about Nt (and e)?
Maureen Domtche
Maureen Domtche 2019 年 4 月 11 日
Nt = 200 e = 0.05

サインインしてコメントする。

回答 (2 件)

Adam Danz
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
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
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
jahanzaib ahmad 2019 年 4 月 11 日
there is nothing in y(:,i+1)
  2 件のコメント
jahanzaib ahmad
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 .
Maureen Domtche
Maureen Domtche 2019 年 4 月 11 日
i tried it didn't work , i get the same erroe message

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeMatrix Indexing についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by