[DEMONSTRATION DATA ENTRY FILE - REPLACE THIS LINE BY ONE-LINE TITLE] nvert= (ENTER-VALUE-HERE) nparm= (ENTER-VALUE-HERE) ndata= (ENTER-VALUE-HERE) ndatval= (ENTER-VALUE-HERE) iter= 0 maxquad_skip= 4 exit_test= 1.E-8 prt_cycle= 30 quad_test= 30 starting-simplex[nvert][nparm=list_starting_parameter_values]= [REPLACE THIS LINE BY NVERT SETS OF NPARM VALUES] optional****bounds-array[2][nparm=list_lower_then_upper_bounds_values]= optional****[REPLACE BY 2 SETS OF BOUNDS VALUES: NPARM LOWER THEN NPARM UPPER] data[ndata][ndatval=y,yc,w,list_independent_variable_values]= [REPLACE THIS LINE BY NDATA SETS OF NDATVAL VALUES] -----------------------end of data------------------------------- Comments: the first line, a ONE-LINE title, can have no control characters or tabs; the ONE-WORD (there can be NO white space within them) mnemonic identifiers ("data[ndata][ndatval=y,yc,w,...]=", "nvert=", etc.) must ALL be present; the identifier must be separated by white space from the value(s) following for it; the order of presentation of the identifier-value sets is fixed, but the number of spaces or tabs or newlines, etc., between tokens is not important (i.e., there are no format fields); the number of values read after "simplex.." is x ; there are vertices of the simplex, one more than the number of "free" parameters; there are values given for each vertex, each value being an estimate of a parameter value; not all of the parameters need be "free"; a "fixed" parameter has the same value for all vertices; for a parameter to be "free", at least one vertex must differ from other vertices in the value for that parameter; the high and low values for a "free" parameter, comparing all vertices, should determine a range that includes the best-fit value of that parameter; the fitting procedure may be able to find a best-fit value outside the initial range. the number of values read in the set of values after "data.." is x ; is greater than or equal to 4, because the aggregate must store for each data point values for y(observed), y(calculated), the statistical weight, and one or more independent variables; descriptive comments (like these) can be placed at the end of the data file. NOTE: set the starting simplex large, to include any reasonable best-fit values of the principal parameters; set exit_test tight, to minimize problems with the quadratic fit; set prt_cycle and quad_test at 30, so that every 30 iterations the intermediate results are stored on disk and selectively a quadratic fitting is carried out, to speed convergence; set maxquad_skip nonzero; then if a quadratic fit fails, the next one or more quadratic fit attempts are passed over; the number passed over is incremented at each successive failure, up to maxquad_skip; a successful quadratic fit resets the skip counter; set iter, the starting iteration number, at 0; minimization continues until the value of is less than : = input value = / = (root mean square of the deviations of the least squares values at the simplex vertices) = (mean of the least squares values) on exit from the minimization, a pass through simpdev() gives the final estimates of the standard deviations of the parameters; read_data() has code for reading in parameter bounds; please consult the source code if question about bounds.