J'essaye en fait de trouver les paramètres qui vont fitter au mieux mes jeux de données, (voir figure jointe).
Pièce jointe 139822
La fonction qui régis ce jeu de donnée est de la forme : a*cos(b-psi)+c. Je cherche donc à minimiser : données-a*cos(b-psi)+c afin d'estimer au mieux les paramètres a,b et c qui fitte le mieux mes données.
Je connais psi et mes données.
voici les paramètres initiaux que j'entre dans mon programme : [3.8,1.3,0]
J'ai donc essayé le programme suivant :
mais voici le message d'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 clear all close all clc psi = load('psi.txt'); target = load('target.txt'); xdata = reshape(psi,1201*1201,1); ydata = reshape(target,1201*1201,1); fit_values=lsqcurvefit(@(x0,x)x0(1)*cos(x0(2)-x)+x0(3),[3.8,1.3,0],xdata,ydata);
Pour avoir une idées des variables que je manipule :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Error using snls (line 48) Objective function is returning undefined values at initial point. lsqcurvefit cannot continue. Error in lsqncommon (line 150) [xC,FVAL,LAMBDA,JACOB,EXITFLAG,OUTPUT,msgData]=... Error in lsqcurvefit (line 253) [xCurrent,Resnorm,FVAL,EXITFLAG,OUTPUT,LAMBDA,JACOB] = ... Error in leastsq (line 11) fit_values=lsqcurvefit(@(x0,x)x0(1)*cos(x0(2)-x)+x0(3),[3.8,1.3,0],xdata,ydata);
Du coup, je ne comprend pas très bien comment manipuler les fonctions de minimisation de matlab, auriez vous quelques conseils à me donner ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Name Size Bytes Class Attributes psi 1201x1201 11539208 double target 1201x1201 11539208 double xdata 1442401x1 11539208 double ydata 1442401x1 11539208 double
Merci d'avance
Partager