[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 <nvert> x <nparm>; there
are <nvert> vertices of the simplex, one more than the number of "free"
parameters; there are <nparm> values given for each vertex, each value
being an estimate of a parameter value; not all of the <nparm>
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 <ndata>
x <ndatval>; <ndatval> is greater than or equal to 4, because the
aggregate <data> 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 <test> is less than
<exit_test>:

     <exit_test> = input value
     <test>      = <rms_func> / <mean_func>
     <rms_func>  = (root mean square of the deviations
                              of the least squares values
                              at the simplex vertices)
     <mean_func> = (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.

