Nonlinear equation fitting

        Nonlinear equation fitting is a method of modeling data to an arbitrary equation, which may be linear or nonlinear.
        The regression procedure fits experimental data to a model, which is a function expressing the dependent ('y')
        variable in terms of the dependent ('x') variables and unknown parameters.  The model function may define a curve, 
        surface, or a higher dimensional object.  The unknown parameters are determined by the regression procedure.

        To use Simplemax nonlinear regression, enter data and a function in the appropriate boxes.  

        Data should be arranged one datapoint on each line, with the independent variables x1 ... xn in order, 
        followed by the dependent variable ('y').

        The function to be modelled is a function of the n independent variables x, and contains one or more parameters to 
        be determined.  The x values are represented in the function as a 1-based array x[] and the parameters are 
        represented as a 1-based array params[].  See the examples.

        Enter an estimate for the parameters in the 'initial parameters' box.  If you are uncertain as to what these may be
        it may be necessary to repeat the regression with various guesses until a reasonable fit is achieved.
        
        The regression procedure seeks to find the best fit of the data to the curve, which involves minimizing the 
        differences ('residuals') between the experimentally determined y values and the calculated f(x,params) for x for 
        each data point.  Frequently the value minimized is the sum of the squares of the residuals.  The value entered 
        in the 'regression exponent' box determines the the exponent.  Enter 2 (the default) for sum of squares, 
        enter 1 for the sum of the absolute values.  This number should be positive.
        
        In many cases, the implicit assumption of equal errors in the dependent variable 'y' is not correct.  For these
        situations, enter a non-zero weight exponent in the 'weight exponent' box.  Enter 0 (the default) for equal
        weighting.  Enter 2 for proportional weighting when using least squares.
        
        The function that is minimized is 
        
                               sumi((observedi - modeli)P / abs(modeli)W)
       
       Where P is the regression exponent and W is the weight exponent.