Problème d'index dans les matrices
Salut à tous,
j'ai un petit problème avec mon code matlab et je ne trouve pas la solution bien que je pense que c'est tout bête...
Voici le code que j'essaye de compiler:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| function [T,U] = fun(T1,T2,U1,n)
% Pas utilisé dans la méthode:
h = (T2-T1)/n;
e = h/6;
f = h/2;
% Abscisses temporelles:
T = linspace (T1,T2,n+1);
% Initialisation de la matrice contenant les valeurs des deux variables:
U = zeros(length(T),2);
U(1,1) = U1(1); % Valeur de x en t = 0
U(1,2) = U1(2); % Valeur de y en t = 0
for i=1:n
% Pour les x(t) et y(t):
R = U(i,:);
K1 = f(R);
K2 = f(R+f*K1);
K3 = f(R+f*K2);
K4 = f(R+h*K3);
U(i+1,:) = R+e*(K1+2*K2+2*K3+K4);
end
end
function dudx = f(U)
% Paramètres constants du modèle:
a = 2e-5;
b = 1e-8;
c = 6e-5;
d = 7e-13;
% Calculs de f
X = U(1);
Y = U(2);
dudx = U;
dudx(1) = (a-b*Y)*X;
dudx(2) = (d*X-c)*Y;
end |
et voici le message d'erreur qui apparaît dans la fenêtre de commande:
Citation:
??? Index exceeds matrix dimensions.
Error in ==> matlab5>forest at 29
K1 = f(R); K2 = f(R+f*K1); K3 = f(R+f*K2); K4 = f(R+h*K3); % Calcul des K
Error in ==> matlab5 at 8
[T,U] = forest(Tstart,Tend,Ustart,n);
Le problème vient directement du calcul de mon K1 (et je suppose que le même problème se posera avec K2,K3,K4) mais je ne vois pas en quoi les indices sont incorrects...
Si une bonne âme pouvait regarder :)
Merci d'avance!