index exeeds matrix dimensions error

1 vue (au cours des 30 derniers jours)
Susan Santiago
Susan Santiago le 6 Mai 2018
Commenté : Ameer Hamza le 6 Mai 2018
t0 = 0;
tf = 0.4;
h = 0.1;
y0 = [2,4];
f = @(y,t) [-2*y(1) + 5*exp(-t); (-y(1).*(y(2).^2))/2];
prob2res1 = myEuler3(f,y0,t0,tf,h)
[t, prob2res4] = ode45(f,[0,0.4],y0)
my euler function is below
function [sol] = myEuler3(F, y0, ti, tf, h)
t = ti:h:tf;
y = zeros(length(y0),length(t));
y(:,1) = y0;
for i = 2:length(t)
y(:,i) = y(:,i-1) + h*F(t(i-1),y(:,i-1));
end
sol = [ t; y ];
end

Réponse acceptée

Ameer Hamza
Ameer Hamza le 6 Mai 2018
Modifié(e) : Ameer Hamza le 6 Mai 2018
The first argument in anonymous function f should be time t. Reverse the order like this
f = @(t, y) [-2*y(1) + 5*exp(-t); (-y(1).*(y(2).^2))/2];
  4 commentaires
Susan Santiago
Susan Santiago le 6 Mai 2018
thank you!
Ameer Hamza
Ameer Hamza le 6 Mai 2018
you are welcome.

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by