[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]
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.