differential equations without ode solvers

3 vues (au cours des 30 derniers jours)
Taleb Bou Hamdan
Taleb Bou Hamdan le 25 Fév 2019
Commenté : Taleb Bou Hamdan le 27 Fév 2019
hello, I am trying to simulate running two differential equaitons at the same time but there is an error that index exceeds array bounds:
The code am using is given in the following:
dt=0.5;
t=0:dt:10;
h1=zeros(size(t));
h1(1)=0;
h2=zeros(size(t));
h2(1)=0;
for i=1:21
if h1(i) < 1
h1= 0.5-0.065*sqrt(h1(i));
h2= 0.065*sqrt(h1(i)) - 0.1*sqrt(h2(i));
h1(i+1)= h1(i)+dt*h1;
h2(i+1)=h2(i)+dt*h2;
else h1(i)=1;
end

Réponses (1)

Alex Mcaulley
Alex Mcaulley le 25 Fév 2019
I think you are overwriting h1 and h2 variables in:
h1= 0.5-0.065*sqrt(h1(i));
h2= 0.065*sqrt(h1(i)) - 0.1*sqrt(h2(i));
After those lines h1 and h2 are scalars. Probably you need to put:
h1(i)= 0.5-0.065*sqrt(h1(i));
h2(i)= 0.065*sqrt(h1(i)) - 0.1*sqrt(h2(i));
  1 commentaire
Taleb Bou Hamdan
Taleb Bou Hamdan le 27 Fév 2019
Thank you. I have the names of the functions from h1 h2 to f1 and f2 and this solved the problem

Connectez-vous pour commenter.

Community Treasure Hunt

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

Start Hunting!

Translated by