## Index in position 2 exceed array bounds

### Maureen Domtche (view profile)

on 11 Apr 2019
Latest activity Commented on by Bob Nbob

### Bob Nbob (view profile)

on 12 Apr 2019
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

Maureen Domtche

### Maureen Domtche (view profile)

on 11 Apr 2019
N = 100;
b = 1;
u = 0.05;r = 0.5;
nmax = 100;
precision = 1e-2;
h=0.5;
t0=0;
y0=10
sp= @(S,I) u*N-u*S-b/N*S*I;
ip = @(S,I) (b/N)*S*I-r*I-u*I;
fonction = {sp, ip};
J = {@(S,I)-u-b/N*I, @(S,I)-b/N*S;
@(S,I)(b/N)*I, @(S,I)(b/N)*S-r-u};

on 11 Apr 2019
Maureen Domtche

### Maureen Domtche (view profile)

on 11 Apr 2019
Nt = 200 e = 0.05

### Tags

on 11 Apr 2019

on 11 Apr 2019

Just before the i-loop, you set y equal to 10.
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.

Maureen Domtche

### Maureen Domtche (view profile)

on 11 Apr 2019
I tried going line by line to figure out whats wrong with my code and it turns out that the problematic line is this one "g= y(:,n+1)-y(:,n)- h*f(y(:,n),t(n+1)); " So if any of you guys have ideas on how to fix that let me know please

on 11 Apr 2019
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 Nbob

### Bob Nbob (view profile)

on 12 Apr 2019
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.

on 11 Apr 2019

there is nothing in y(:,i+1)