Bonjour tout le monde,
Cela fait maintenant un sacré bout de temps que j'essaie d'écrire un code basique pour produire un graphique avec mes données d'origines, et la courbe représentant au mieux ces données. Je connais déjà la forme de l'équation, et donc il me faut trouver la valeur des six inconnues, pour la meilleur courbe.
Mes données sont dans un fichier excel.
Jusqu'a présent j'ai trouvé plusieurs exemples, mais après avoir essayé de les transposer à mon application . . . ça marche pas
Pour l'instant j'ai ça :
Ce qui est adapté d'un exemple censé marcher.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 filename = 'input.xls'; a= xlsread (filename); x= a (:,1); y= a (:,2); bestcoeffs=fminsearch(@fun,[1 1 1 1 1 1],[],x,y); yfit=bestcoeffs(1)+ bestcoeffs(2)*x + bestcoeffs(3)*sin(2*pi*x) + bestcoeffs(4)*cos(2*pi*x)+ bestcoeffs(5)*sin(4*pi*x) + bestcoeffs(6)*cos(4*pi*x); scatter (x,y); plot(x,yfit);
Matlab me retourne :
En tant que bon newbie, je ne comprends pas ce qui ne va pas . . .??? Undefined function or method 'fun' for input arguments of type 'double'.
Error in ==> fminsearch at 205
fv(:,1) = funfcn(x,varargin{:});
J'ai déjà utilisé la toolbox "Curve fitting", et ça fonctionne plutôt bien, mais j'aimerai arriver au même résultat avec un bout de code !
Si vous avez une idée . . .
Merci d'avance !
Ayvik.
Partager