Bonjour, j'utilise SCILAB pour chercher à déterminer l'équation qui caractérise un jeu de données. Voici le petit morceau de code que j'ai écrit :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
M=fscanfMat('total_simple.dat');
fxm=M
T=fscanfMat('temp_pond.dat')
tm=fscanfMat('t.dat')
m=8784
x0=[0;0;0;0;0;0;0;0]
wm=ones(m,1)
 
function fx=f(t,x);
fx=x(1)*sin((2*%pi*t/24)+x(2))+x(3)*sin((2*%pi*t/12)+x(4))+x(5)*sin((2*%pi*t/168)+x(6))+x(7)(1+x(8)*T(t))-M(t) 
endfunction
 
function e = myfun(x,tm,fxm,wm)
e=wm.*(f(tm,x)-fxm)
endfunction
 
[fopt,xopt,gropt]=leastsq(list(myfun,tm,fxm,wm),x0)
Dans ce code les fichiers .dat sont en colonne, la variable t est stockée dans 't.dat', ses valeurs vont de 1 à 8784. Lors de l'exécution, j'obtiens une semble t'il "classique" erreur 21 :


!--error 21
Index invalide.

at line 2 of function f called by :
at line 2 of function fn called by :
at line 2 of function %opt called by :
at line 92 of function leastsq called by :
[fopt,xopt,gropt]=leastsq(list(myfun,tm,fxm,wm),x0)
at line 17 of exec file called by :
Mais je n'arrive pas vraiment à déterminer d'où vient le problème.

Quelqu'un serait'il susceptible de m'aider ?

Merci d'avance.