Hello.
I need to fit a Gaussian function to an array of data points.
The example given in the gsl manual is a bit too advanced for
me to bootstrap (although I'm sure it will help after I get
started).
Any help is very much appreciated.
In psuedo code, I have something like the following:
// Input Parameters
int n = number of data points.
double Data[n]={whatever};
double DataErr[n]={whatever};
double FitParGuess[3]={whatever};
double GaussianFunction(&x, FitPar) {
double xFactor = (x - FitPar[1]);
double z = - 0.5 * xFactor * xFactor / FitPar[2];
double GaussianValue = FitPar[0] * exp(z);
return GaussianValue;
}
double GaussianDerivative_X(x, FitPar) {
/* Derivative of Gaussian /wrt x. */
.
.
.
}
double GaussianDerivative_C(x, FitPar) {
/* Derivative of Gaussian /wrt Constant. */
.
.
.
}
double GaussianDerivative_C(x, FitPar) {
/* Derivative of Gaussian /wrt Mean. */
.
.
.
}
double GaussianDerivative_C(x, FitPar) {
/* Derivative of Gaussian /wrt Sigma. */
.
.
.
}
// Return Parameters
double FitPar[3]; // The Fit Parameters {constant, mean, sigma}
double FitParErr[3]; // The Error on the fit parameters.
double Chi2;
int FitGauss(Data, DataErr, FitParGuess,
&n, GaussianFunction, GaussianDerivatives,
FitPar, FitParErr, &Chi2){
// Use gsl_multifit_nlin functions to solve.
.
.
.
return ;
}
_______________________________________________
Help-gsl mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/help-gsl