/* LINEFIT.C */ /*- test function for nonlinear least squares minimizaton by the Nelder-Mead simplex algorithm. Powell's quartic function - see Nelder-Mead paper. Example of a dataless function. J.A. Rupley, Tucson, Arizona rupley!local@cs.arizona.edu */ #define STANDALONE #include "simpdefs.h" /* externals are read from */ /* DEFINES SPECIAL TO FITTING FUNCTION */ #define X1 0 /* defines for elements of struct pstruct */ #define X2 1 /* (mnemonic) */ #define X3 2 #define X4 3 int func(pnam) struct pstruct *pnam; { pnam->val = pow((pnam->parm[X1] + 10 * pnam->parm[X2]), 2) + 5 * pow((pnam->parm[X3] - pnam->parm[X4]), 2) + pow((pnam->parm[X2] - 2 * pnam->parm[X3]), 4) + 10 * pow((pnam->parm[X1] - pnam->parm[X4]), 4); return (OK); } /* END OF FUNC */ /*- FDATPRINT PRINT DATA AND COMPARE WITH CALCULATED VALUES CODED ACCORDING TO MODEL AND DATA */ void fdatprint(fptr) FILE *fptr; { return; /* noop place holder */ } /* END OF FDATPRINT */