3 views (last 30 days)

I'm trying to run a very simple ODE. However when running it Matlab shows me the error: 'Index in position 1 exceeds array bounds (must not exceed 1)' for I_2 in the QIF function.

My code is posted below:

I_1= pi^2;

I_2= -2*pi^2;

params.tau= 10;

g= 0;

V_1= -65;

V_2= -65;

state= [V_1;V_2];

I= [I_1;I_2];

options = odeset('abstol',1e-8,'reltol',1e-8);

[t,state] = ode113(@QIF,[1 3000],state,I,params)

With QIF :

function [statep]= QIF(t,state,I,params);

I_1= I(1);

I_2=I(2);

v= (state(1)+state(2))/length(state);

V_1d= ((state(1)^2)+ I_1)/params.tau;

V_2d= ((state(2)^2)+ I_2)/params.tau;

statep= [V_1d,V_2d]

Does anyone see what I don't see?

Stephan
on 2 Dec 2019

I_1= pi^2;

I_2= -2*pi^2;

params.tau= 10;

g= 0;

V_1= -65;

V_2= -65;

state= [V_1;V_2];

I= [I_1;I_2];

options = odeset('abstol',1e-8,'reltol',1e-8);

[t,state] = ode113(@(t,state)QIF(t,state,I,params),[1 10.8],state,options);

plot(t,state)

function statep= QIF(~,state,I,params)

I_1= I(1);

I_2=I(2);

V_1d= ((state(1)^2)+ I_1)/params.tau;

V_2d= ((state(2)^2)+ I_2)/params.tau;

statep = [V_1d;V_2d];

end

For t>10.84627 your function gives a warning due to the extreme rise of the resulting values. Maybe you should check if your implementation is correct.

Stephan
on 2 Dec 2019

Sign in to comment.

Sign in to answer this question.

Opportunities for recent engineering grads.

Apply Today
## 0 Comments

Sign in to comment.