Bonjour ,
Pour un projet je dois faire un programme Scilab voici ce que j'ai fais:
function cuves(T,N,Re1,Re2,D,C1,C2,C3,C4,E12,E21,U11,U12,U21,U22,R1,R2)
h=T/N
U11(1)=U11
U12(1)=U12
U21(1)=U21
U22(1)=U22
R1(1)=R1
R2(1)=R2
for i=1:N
R1(i+1)=R1(i)+h*(D*(Re1-R1(i))-C1*R1(i)*U11(i)-C2*R1(i)*U21(i)-E12*R1(i)+E21*R2(i));
U11(i+1)=U11(i)+h*((-1)*D*U11(i)+C1*R1(i)*U11(i)-E12*U11(i)+E21*U12(i));
U21(i+1)=U21(i)+h*((-1)*D*U21(i)+C2*R1(i)*U21(i)-E12*U21(i)+E21*U22(i));
R2(i+1)=R2(i)+h*(D*(Re2-R2(i))-C3*R2(i)*U12(i)-C4*R1(i)*U22(i)+E12*R1(i)-E21*R2(i));
U12(i+1)=U12(i)+h*((-1)*D*U12(i)+C3*R2(i)*U12(i)+E12*U11(i)-E21*U12(i));
U21(i+1)=U22(i)+h*((-1)*D*U22(i)+C4*R2(i)*U22(i)+E12*U21(i)-E21*U22(i));
end
x=[1:N+1]'
plot2d([x,x,x,x,x,x],[R1,R2,U11,U21,U12,U22])
endfunction
or quand je veux le faire fonctionner il me dit "error 21 index invalide "
est ce que quelqu'un peux m'aider à trouver mon erreur?
merci d'avance pour votre aide
Bonjour,
Quelle est la dimension déclarée des tableaux U11, U12, U21 et U22
Là, tu adresses l'indice N+1
Pour moi U11, U21,U12 et U22 prennent N+1 valeur donc un tableau de dimension N+1
auparavant j'avais fait un programme de même type avec moins de variable et il fonctionnait …
Je ne connais pas Scilab, mais pour N+1 valeurs, de nombreux logiciels prennent les indices de 0 à N. LE N+1ème est alors hors limite.
je ne crois pas que ça soit le cas pour Scilab
Voici le programme précédent qui fonctionne parfaitement:
function[U1,U2,R1]=deux(T,N,D,Re,X10,X20,Y0,C1,C2)
h=T/N
U1(1)=X10
U2(1)=X20
R1(1)=Y0
for i=1:N
R1(i+1)=R1(i)+h*(D*(Re-R1(i))-C1*R1(i)*U1(i)-C2*R1(i)*U2(i));
U1(i+1)=U1(i)+h*((-1)*D*U1(i)+C1*R1(i)*U1(i));
U2(i+1)=U2(i)+h*((-1)*D*U2(i)+C2*R1(i)*U2(i));
end
x=[1:N+1]'
plot2d([x,x,x],[U1,U2,R1],leg='Population 1@Population 2@Ressource')
endfunction
deux(100,10000,1,3,1,5,1,5,2);
merci pour vos réponses
Comme je te l'ai déjà dit, je ne connais Scilab.
Mais, dans le "pavé" d'affectations:
en effet, je me suis bien trompée sans le voir même en ayant vérifié plusieurs fois
merci beaucoup pour vos réponses pour une petite fautes comme ça.
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :