home *** CD-ROM | disk | FTP | other *** search
/ Collection of Education / collectionofeducationcarat1997.iso / SCIENCE / NONLIN25.ZIP / NONLIN.DOC < prev    next >
Text File  |  1993-08-02  |  127KB  |  2,591 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.                                    N O N L I N
  7.  
  8.  
  9.  
  10.                       Nonlinear Regression Analysis Program
  11.  
  12.  
  13.  
  14.  
  15.                                Phillip H. Sherrod
  16.  
  17.               Member, Association of Shareware Professionals (ASP)
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.            Nonlin  allows  you  to  perform   statistical   regression
  25.            analyses  to  estimate the values of parameters for linear,
  26.            multivariate,  polynomial,   logistic,   exponential,   and
  27.            general   nonlinear  functions.   The  regression  analysis
  28.            determines the values of the  parameters  which  cause  the
  29.            function  to  best  fit the observed data that you provide.
  30.            Nonlin allows you to specify the function whose  parameters
  31.            are  being estimated using ordinary algebraic notation.  In
  32.            addition to determining  the  parameter  estimates,  Nonlin
  33.            can  be  directed to generate an output file with predicted
  34.            values  and  residuals.   It  can  also   plot   the   data
  35.            observations  and the computed function.  Although designed
  36.            for regression analysis, Nonlin can also be  used  to  find
  37.            the  root  (zero  point)  or  minimum  absolute  value of a
  38.            nonlinear  expression.   Nonlin   is   in   use   at   many
  39.            engineering and research centers around the world.
  40.  
  41.  
  42.  
  43.  
  44.  
  45.                                 Table of Contents
  46.  
  47.  
  48.  
  49.        1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 1
  50.          1.1 Introduction to Regression Analysis . . . . . . . . . . . . 1
  51.          1.2 Introduction to Nonlin  . . . . . . . . . . . . . . . . . . 2
  52.          1.3 Installing Nonlin . . . . . . . . . . . . . . . . . . . . . 3
  53.  
  54.        2. Using Nonlin . . . . . . . . . . . . . . . . . . . . . . . . . 5
  55.          2.1 Function Specification  . . . . . . . . . . . . . . . . . . 6
  56.            2.1.1 Arithmetic Operators  . . . . . . . . . . . . . . . . . 6
  57.            2.1.2 Numeric Constants . . . . . . . . . . . . . . . . . . . 6
  58.            2.1.3 Symbolic Constants  . . . . . . . . . . . . . . . . . . 6
  59.            2.1.4 Built-in Constants  . . . . . . . . . . . . . . . . . . 6
  60.            2.1.5 Built-in Functions  . . . . . . . . . . . . . . . . . . 7
  61.          2.2 Nonlin Command Files  . . . . . . . . . . . . . . . . . .  10
  62.  
  63.        3. Nonlin Commands  . . . . . . . . . . . . . . . . . . . . . .  12
  64.          3.1 TITLE . . . . . . . . . . . . . . . . . . . . . . . . . .  12
  65.          3.2 VARIABLES . . . . . . . . . . . . . . . . . . . . . . . .  12
  66.          3.3 PARAMETERS  . . . . . . . . . . . . . . . . . . . . . . .  12
  67.          3.4 CONFIDENCE  . . . . . . . . . . . . . . . . . . . . . . .  13
  68.          3.5 CONSTANT  . . . . . . . . . . . . . . . . . . . . . . . .  13
  69.          3.6 CONSTRAIN . . . . . . . . . . . . . . . . . . . . . . . .  14
  70.          3.7 COVARIANCE  . . . . . . . . . . . . . . . . . . . . . . .  14
  71.          3.8 SWEEP . . . . . . . . . . . . . . . . . . . . . . . . . .  14
  72.          3.9 FUNCTION  . . . . . . . . . . . . . . . . . . . . . . . .  15
  73.          3.10 TOLERANCE  . . . . . . . . . . . . . . . . . . . . . . .  15
  74.          3.11 ITERATIONS . . . . . . . . . . . . . . . . . . . . . . .  15
  75.          3.12 REGISTER . . . . . . . . . . . . . . . . . . . . . . . .  16
  76.          3.13 OUTPUT . . . . . . . . . . . . . . . . . . . . . . . . .  16
  77.          3.14 POUTPUT  . . . . . . . . . . . . . . . . . . . . . . . .  17
  78.          3.15 PLOT . . . . . . . . . . . . . . . . . . . . . . . . . .  17
  79.          3.16 RPLOT  . . . . . . . . . . . . . . . . . . . . . . . . .  18
  80.          3.17 NPLOT  . . . . . . . . . . . . . . . . . . . . . . . . .  19
  81.          3.18 PRESOLUTION  . . . . . . . . . . . . . . . . . . . . . .  20
  82.          3.19 WIDTH  . . . . . . . . . . . . . . . . . . . . . . . . .  20
  83.          3.20 NOECHO . . . . . . . . . . . . . . . . . . . . . . . . .  20
  84.          3.21 DATA . . . . . . . . . . . . . . . . . . . . . . . . . .  21
  85.  
  86.        4. Understanding The Results  . . . . . . . . . . . . . . . . .  22
  87.          4.1 Descriptive Statistics for Variables  . . . . . . . . . .  22
  88.          4.2 Parameter Estimates . . . . . . . . . . . . . . . . . . .  22
  89.          4.3 t Statistic . . . . . . . . . . . . . . . . . . . . . . .  22
  90.          4.4 Prob(t) . . . . . . . . . . . . . . . . . . . . . . . . .  23
  91.          4.5 Final Sum of Squared Deviations . . . . . . . . . . . . .  23
  92.          4.6 Average and Maximum Deviation . . . . . . . . . . . . . .  23
  93.          4.7 Proportion of Variance Explained  . . . . . . . . . . . .  24
  94.          4.8 Adjusted Coefficient of Multiple Determination  . . . . .  24
  95.          4.9 Durbin-Watson Statistic . . . . . . . . . . . . . . . . .  24
  96.  
  97.  
  98.                                         i
  99.  
  100.        Contents                                                         ii
  101.  
  102.  
  103.          4.10 Analysis of Variance Table . . . . . . . . . . . . . . .  26
  104.  
  105.        5. Theory of Operation  . . . . . . . . . . . . . . . . . . . .  27
  106.          5.1 Minimization Algorithm  . . . . . . . . . . . . . . . . .  27
  107.          5.2 Convergence Criterion . . . . . . . . . . . . . . . . . .  27
  108.  
  109.        6. Hints for Nonlin Use . . . . . . . . . . . . . . . . . . . .  29
  110.          6.1 Convergence Failures  . . . . . . . . . . . . . . . . . .  29
  111.          6.2 Singular Matrix Problems  . . . . . . . . . . . . . . . .  30
  112.          6.3 Performance Issues  . . . . . . . . . . . . . . . . . . .  30
  113.          6.4 Program Limits  . . . . . . . . . . . . . . . . . . . . .  31
  114.  
  115.        7. Example Analyses . . . . . . . . . . . . . . . . . . . . . .  32
  116.  
  117.        8. Special Applications . . . . . . . . . . . . . . . . . . . .  36
  118.          8.1 Omitted Dependent Variable  . . . . . . . . . . . . . . .  36
  119.          8.2 Root Finding and Expression Minimization  . . . . . . . .  37
  120.            8.2.1 Function Minimization Examples  . . . . . . . . . . .  39
  121.  
  122.        9. Acknowledgement and Use of Nonlin  . . . . . . . . . . . . .  40
  123.          9.1 Acknowledgement . . . . . . . . . . . . . . . . . . . . .  40
  124.          9.2 Use and Distribution of Nonlin  . . . . . . . . . . . . .  40
  125.          9.3 Association of Shareware Professionals  . . . . . . . . .  41
  126.          9.4 Copyright Notice  . . . . . . . . . . . . . . . . . . . .  41
  127.          9.5 Disclaimer  . . . . . . . . . . . . . . . . . . . . . . .  41
  128.  
  129.        10. Other Software  . . . . . . . . . . . . . . . . . . . . . .  42
  130.          10.1 Mathplot -- Mathematical Function Plotting Program . . .  42
  131.          10.2 TSX-32 -- Multi-User Operating System  . . . . . . . . .  42
  132.          10.3 SIMSTAT -- Interactive Statistics Program  . . . . . . .  43
  133.  
  134.        11. Software Order Form . . . . . . . . . . . . . . . . . . . .  44
  135.  
  136.        Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  45
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.                                     Chapter 1
  144.  
  145.                                   Introduction
  146.  
  147.  
  148.  
  149.  
  150.        1.1 Introduction to Regression Analysis
  151.  
  152.        The  goal  of  regression  analysis  is  to determine the values of
  153.        parameters for a function that cause the function  to  best  fit  a
  154.        set  of  data observations that you provide.  In linear regression,
  155.        the function is a linear (straight line)  equation.   For  example,
  156.        if  we  assume  the  value of an automobile decreases by a constant
  157.        amount each year after its purchase, and for each mile driven,  the
  158.        following  linear  function  would predict its value (the dependent
  159.        variable) as a function of the two independent variables which  are
  160.        age and miles:
  161.  
  162.             value = price + depage*age + depmiles*miles
  163.  
  164.        where  'value',  the  dependent  variable, is the value of the car,
  165.        'age' is the age of the car, and 'miles' is  the  number  of  miles
  166.        that the car has been driven.
  167.  
  168.        The  regression  analysis  performed  by  Nonlin will determine the
  169.        best values of the three parameters, 'price', the  estimated  value
  170.        when  age  is  0  (i.e.,  when  the  car  was  new),  'depage', the
  171.        depreciation that  takes  place  each  year,  and  'depmiles',  the
  172.        depreciation  for  each  mile  driven.   The values of 'depage' and
  173.        'depmiles' will be negative because the car loses value as age  and
  174.        miles increase.
  175.  
  176.        In  a  problem  such  as  this  car  depreciation example, you must
  177.        provide a data file containing the  values  of  the  dependent  and
  178.        independent  variables  for a set of observations.  In this example
  179.        each observation record would contain three  numbers:  value,  age,
  180.        and  miles,  collected  from  used  car ads for the same model car.
  181.        The more observations you provide, the more accurate  will  be  the
  182.        estimate  of  the  parameters.  The Nonlin commands to perform this
  183.        regression are shown below:
  184.  
  185.             VARIABLES VALUE,AGE,MILES
  186.             PARAMETERS PRICE,DEPAGE,DEPMILES
  187.             FUNCTION VALUE = PRICE + DEPAGE*AGE + DEPMILES*MILES
  188.             DATA
  189.             (data values go here)
  190.  
  191.        Once the values of the parameters are  determined  by  Nonlin,  you
  192.        can  use the formula to predict the value of a car based on its age
  193.  
  194.  
  195.                                         1
  196.  
  197.        Chapter 1. Introduction                                           2
  198.  
  199.  
  200.        and miles driven.  For example,  if  Nonlin  computed  a  value  of
  201.        16000  for  price,  -1000  for depage, and -0.15 for depmiles, then
  202.        the function
  203.  
  204.             value = 16000 - 1000*age - 0.15*miles
  205.  
  206.        could be used to estimate the value of a car with a known  age  and
  207.        number of miles.
  208.  
  209.        If  a perfect fit existed between the function and the actual data,
  210.        the actual value of each car in your data file would exactly  equal
  211.        the  predicted  value.   Typically,  however, this is not the case,
  212.        and the difference  between  the  actual  value  of  the  dependent
  213.        variable  and  its  predicted value for a particular observation is
  214.        the error of the estimate which is  known  as  the  "deviation"  or
  215.        "residual".   The  goal  of regression analysis is to determine the
  216.        values of the parameters which minimize  the  sum  of  the  squared
  217.        residual  values  for  the set of observations.  This is known as a
  218.        "least squares" regression fit.
  219.  
  220.        1.2 Introduction to Nonlin
  221.  
  222.        Nonlin is a very powerful regression analysis  program.   Using  it
  223.        you  can  perform  multivariate,  linear,  polynomial, exponential,
  224.        logistic, and general nonlinear regression.   What  this  means  is
  225.        that  you  specify  the  form  of  the function to be fitted to the
  226.        data,  and  the  function  may  include  nonlinear  terms  such  as
  227.        variables  raised  to  powers  and  library  functions such as log,
  228.        exponential, sine, etc.  Nonlin uses a state-of-the-art  regression
  229.        algorithm  that  works  as well, or better, than any you are likely
  230.        to find in commercial statistical packages.
  231.  
  232.        As  an  example   of   nonlinear   regression,   consider   another
  233.        depreciation  problem.   The value of a used airplane decreases for
  234.        each year of its age.  Assuming the value of a plane falls  by  the
  235.        same amount each year, a linear function relating value to age is:
  236.  
  237.             Value = p0 + p1*Age
  238.  
  239.        Where  'p0'  and  'p1'  are  the  parameters whose values are to be
  240.        determined.  However, it is a well  known  fact  that  planes  (and
  241.        automobiles)  lose  more  value the first year than the second, and
  242.        more the second than the third, etc.   This  means  that  a  linear
  243.        (straight  line)  function  cannot accurately model this situation.
  244.        A better, nonlinear, function is:
  245.  
  246.             Value = p0 + p1*exp(-p2*Age)
  247.  
  248.        Where the 'exp' function is the value of  e  (2.7182818...)  raised
  249.        to   a  power.   This  type  of  function  is  known  as  "negative
  250.        exponential" and is appropriate for modeling a value whose rate  of
  251.        decrease  is  proportional  to the difference between the value and
  252.        some base value.  The  F33YEAR.NLR  example  command  file  fits  a
  253.        linear  function  to  the  value of used airplanes.  The F33EXP.NLR
  254.        example fits a negative exponential  function  to  the  same  data.
  255.  
  256.        Chapter 1. Introduction                                           3
  257.  
  258.  
  259.        Run  both  examples  and compare the fitted functions.  See F33.NLR
  260.        for an example of a multiple  regression  using  three  independent
  261.        variables.
  262.  
  263.        Much  of the convenience of Nonlin comes from the fact that you can
  264.        enter complicated  functions  using  ordinary  algebraic  notation.
  265.        Examples of functions that can be handled with Nonlin include:
  266.  
  267.             Linear:        Y = p0 + p1*X
  268.  
  269.             Quadratic:     Y = p0 + p1*X + p2*X^2
  270.  
  271.             Multivariate:  Y = p0 + p1*X + p2*Z + p3*X*Z
  272.  
  273.             Exponential:   Y = p0 + p1*exp(X)
  274.  
  275.             Periodic:      Y = p0 + p1*sin(p2*X)
  276.  
  277.             Misc:          Y = p0 + p1*Y + p2*exp(Y) + p3*sin(Z)
  278.  
  279.        In  other words, the function is a general expression involving one
  280.        dependent variable (on the left of the equal  sign),  one  or  more
  281.        independent  variables, and one or more parameters whose values are
  282.        to be estimated.
  283.  
  284.        Because  of  its  generality,  Nonlin  can  perform  all   of   the
  285.        regressions  handled  by ordinary linear or multivariate regression
  286.        programs as well as nonlinear regression.   However,  in  order  to
  287.        handle  nonlinear  functions,  Nonlin  uses  an  iterative function
  288.        optimization algorithm which  is  slower  than  the  simple  linear
  289.        regression  algorithm and has the potential for not converging to a
  290.        solution.
  291.  
  292.        1.3 Installing Nonlin
  293.  
  294.        The Nonlin system consists of the following files:
  295.  
  296.               NONLIN.EXE -- The executable program.
  297.               NONLIN.DOC -- Documentation file.
  298.               NONLIN.FON -- Font file used if you request a plot.
  299.               NONLIN.LJF -- LaserJet font file (registered version only).
  300.                    *.NLR -- Example command files.
  301.             REGISTER.DOC -- Form used to register your use of Nonlin.
  302.  
  303.        To install Nonlin, copy  the  files  into  the  directory  of  your
  304.        choice.   The  registered  version  of Nonlin includes a file named
  305.        NONLIN.LJF with the fonts needed for printing plots on HP  LaserJet
  306.        printers.   If  you do not plan to generated hard copy output for a
  307.        LaserJet printer, you may  delete  the  NONLIN.LJF  file.   If  the
  308.        NONLIN.FON  and NONLIN.LJF files are not in your current directory,
  309.        you  must  place  a  command  of  the  following   form   in   your
  310.        AUTOEXEC.BAT file to tell Nonlin where to look for its font files:
  311.  
  312.             SET NONLIN=directory
  313.  
  314.        Chapter 1. Introduction                                           4
  315.  
  316.  
  317.        Where  "directory"  is  the  name of the device and directory where
  318.        the files are located.  For example, if the files are located in  a
  319.        directory  named  NONLIN on the C disk, the following command could
  320.        be used:
  321.  
  322.             SET NONLIN=C:\NONLIN
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.                                     Chapter 2
  330.  
  331.                                   Using Nonlin
  332.  
  333.  
  334.  
  335.  
  336.        Once Nonlin has been installed, it  can  be  started  using  a  DOS
  337.        command of the form:
  338.  
  339.             NONLIN command_file [listing_file]
  340.  
  341.        where  "command_file"  is  the  name  of  a  file containing Nonlin
  342.        commands that control  the  analysis.   The  sections  that  follow
  343.        describe  these  commands.   If  you  specify  a  command file name
  344.        without an extension, ".NLR" is used as the default extension.   If
  345.        you  omit  the  command  file  name,  Nonlin  prints  a list of its
  346.        commands.
  347.  
  348.        A "listing_file" parameter may be specified on  the  command  line.
  349.        If  you specify a file name, the output (results) of the regression
  350.        analysis are written to this file.  If no file name  is  specified,
  351.        the  output  is  written  to  a  file  with  the  same  name as the
  352.        command_file but with the  extension  ".LST".   If  you  specify  a
  353.        listing  file  name without an extension, ".LST" is provided as the
  354.        default extension.  Specify NUL for the listing_file if you do  not
  355.        want to generate an output file.
  356.  
  357.        For  example, to process a command file named LINEAR.NLR, directing
  358.        output to a file named LINEAR.LST, use the following command:
  359.  
  360.             NONLIN LINEAR
  361.  
  362.        To do the same analysis, directing  the  output  to  a  file  named
  363.        MODEL1.LST, use the following command:
  364.  
  365.             NONLIN LINEAR MODEL1
  366.  
  367.        Normally  Nonlin commands and computed results are displayed on the
  368.        screen and written to the listing file; however,  if  you  place  a
  369.        NOECHO   command  in  your  command  file  the  screen  display  is
  370.        suppressed but the output is still written to the listing file.
  371.  
  372.        At this point, I suggest you pause in your reading and try  running
  373.        a  Nonlin  example to get a feel for how it works.  Several example
  374.        files  with  the   extension   ".NLR"   are   provided   with   the
  375.        distribution.   LINEAR.NLR  is a good one to start with followed by
  376.        AIDS.NLR.  If  you  do  not  have  a  graphics  monitor,  edit  the
  377.        LINEAR.NLR  command  file  (and other example files) and remove the
  378.        PLOT command.
  379.  
  380.  
  381.                                         5
  382.  
  383.        Chapter 2. Using Nonlin                                           6
  384.  
  385.  
  386.        2.1 Function Specification
  387.  
  388.        Much of the power of Nonlin comes from its ability to estimate  the
  389.        value  of  parameters  that  are part of complicated functions that
  390.        you enter in ordinary algebraic form.  This  section  explains  the
  391.        arithmetic  operators  and  built-in  functions  that  are  used to
  392.        specify a function.
  393.  
  394.        2.1.1 Arithmetic Operators
  395.  
  396.        The following arithmetic operators may be used in expressions:
  397.  
  398.             +        addition
  399.             -        subtraction or unary minus
  400.             *        multiplication
  401.             /        division
  402.             ** or ^  exponentiation
  403.  
  404.        Exponentiation   has   the   highest   precedence,   followed    by
  405.        multiplication  and  division,  and  then addition and subtraction.
  406.        Parentheses may be used to group terms.
  407.  
  408.        2.1.2 Numeric Constants
  409.  
  410.        Numeric constants may be written in their natural form (1, 0,  1.5,
  411.        .0003,  etc.) or in exponential form, n.nnnEppp, where n.nnn is the
  412.        base value and ppp is the  power  of  ten  by  which  the  base  is
  413.        multiplied.   For example, the number 1.5E4 is equivalent to 15000.
  414.        All numbers are treated as "floating point" values,  regardless  of
  415.        whether  a decimal point is specified or not.  As a convenience for
  416.        entering time values, if a value contains one or more  colons,  the
  417.        portion  to  the  left  of  the  colon  is  multiplied  by 60.  For
  418.        example, 1:00 is equivalent to 60; 1:00:00 is equivalent to 3600.
  419.  
  420.        2.1.3 Symbolic Constants
  421.  
  422.        You can use the CONSTANT command to associate symbolic  names  with
  423.        constant  numeric  values.   When  you use the symbolic name in the
  424.        function the numeric value is substituted for the symbolic name.
  425.  
  426.        2.1.4 Built-in Constants
  427.  
  428.        There are two built-in numeric  constants  that  may  be  specified
  429.        using  symbolic names.  The symbolic name "PI" is equivalent to the
  430.        value of pi, 3.14159...  Similarly, the symbolic  constant  "E"  is
  431.        equivalent  to the base of natural logarithms, e, 2.7182818...  You
  432.        may write PI and E using either upper or lower case.
  433.  
  434.        Chapter 2. Using Nonlin                                           7
  435.  
  436.  
  437.        2.1.5 Built-in Functions
  438.  
  439.        The following functions are built into Nonlin and may  be  used  in
  440.        expressions:
  441.  
  442.        ABS(x) -- Absolute value of x.
  443.  
  444.        ACOS(x) -- Arc cosine of x.  Angles are measured in radians.
  445.  
  446.        ASIN(x) -- Arc sine of x.  Angles are measured in radians.
  447.  
  448.        ATAN(x) -- Arc tangent of x.  Angles are measured in radians.
  449.  
  450.        BETAI(x,a,b)  -- Incomplete beta function: Ix(a,b).  The incomplete
  451.            beta function can be used to compute a variety  of  statistical
  452.            functions.   For  example,  the probability of Student's t with
  453.            'df'   degrees   of    freedom    can    be    computed    with
  454.            BETAI(df/(df+t^2),.5*df,.5).    The   probability   of   the  F
  455.            statistic with df1 and df2 degrees of freedom can  be  computed
  456.            with 2*BETAI(df2/(df2+df1*f),.5*df2,.5*df1).
  457.  
  458.        COS(x) -- Cosine of x.  Angles are measured in radians.
  459.  
  460.        COSH(x) -- Hyperbolic cosine of x.
  461.  
  462.        COT(x) -- Cotangent of x.  (COT(x) = 1/TAN(x)).  Angle in radians.
  463.  
  464.        CSC(X) -- Cosecant of x.  (CSC(x) = 1/SIN(x)).  Angle in radians.
  465.  
  466.        CTOP(angle)  --  Convert  an angle in the compass coordinate system
  467.            to a polar coordinate angle.  The polar coordinate  system  has
  468.            the  origin of an angle along the positive X axis and the angle
  469.            increases  in  a  counter-clockwise  direction.   The   compass
  470.            coordinate  system has the positive Y axis as the origin (i.e.,
  471.            north) and the angle increases in a clockwise  direction.   The
  472.            angle  must  be specified in radians.  The returned value is in
  473.            the range 0 to 2*pi.  The PTOC function  performs  the  reverse
  474.            transformation.
  475.  
  476.        DEG(x)  --  Converts  an  angle,  x,  measured  in  radians  to the
  477.            equivalent number of degrees.
  478.  
  479.        EI1(alpha,phi) -- Elliptic integral of the  first  kind.   Computes
  480.            the   integral   from   0   to  phi  radians  of  the  function
  481.            d.phi/sqrt(1-k**2*sin(phi)**2), where k  =  sin(alpha).   alpha
  482.            and phi must be in the range 0 to pi/2.
  483.  
  484.        EI2(alpha,phi)  --  Elliptic integral of the second kind.  Computes
  485.            the  integral  from  0  to  phi   radians   of   the   function
  486.            sqrt(1-k**2*sin(phi)**2)*d.phi,  where  k  = sin(alpha).  alpha
  487.            and phi must be in the range 0 to pi/2.
  488.  
  489.        EIC1(alpha) --  Complete  elliptic  integral  of  the  first  kind.
  490.            Computes  the  integral  from 0 to pi/2 radians of the function
  491.  
  492.        Chapter 2. Using Nonlin                                           8
  493.  
  494.  
  495.            d.phi/sqrt(1-k**2*sin(phi)**2), where k  =  sin(alpha).   alpha
  496.            must be in the range 0 to (less than) pi/2.
  497.  
  498.        EIC2(alpha)  --  Complete  elliptic  integral  of  the second kind.
  499.            Computes the integral from 0 to pi/2 radians  of  the  function
  500.            sqrt(1-k**2*sin(phi)**2)*d.phi,  where  k  = sin(alpha).  alpha
  501.            must be in the range 0 to pi/2.
  502.  
  503.        ERF(x) -- Standard error function of x.
  504.  
  505.        EXP(x) -- e (base of natural logarithms) raised to the x power.
  506.  
  507.        FAC(x) -- x factorial (x!).  Note, the  FAC  function  is  computed
  508.            using  the  GAMMA  function  (FAC(x)=GAMMA(x+1)) so non-integer
  509.            argument values may be computed.
  510.  
  511.        GAMMA(x) -- Gamma function.  Note, GAMMA(x+1) = x!  (x factorial).
  512.  
  513.        GAMMAI(x)  --   Reciprocal   of   GAMMA   function   (GAMMAI(x)   =
  514.            1/GAMMA(x)).
  515.  
  516.        GAMMALN(x) -- Log (base e) of the GAMMA function.
  517.  
  518.        HAV(x)  --  Haversine  of  x.   (HAV(x)  = (1-COS(x))/2).  Angle in
  519.            radians.
  520.  
  521.        J0(x) -- Bessel function of the first kind, order zero.
  522.  
  523.        J1(x) -- Bessel function of the first kind, order one.
  524.  
  525.        JN(n,x) -- Bessel function of the first kind, order n.
  526.  
  527.        LOG(x) -- Natural logarithm of x.
  528.  
  529.        LOG10(x) -- Base 10 logarithm of x.
  530.  
  531.        LOG2(x) -- Base 2 logarithm of x.
  532.  
  533.        MAX(x1,x2) -- Maximum value of x1 or x2.
  534.  
  535.        MIN(x1,x2) -- Minimum value of x1 or x2.
  536.  
  537.        NORMAL(x) -- Normal probability distribution of x.  X is  in  units
  538.            of  standard  deviations  from  the  mean.   See  also  the NPD
  539.            function.  NORMAL(x) = NPD(x,0,1);
  540.  
  541.        NPD(x,mean,std)  --  Normal  probability  distribution  of  x  with
  542.            specified  mean  and  standard  deviation.   X  is  in units of
  543.            standard deviations from the mean.
  544.  
  545.        PAREA(x) -- Area under the normal  probability  distribution  curve
  546.            from  -infinity  to  x.  (i.e., integral from -infinity to x of
  547.            NORMAL(x)).
  548.  
  549.        Chapter 2. Using Nonlin                                           9
  550.  
  551.  
  552.        PTOC(angle) -- Convert an angle in the polar coordinate  system  to
  553.            a  compass  coordinate  angle.  The polar coordinate system has
  554.            the origin of an angle along the positive X axis and the  angle
  555.            increases   in  a  counter-clockwise  direction.   The  compass
  556.            coordinate system has the positive Y axis as the origin  (i.e.,
  557.            north)  and  the angle increases in a clockwise direction.  The
  558.            angle must be specified in radians.  The returned value  is  in
  559.            the  range  0  to 2*pi.  The CTOP function performs the reverse
  560.            transformation.
  561.  
  562.        PTORX(angle,distance) -- Convert a position  in  polar  coordinates
  563.            to  the  corresponding  rectangular  coordinate.  This function
  564.            returns the X coordinate of the position; use PTORY  to  obtain
  565.            the  Y  coordinate.   Note:  polar coordinates are specified in
  566.            radians with the positive X  axis  being  the  origin  for  the
  567.            angle  and  with  the angle increasing in the counter-clockwise
  568.            direction.
  569.  
  570.        PTORY(angle,distance) -- Convert a position  in  polar  coordinates
  571.            to  the  corresponding  rectangular  coordinate.  This function
  572.            returns the Y coordinate of the position; use PTORX  to  obtain
  573.            the  X  coordinate.   Note:  polar coordinates are specified in
  574.            radians with the positive X  axis  being  the  origin  for  the
  575.            angle  and  with  the angle increasing in the counter-clockwise
  576.            direction.
  577.  
  578.        PULSE(a,x,b) -- Pulse function.  If the value of x is less  than  a
  579.            or  greater  than  b,  the value of the function is 0.  If x is
  580.            greater than or equal to a and less than or  equal  to  b,  the
  581.            value  of  the  function is 1.  In other words, it is 1 for the
  582.            domain (a,b) and zero elsewhere.  If you need a  function  that
  583.            is   zero  in  the  domain  (a,b)  and  1  elsewhere,  use  the
  584.            expression (1-PULSE(a,x,b)).
  585.  
  586.        RAD(x) -- Converts an angle measured in degrees to  the  equivalent
  587.            number of radians.
  588.  
  589.        RTOPA(x,y)  --  Convert  a  rectangular  coordinate  (x,y)  to  the
  590.            corresponding   polar   coordinate   (angle,distance).     This
  591.            function  returns  the  angle,  use  RTOPD  to get the distance
  592.            coordinate.  The returned value of the function is in units  of
  593.            radians   and   is  in  the  range  0  to  2*pi.   Note:  polar
  594.            coordinates are specified in radians with the positive  X  axis
  595.            being  the  origin  for the angle and with the angle increasing
  596.            in the counter-clockwise direction.
  597.  
  598.        RTOPD(x,y)   --   Convert   a   rectangular   coordinate   to   the
  599.            corresponding  polar  coordinate.   This  function  returns the
  600.            distance from the origin, use RTOPA to get  the  angle.   Note:
  601.            polar  coordinates are specified in radians with the positive X
  602.            axis being  the  origin  for  the  angle  and  with  the  angle
  603.            increasing in the counter-clockwise direction.
  604.  
  605.        SEC(x) -- Secant of x.  (SEC(x) = 1/COS(x)).  Angle in radians.
  606.  
  607.        Chapter 2. Using Nonlin                                          10
  608.  
  609.  
  610.        SEL(a1,a2,v1,v2)  --  If  a1  is less than a2 then the value of the
  611.            function is v1.  If a1 is greater than or  equal  to  a2,  then
  612.            the value of the function is v2.
  613.  
  614.        SIN(x)  --  Sine  of  x.   Angles  are  measured  in  radians.  See
  615.            TREND.NLR for an example of a function with a  sin  term.   See
  616.            also  Section  4.9  for  additional information about using sin
  617.            terms in functions.
  618.  
  619.        SINH(x) -- Hyperbolic sine of x.
  620.  
  621.        SQRT(x) -- Square root of x.
  622.  
  623.        STEP(a,x) -- Step function.  If x is less than a, the value of  the
  624.            function  is  0.  If x is greater than or equal to a, the value
  625.            of the function is 1.  If you need a function which is 1 up  to
  626.            a  certain  value  and  then  0  beyond  that  value,  use  the
  627.            expression STEP(x,a).  See PIECE.NLR for  an  example  of  this
  628.            function.
  629.  
  630.        T(n,x) -- Chebyshev polynomial of order n.
  631.  
  632.        TAN(x) -- Tangent of x.  Angles are measured in radians.
  633.  
  634.        TANH(x) -- Hyperbolic tangent of x.
  635.  
  636.        Y0(x) -- Bessel function of the second kind, order zero.
  637.  
  638.        Y1(x) -- Bessel function of the second kind, order one.
  639.  
  640.        YN(n,x) -- Bessel function of the second kind, order n.
  641.  
  642.        2.2 Nonlin Command Files
  643.  
  644.        The  commands  described  in  this  section are placed in a command
  645.        file.  When you start Nonlin, you specify the name of  the  command
  646.        file  as  a  parameter  on  the  command line.  For example, if the
  647.        command file name is CAR.NLR, the  following  command  would  cause
  648.        Nonlin to execute the commands in the command file:
  649.  
  650.             NONLIN CAR.NLR
  651.  
  652.        If  you  do not specify a file name extension for the command file,
  653.        ".NLR" is used by default.  The output of the regression  for  this
  654.        example  would  be  written to a file named CAR.LST.  Command files
  655.        can be created using a text editor such as EDIT-32, EDLIN, the  DOS
  656.        EDIT  program,  or  any  other  editor  or  word  processor that is
  657.        capable of creating an ascii text file without formatting codes.
  658.  
  659.        Comments may be placed in command files by  preceding  the  comment
  660.        with  an  exclamation point.  Entire lines may be used for comments
  661.        and comments can be placed at the end of commands.
  662.  
  663.        Command lines can be continued by placing a semicolon character  as
  664.        the  last non-blank character on the line (a comment may follow the
  665.  
  666.        Chapter 2. Using Nonlin                                          11
  667.  
  668.  
  669.        semicolon)  and  then  continuing  the  command  on  the  following
  670.        line(s).
  671.  
  672.        Every  command file must contain the following commands: VARIABLES,
  673.        PARAMETERS, FUNCTION, and DATA.  The DATA statement introduces  the
  674.        data  for  the  analysis  and  must be the last command in the file
  675.        (data records may follow it).  Other,  optional,  commands  may  be
  676.        interspersed  in  the command file.  The following is an example of
  677.        a complete command file:
  678.  
  679.             VARIABLES  VALUE,AGE,MILES
  680.             PARAMETERS BASE,DEPAGE,DEPMILES
  681.             FUNCTION VALUE = BASE + DEPAGE*AGE + DEPMILES*MILES
  682.             DATA
  683.             (data records follow)
  684.  
  685.  
  686.  
  687.  
  688.  
  689.  
  690.                                     Chapter 3
  691.  
  692.                                  Nonlin Commands
  693.  
  694.  
  695.  
  696.  
  697.        The following is a list of the valid Nonlin commands  that  can  be
  698.        placed   in  a  Nonlin  command  file.   Command  keywords  may  be
  699.        abbreviated  to  the  first  three  letters  except  for  CONSTANT,
  700.        CONSTRAIN,  and  CONFIDENCE  which  require  six  letters.   Nonlin
  701.        commands are not case sensitive.
  702.  
  703.        3.1 TITLE
  704.  
  705.        TITLE string (optional) -- Specifies a title line that  is  printed
  706.        with the results of the analysis.
  707.  
  708.        3.2 VARIABLES
  709.  
  710.        VARIABLES  var1,var2,...   (required) -- Specifies the names of the
  711.        variables that  will  be  used  in  the  function.   The  dependent
  712.        variable  and  the  independent  variables  must be specified.  The
  713.        order of the variable names  must  match  the  order  of  the  data
  714.        values  on each observation record (the dependent variable may come
  715.        before or after the independent variables).  You  may  define  more
  716.        variables  than  you actually use in the function specification.  A
  717.        maximum of  20  variables  may  be  specified.   The  length  of  a
  718.        variable   name  is  limited  to  10  characters.   Capitalize  the
  719.        variable names as you want them displayed in the results.
  720.  
  721.        You may specify all of the  variables  on  a  single  command  line
  722.        (which  may  be  continued),  or  you  may  use  multiple VARIABLES
  723.        commands.  If you use multiple commands, the order  in  which  they
  724.        appear  in  the  command  file must match the order of the variable
  725.        values on each observation  record.   The  VARIABLES  command  must
  726.        precede  the  FUNCTION  command.   See  F33.NLR for an example of a
  727.        multiple regression using three independent variables.
  728.  
  729.        3.3 PARAMETERS
  730.  
  731.        PARAMETERS param1[=initial1],param2[=initial2],...   (required)  --
  732.        Specifies  the  names  of  the  parameters  whose  values are to be
  733.        determined by Nonlin.  Nonlin is  capable  of  handling  up  to  25
  734.        parameters.   The  parameter  names may not exceed 10 characters in
  735.        length.  Do not specify any parameters that are  not  used  in  the
  736.        function.    The  PARAMETERS  command  must  precede  the  FUNCTION
  737.        command.
  738.  
  739.  
  740.  
  741.  
  742.                                        12
  743.  
  744.        Chapter 3. Nonlin Commands                                       13
  745.  
  746.  
  747.        Optionally, an initial estimate  of  the  parameter  value  may  be
  748.        specified  by  following  the parameter name with an equal sign and
  749.        the value.  If no  value  is  specified,  1  is  used  by  default.
  750.        Specifying  an  initial value that is near the actual value usually
  751.        speeds  up  the  operation  of  Nonlin  and  may   enable   it   to
  752.        successfully  converge  to  a  solution.   If  Nonlin  is unable to
  753.        converge to a solution, try specifying  different  starting  values
  754.        for  the  parameters.  Try to specify a value that at least has the
  755.        correct sign as the expected final value.
  756.  
  757.        The CONSTRAIN command (see page 14) can be used to limit the  range
  758.        of  values  for parameters.  The SWEEP command (see page 14) can be
  759.        used to perform the regression analysis with a range  of  parameter
  760.        initial  values.   The  CONSTANT  command  can  be used to define a
  761.        parameter with a fixed value.
  762.  
  763.        3.4 CONFIDENCE
  764.  
  765.        CONFIDENCE [percent] (optional)  --  Specifies  that  a  confidence
  766.        interval  is  to  be  printed  for  each  estimated parameter.  The
  767.        purpose of regression analysis is to determine  the  best  estimate
  768.        of   parameter   values.    However,   as   with  most  statistical
  769.        calculations, the values  determined  are  estimates  of  the  true
  770.        values.   The  CONFIDENCE  command  causes  Nonlin to print a table
  771.        showing the range of possible values for  each  parameter  given  a
  772.        specified  confidence value.  The "percent" parameter specifies the
  773.        probability that that the actual value of the parameter  is  within
  774.        the confidence interval to be computed.  For example, the command
  775.  
  776.             CONFIDENCE 95
  777.  
  778.        specifies  that  the confidence interval(s) are to be computed such
  779.        that there is a 95 percent probability that the  actual  values  of
  780.        the  parameters  are  within  the  intervals  (or that there is a 5
  781.        percent chance that the  parameters  are  outside  the  intervals).
  782.        The  "percent"  parameter  may  range  from  50  to 99.999.  If the
  783.        CONFIDENCE command is used without specifying a percent  value,  90
  784.        is used by default.
  785.  
  786.        3.5 CONSTANT
  787.  
  788.        CONSTANT  parameter=value  (optional)  --  Specifies  the name of a
  789.        symbolic constant and associates a numeric  value.   You  may  then
  790.        use  the  symbolic  name  in  the  function  and  the corresponding
  791.        constant numeric value will be substituted.  This  is  useful  when
  792.        you  are  trying out different models and want to easily be able to
  793.        change a constant value for each run.  The CONSTANT  commands  must
  794.        precede  the  FUNCTION  command.   The following is an example of a
  795.        symbolic constant named "Roomtemp" that causes the value 73  to  be
  796.        substituted in the function:
  797.  
  798.        Chapter 3. Nonlin Commands                                       14
  799.  
  800.  
  801.             Variable Time            ! Cooling time in seconds
  802.             Variable Temp            ! Temperature of object
  803.             Constant Roomtemp = 73        ! Ambient temperature
  804.             Parameter InitTemp        ! Initial temperature
  805.             Parameter Coolrate        ! Cooling rate factor
  806.             Function Temp = Roomtemp + InitTemp * exp(-Coolrate * Time)
  807.  
  808.        3.6 CONSTRAIN
  809.  
  810.        CONSTRAIN  parameter=lowvalue,highvalue  (optional)  -- Specifies a
  811.        lower and upper limit on the range of a  parameter  value.   During
  812.        the  solution  process,  Nonlin  may  allow  a parameter's value to
  813.        temporarily move in a direction away from its  final  value.   With
  814.        some  functions  it  may  be necessary to constrain the parameter's
  815.        value so that it does not go negative (e.g., if the function  takes
  816.        the  square root of the parameter), or zero (if the parameter is in
  817.        a denominator).  If a parameter is tightly constrained, Nonlin  may
  818.        report  "singular  convergence" because it is unable to converge to
  819.        an optimum value of the parameter; however,  the  estimated  values
  820.        of other parameters may be useful.
  821.  
  822.        Only  a single parameter and its associated limits may be specified
  823.        on each CONSTRAIN command,  but  you  may  use  multiple  CONSTRAIN
  824.        commands.   The  PARAMETERS  command  must  precede  the  CONSTRAIN
  825.        command.  Use  the  CONSTANT  command  if  you  wish  to  define  a
  826.        parameter with a fixed value.
  827.  
  828.        The  parameter  value  is  allowed  to  range  from  'lowvalue'  to
  829.        'highvalue'.  If you want to prevent a parameter value  from  going
  830.        to  zero,  you  must  specify a value greater than zero for the low
  831.        value (specifying zero would allow it to reach, but not  go  below,
  832.        zero).   For example, the following command constrains the value of
  833.        'age' to be greater than zero and less than or equal to 100:
  834.  
  835.             CONSTRAIN AGE = .0001,100
  836.  
  837.        See the COOLING.NLR, F33EXP.NLR, and POWER.NLR files  for  examples
  838.        of the CONSTRAIN command.
  839.  
  840.        3.7 COVARIANCE
  841.  
  842.        COVARIANCE  (optional) -- Causes the variance-covariance matrix for
  843.        the parameters to be printed.
  844.  
  845.        3.8 SWEEP
  846.  
  847.        SWEEP parameter=lowvalue,highvalue,stepsize (optional) --
  848.        Specifies  that  the  regression  analysis  is  to   be   performed
  849.        repeatedly  with  a  set of starting values for the parameter.  The
  850.        first  analysis  is  performed  with  the  parameter   having   the
  851.        'lowvalue';   the   value  of  'stepsize'  is  then  added  to  the
  852.        parameter's initial value and  the  analysis  is  performed  again.
  853.        The  process  is  repeated until the value of the parameter reaches
  854.        'highvalue'.
  855.  
  856.        Chapter 3. Nonlin Commands                                       15
  857.  
  858.  
  859.        Each time the analysis is performed the value of the  residual  sum
  860.        of  squares  is  compared  with  the  best  previous  result.   The
  861.        estimated values of the parameters for the best starting value  are
  862.        saved and used for the final analysis and report.
  863.  
  864.        Only  one parameter may be specified on each SWEEP command, but you
  865.        may have as many SWEEP  commands  as  there  are  parameters.   The
  866.        number  of  regression  analyses  performed  will  be  equal to the
  867.        product of the number of parameter values for each SWEEP command.
  868.  
  869.        The  SWEEP  command  is  useful  when  you  are  trying  to  fit  a
  870.        complicated  function  that  may  have "local minimum" values other
  871.        than the "global minimum".  Periodic  functions  (sin,  cos,  etc.)
  872.        are especially troublesome.
  873.  
  874.        See the SINE.NLR command file for an example of the SWEEP command.
  875.  
  876.        3.9 FUNCTION
  877.  
  878.        FUNCTION  depvar = function (required) -- Specifies the form of the
  879.        function whose parameters are  to  be  determined.   The  dependent
  880.        variable  must  be  the  only  thing to the left of the equal sign.
  881.        The  expression  to  the  right  of  the  equal  sign  may  contain
  882.        variables,  parameters, constants, operators, and library functions
  883.        such  as  sqrt,  sin,  exp,  etc.   The  VARIABLES  and  PARAMETERS
  884.        commands  must  have  appeared  in  the  command  file  before  the
  885.        FUNCTION command, and all variables  and  parameters  used  in  the
  886.        function  must have been specified on those commands.  Some example
  887.        FUNCTION commands are show below:
  888.  
  889.             FUNCTION  Y = P0 + P1*X
  890.  
  891.             FUNCTION  DISTANCE = .5 * ACCEL * TIME^2
  892.  
  893.             FUNCTION  VALUE = PRICE + YRDEP*AGE + MILEDEP*MILES
  894.  
  895.             FUNCTION  POPULATN = BASE * GROWRATE * EXP(TIME)
  896.  
  897.        3.10 TOLERANCE
  898.  
  899.        TOLERANCE  value  (optional,  default=1E-10)   --   Specifies   the
  900.        tolerance  factor  that is used to determine when the algorithm has
  901.        converged to a solution.  Reducing the tolerance value may  produce
  902.        a  slightly  more  accurate  result but will increase the number of
  903.        iterations and the running time.  The tolerance value  must  be  in
  904.        the range 1E-15 to 1E-1.
  905.  
  906.        3.11 ITERATIONS
  907.  
  908.        ITERATIONS  value  (optional,  default=50) -- Specifies the maximum
  909.        number of iterations that should be  attempted  by  the  algorithm.
  910.        If  the  solution  does  not converge to the limit specified by the
  911.        TOLERANCE command (or to the default tolerance) before the  maximum
  912.        number  of  iterations  is  reached, the process is stopped and the
  913.  
  914.        Chapter 3. Nonlin Commands                                       16
  915.  
  916.  
  917.        results are printed.  Failure  to  converge  before  the  specified
  918.        number of iterations could be caused by one of three things:
  919.  
  920.        1.  The  maximum  allowed  number  of  iterations may be too small.
  921.            Try using an ITERATIONS command with a larger value.
  922.  
  923.        2.  The tolerance  factor  may  be  too  small.   Even  a  properly
  924.            converging  solution  will  eventually "level off" or oscillate
  925.            around a good, but non-zero, sum of squares value.   Try  using
  926.            the TOLERANCE command to increase the tolerance value.
  927.  
  928.        3.  The  function may not be converging.  Try specifying better (or
  929.            at least different) starting values for the parameters  on  the
  930.            PARAMETERS  command.   Consider  using  the  SWEEP  command  to
  931.            specify a range of parameter starting values.
  932.  
  933.        3.12 REGISTER
  934.  
  935.        REGISTER  (optional)  --  The  REGISTER  command   suppresses   the
  936.        copyright  and  registration  message  that is otherwise written to
  937.        the listing file generated by  the  shareware  version  of  Nonlin.
  938.        The  REGISTER  command  performs  no  function  for  the registered
  939.        version of Nonlin.  The use of this command is a reminder that  you
  940.        should  register  your  use of Nonlin.  Note, if you find Nonlin to
  941.        be  useful,  educational,  or  entertaining  you  are  expected  to
  942.        register  your use so that the author can be justly compensated and
  943.        that development of the program can  continue.   Use  the  form  in
  944.        REGISTER.DOC (or on page 44) to register your use.
  945.  
  946.        3.13 OUTPUT
  947.  
  948.        OUTPUT  [TO file] var1,var2,...  (optional) -- Specifies that after
  949.        the analysis is  completed,  data  values  are  to  be  printed  or
  950.        written  to  a  file.   If  the "TO file" portion of the command is
  951.        specified, the output is written to the specified  file.   If  this
  952.        portion  of  the  command is omitted, the output values are printed
  953.        along with the results.  If a file name  is  specified  without  an
  954.        extension, ".OUT" is used by default.
  955.  
  956.        The  list  of variable names determines which variables are written
  957.        to the file and the order  in  which  the  values  appear  in  each
  958.        output  record.   Any  variable  previously declared on a VARIABLES
  959.        command may be  specified.   In  addition,  the  following  special
  960.        variable names may appear in the output list:
  961.  
  962.        $OBS   --   The  observation  record  number,  starting  at  1  and
  963.        increasing by 1.
  964.  
  965.        $PREDICTED -- The predicted value for the  dependent  variable  for
  966.        the  observation,  given  the  independent  variable values and the
  967.        parameters as calculated by the analysis.
  968.  
  969.        $RESIDUAL --  The  difference  between  the  actual  value  of  the
  970.        dependent variable and its predicted value.
  971.  
  972.        Chapter 3. Nonlin Commands                                       17
  973.  
  974.  
  975.        Examples of OUTPUT commands are shown below:
  976.  
  977.             OUTPUT AGE,MILES,VALUE,$PREDICTED,$RESIDUAL
  978.             OUTPUT TO GROWTH.DAT $OBS,TIME,POPULATN,$PREDICTED
  979.  
  980.        3.14 POUTPUT
  981.  
  982.        POUTPUT  file  (optional)  --  The  POUTPUT  command specifies that
  983.        Nonlin is to write the final estimated values of the parameters  to
  984.        a  file.  Each parameter value is written to a separate line of the
  985.        file.  This command  is  useful  to  create  a  file  of  estimated
  986.        parameter  values  to  be  fed into another analysis program.  This
  987.        command can also be used to determine the  parameter  estimates  to
  988.        more  significant  digits  than  displayed  in  the printed listing
  989.        because the format used by the POUTPUT command  writes  the  values
  990.        with 18 significant digits.
  991.  
  992.        3.15 PLOT
  993.  
  994.        PLOT  [options]  (optional)  --  Display  a  plot of the calculated
  995.        function and the data observations.   The  PLOT  command  can  only
  996.        handle   a   single   independent  variable  (multiple  independent
  997.        variables would require an n-dimensional  surface  plot);  however,
  998.        there   is  no  restriction  on  the  number  of  parameters  being
  999.        estimated.   If  your  function  has  more  than  one   independent
  1000.        variable you can use the RPLOT command (see Section 3.16).
  1001.  
  1002.        You  must  have a CGA, EGA, or VGA monitor to use the PLOT command,
  1003.        and the NONLIN.FON font file must be in the  current  directory  or
  1004.        in  a  directory  specified by the NONLIN environment variable.  In
  1005.        the plot, the data values you provided are shown as  blue  X's  and
  1006.        the  function  fitted  to  the  data  by Nonlin is shown as a solid
  1007.        green line.  Press Return to proceed with the  analysis  after  you
  1008.        have finished looking at the plot.
  1009.  
  1010.        The following options may be specified on the PLOT command:
  1011.  
  1012.        GRID -- display grid lines to make it easier to estimate values.
  1013.  
  1014.        RESIDUAL  --  draw  vertical lines from each observed data point to
  1015.            the  corresponding  point  on  the  calculated  function  line.
  1016.            These  lines  represent  the  "residual"  value  that Nonlin is
  1017.            attempting to minimize.   See  also  the  descriptions  of  the
  1018.            RPLOT and NPLOT commands on pages 18 and 19.
  1019.  
  1020.        ITERATION  --  draw  a  plot  for  each iteration of the regression
  1021.            analysis.  Normally, the plot is drawn after the  analysis  has
  1022.            converged  to  a  solution; you may use the ITERATION option to
  1023.            observe the function during each iteration of the  analysis  as
  1024.            it converges to fit the data.
  1025.  
  1026.        VALUES  --  use  in  conjunction with the ITERATION option to cause
  1027.            the current parameter values to be displayed  before  the  plot
  1028.            for the current iteration.
  1029.  
  1030.        Chapter 3. Nonlin Commands                                       18
  1031.  
  1032.  
  1033.        PRINT  -- print a copy of the plot on an HP LaserJet printer.  This
  1034.            option is only available in the registered version  of  Nonlin.
  1035.            Nonlin  writes  the  plot  to  the  PRN  device  which  much be
  1036.            attached to an  HP  Series  II  or  Series  III  printer.   The
  1037.            NONLIN.LJF  font  file must be in the current directory or in a
  1038.            directory specified by the NONLIN environment variable.
  1039.  
  1040.        NOPAUSE -- do not pause after the  plot  is  displayed.   Normally,
  1041.            Nonlin  pauses  after  displaying  a  plot to allow you time to
  1042.            examine it; you press Enter  to  continue  execution  once  you
  1043.            have  finished  looking at the plot.  The NOPAUSE option causes
  1044.            Nonlin to continue with execution  without  pausing  after  the
  1045.            plot  is  displayed.   This  is  useful in conjunction with the
  1046.            PRINT option when Nonlin is run in a batch file  and  you  want
  1047.            to  generate  a  hardcopy  plot  but not pause after the screen
  1048.            display.
  1049.  
  1050.        The option keywords may be abbrievated to their first  letter.   If
  1051.        more  than one option is specified, separate them with commas.  For
  1052.        example, to produce a  plot  with  both  grid  lines  and  residual
  1053.        lines, use the following command:
  1054.  
  1055.             PLOT GRID,RESIDUAL
  1056.  
  1057.        3.16 RPLOT
  1058.  
  1059.        RPLOT  [options]  (optional)  --  Display  a  plot  of the residual
  1060.        values.  A "residual" value (or error deviation) is the  difference
  1061.        between   an   actual  value  of  the  dependent  variable  for  an
  1062.        observation and the predicted value based on  the  function  fitted
  1063.        by  the  regression  analysis.   If the calculated function exactly
  1064.        predicted the  actual  observation  values,  all  of  the  residual
  1065.        values  would  be  zero.  However, this is usually not the case and
  1066.        the residual values  show  where,  and  by  how  much,  the  fitted
  1067.        function fails to predict the actual observations.
  1068.  
  1069.        The  RPLOT  command  causes  Nonlin  to  display a plot showing the
  1070.        residual values on the vertical (Y)  axis.   If  there  is  only  a
  1071.        single  independent  variable  it  is  used  for the horizontal (X)
  1072.        axis.  However, if there is more  than  one  independent  variable,
  1073.        you  can  use  the "V=variable" option to specify which variable to
  1074.        use on the X axis.  If there is more than one independent  variable
  1075.        and  you  do  not  use the "V" option, Nonlin displays the residual
  1076.        values on the vertical (Y) axis and the dependent  variable  values
  1077.        on  the  horizontal  (X)  axis.   The  plot  title  indicates which
  1078.        variable was used for the X axis.
  1079.  
  1080.        A residual plot is very useful for determining if the form  of  the
  1081.        function  being  fitted is appropriate for the data values.  If the
  1082.        residual values are randomly distributed in positive  and  negative
  1083.        directions  then  the  form  (shape)  of  the  fitted  function  is
  1084.        probably appropriate for the data and the  deviations  are  due  to
  1085.        random  measurement  errors.   If,  however,  the  residuals show a
  1086.        systematic pattern such as a periodic cycle, then the function  may
  1087.        not  be appropriate for the data values.  See the discussion of the
  1088.  
  1089.        Chapter 3. Nonlin Commands                                       19
  1090.  
  1091.  
  1092.        Durbin-Watson statistic in Section 4.9,  page  24,  for  additional
  1093.        information   about  autocorrelated  residual  values.   The  PLOT,
  1094.        RPLOT, and NPLOT commands may be used in  the  same  command  file.
  1095.        Press  Return  to proceed with the analysis after you have finished
  1096.        looking at the plot.
  1097.  
  1098.        The following options may be specified on the RPLOT command:
  1099.  
  1100.        PRINT -- print a copy of the plot on an HP LaserJet printer.   This
  1101.            option  is  only available in the registered version of Nonlin.
  1102.            Nonlin writes  the  plot  to  the  PRN  device  which  much  be
  1103.            attached to an HP Series II or Series III printer.
  1104.  
  1105.        NOPAUSE  --  do  not  pause after the plot is displayed.  Normally,
  1106.            Nonlin pauses after displaying a plot  to  allow  you  time  to
  1107.            examine  it;  you  press  Enter  to continue execution once you
  1108.            have finished looking at the plot.  The NOPAUSE  option  causes
  1109.            Nonlin  to  continue  with  execution without pausing after the
  1110.            plot is displayed.
  1111.  
  1112.        GRID -- Display grid lines on the plot.
  1113.  
  1114.        V=variable --  specify  which  variable  is  to  be  used  for  the
  1115.            horizontal  (X)  axis.   For  example,  V=YEAR  would cause the
  1116.            "YEAR" variable to be used for the X axis.
  1117.  
  1118.        The option keywords may be abbrievated to their first  letter.   If
  1119.        more than one option is specified, separate them with commas.
  1120.  
  1121.        3.17 NPLOT
  1122.  
  1123.        NPLOT  [options] (optional) -- Display a normal probability plot of
  1124.        the residual values.  In  this  plot,  the  actual  value  of  each
  1125.        residual  is  plotted  on  the  vertical  (Y) axis and the expected
  1126.        value  of  the  residual,  assuming  the  residuals  are   normally
  1127.        distributed,  is  plotted  on  the  horizontal  (X)  axis.   If the
  1128.        residuals are normally distributed, the resulting plot  will  be  a
  1129.        straight  line  passing through the origin with a slope of 1 (i.e.,
  1130.        the actual value of each residual should equal the  expected  value
  1131.        from  the  normal distribution).  If the residuals are not normally
  1132.        distributed, the plot will deviate from a straight line.
  1133.  
  1134.        This  plot  also  computes  the  correlation  between  the   actual
  1135.        residual   values  and  their  expected  values  and  displays  the
  1136.        correlation coefficient in  the  title  line  "(r=n.nn)".   If  the
  1137.        residual  values  are  normally distributed, the correlation should
  1138.        be close to 1.00.  A correlation  value  less  than  0.94  suggests
  1139.        that the residuals are not normally distributed.
  1140.  
  1141.        The  NPLOT  command  may  be  used  even  if there is more than one
  1142.        independent variable.  The PLOT, RPLOT, and NPLOT commands  may  be
  1143.        used  in  the  same command file.  Press Return to proceed with the
  1144.        analysis after you have finished looking at the plot.
  1145.  
  1146.        Chapter 3. Nonlin Commands                                       20
  1147.  
  1148.  
  1149.        The following options may be specified on the NPLOT command:
  1150.  
  1151.        GRID -- display grid lines to make it easier to estimate values.
  1152.  
  1153.        PRINT -- print a copy of the plot on an HP LaserJet printer.   This
  1154.            option  is  only available in the registered version of Nonlin.
  1155.            Nonlin writes  the  plot  to  the  PRN  device  which  much  be
  1156.            attached to an HP Series II or Series III printer.
  1157.  
  1158.        NOPAUSE -- do not pause after the plot is displayed.
  1159.  
  1160.        The  option  keywords may be abbrievated to their first letter.  If
  1161.        more than one option is specified, separate them with commas.
  1162.  
  1163.        DOMAIN lowvalue,highvalue (optional) -- Specifies the  domain  over
  1164.        which  the  plot  is  to  be generated.  If the DOMAIN statement is
  1165.        omitted, the domain of the independent variable  is  used  for  the
  1166.        plot.   The  DOMAIN statement can be used to generate a plot of the
  1167.        fitted function extrapolated over the specified  domain.   You  can
  1168.        also  use  the  DOMAIN command to restrict the domain and "zero in"
  1169.        on a particular range of the function.   The  DOMAIN  command  only
  1170.        affects  the  PLOT  command;  it  does  not  affect  the regression
  1171.        calculation or the RPLOT or NPLOT commands.
  1172.  
  1173.        3.18 PRESOLUTION
  1174.  
  1175.        PRESOLUTION value (optional) -- Specifies whether plots sent to  HP
  1176.        LaserJet  printers  should  use 150 or 300 dot-per-inch resolution.
  1177.        This option is only available in the registered version of  Nonlin.
  1178.        The  value  parameter must be 150 or 300.  The default value is 150
  1179.        causes the plots to use most of the horizontal width of  an  8.5x11
  1180.        inch  page.   These  plots  are  suitable  for  direct  transfer to
  1181.        overhead  transparencies.   Specifying  300  for   the   resolution
  1182.        produces  smaller  plots that are suitable for inclusion in printed
  1183.        documents.
  1184.  
  1185.        3.19 WIDTH
  1186.  
  1187.        WIDTH value (optional) -- Specify the width, in inches, of  printed
  1188.        plots.   This option is only available in the registered version of
  1189.        Nonlin.  Due to memory space considerations, the maximum  width  is
  1190.        limited  to  about 7.9 inches for 150 DPI resolution and 4.5 inches
  1191.        for 300 DPI resolution.  If you have limited memory space, you  may
  1192.        have  to  reduce  the  width  to  be able to produce printed plots.
  1193.        This statement is  ignored  unless  you  request  that  a  plot  be
  1194.        printed.
  1195.  
  1196.        3.20 NOECHO
  1197.  
  1198.        NOECHO  (optional)  --  Specifies  that  the  commands and computed
  1199.        results are not to be listed on the screen.  The  output  is  still
  1200.        written  to  the listing file and any requested plots are displayed
  1201.        on the screen.
  1202.  
  1203.        Chapter 3. Nonlin Commands                                       21
  1204.  
  1205.  
  1206.        3.21 DATA
  1207.  
  1208.        DATA  [file]  (required)  --  Specifies  the  name  of   the   file
  1209.        containing  the  data records, or introduces the data records which
  1210.        follow the command.  If a  file  name  is  specified  on  the  DATA
  1211.        command,  the  file  is  opened, its data records are read, and the
  1212.        regression analysis is performed.  If  a  file  name  is  specified
  1213.        without an extension, ".DAT" is used by default.
  1214.  
  1215.        If  no file name is specified on the DATA command, the data records
  1216.        must immediately follow the DATA command in the command file.
  1217.  
  1218.        Each data record must contain at least as many data values  as  the
  1219.        number  of  variables  specified  on the VARIABLES command(s).  The
  1220.        order of the variables as specified on the VARIABLES  command  must
  1221.        match  the  order  of  the  values  in  each observation.  Any data
  1222.        values beyond  those  required  for  the  specified  variables  are
  1223.        ignored.  Each observation must begin on a new line.
  1224.  
  1225.        The  data  values  must be separated by one or more spaces and/or a
  1226.        comma.   Data  values  may  contain  decimal  points  and  may   be
  1227.        expressed   in  exponential  notation  (i.e.,  n.nnnnEppp).   As  a
  1228.        convenience for entering time values, if a value  contains  one  or
  1229.        more  colons, the portion to the left of the colon is multiplied by
  1230.        60.  For example, 1:00 is equivalent to 60; 1:00:00  is  equivalent
  1231.        to 3600.
  1232.  
  1233.        You  may  continue data lines by specifying a semicolon as the last
  1234.        non-blank character on a record and then placing  the  continuation
  1235.        value on the following line(s).
  1236.  
  1237.        The  DATA command must be the last command in the command file.  If
  1238.        no file name is specified on the DATA  command,  the  data  records
  1239.        must  immediately follow the DATA command in the command file.  The
  1240.        following is an example of a complete command file  including  data
  1241.        records:
  1242.  
  1243.             VARIABLES AGE,MILES,VALUE
  1244.             PARAMETERS BASE,DEPAGE,DEPMILES
  1245.             FUNCTION VALUE = BASE + DEPAGE*AGE + DEPMILES*MILES
  1246.             DATA
  1247.             2  10000  13000
  1248.             4  42000   9000
  1249.             1   7000  17000
  1250.             6  52000   6000
  1251.             5  48000   8000
  1252.  
  1253.        If  the  data  records  had  been  placed  in a separate file named
  1254.        CAR.DAT, the DATA statement would be changed to "DATA CAR.DAT".
  1255.  
  1256.  
  1257.  
  1258.  
  1259.  
  1260.  
  1261.                                     Chapter 4
  1262.  
  1263.                             Understanding The Results
  1264.  
  1265.  
  1266.  
  1267.  
  1268.        4.1 Descriptive Statistics for Variables
  1269.  
  1270.        Nonlin prints a variety of statistics at the end of each  analysis.
  1271.        For  each  variable,  Nonlin  lists  the minimum value, the maximum
  1272.        value, the mean value, and  the  standard  deviation.   You  should
  1273.        confirm that these values are within the ranges you expect.
  1274.  
  1275.        4.2 Parameter Estimates
  1276.  
  1277.        For  each parameter, Nonlin displays the initial parameter estimate
  1278.        (which you specified on the PARAMETER command, or  1  by  default),
  1279.        the  final (maximum likelihood) estimate, the standard error of the
  1280.        estimated  parameter  value,  the  "t"  statistic   comparing   the
  1281.        estimated  parameter value with zero, and the significance of the t
  1282.        statistic.   Nine  significant  digits  are   displayed   for   the
  1283.        parameter  estimates.   If  you need to determine the parameters to
  1284.        greater precision, use the POUTPUT command.
  1285.  
  1286.        The  final  estimate  parameter  values  are  the  results  of  the
  1287.        analysis.   By  substituting  these  values  in  the  equation  you
  1288.        specified to be fitted to the data, you will have a  function  that
  1289.        can  be  used  to predict the value of the dependent variable based
  1290.        on a set of values for the independent variables.  For example,  if
  1291.        the equation being fitted is
  1292.  
  1293.             y = p0 + p1*x
  1294.  
  1295.        and  the  final  estimates  are  1.5  for p0 and 3 for p1, then the
  1296.        equation
  1297.  
  1298.             y = 1.5 + 3*x
  1299.  
  1300.        is the best equation of this form that will predict the value of  y
  1301.        based on the value of x.
  1302.  
  1303.        4.3 t Statistic
  1304.  
  1305.        The  "t"  statistic  is computed by dividing the estimated value of
  1306.        the parameter by its standard error.  This statistic is  a  measure
  1307.        of  the  likelihood  that  the actual value of the parameter is not
  1308.        zero.  The larger the absolute value of t,  the  less  likely  that
  1309.        the actual value of the parameter could be zero.
  1310.  
  1311.  
  1312.  
  1313.                                        22
  1314.  
  1315.        Chapter 4. Understanding The Results                             23
  1316.  
  1317.  
  1318.        4.4 Prob(t)
  1319.  
  1320.        The  "Prob(t)"  value is the probability of obtaining the estimated
  1321.        value of the parameter if the actual parameter value is zero.   The
  1322.        smaller  the  value  of Prob(t), the more significant the parameter
  1323.        and the less likely that the actual parameter value is  zero.   For
  1324.        example,  assume  the estimated value of a parameter is 1.0 and its
  1325.        standard error is 0.7.  Then the t value would be  1.43  (1.0/0.7).
  1326.        If  the  computed  Prob(t)  value was 0.05 then this indicates that
  1327.        there is only a 0.05 (5%) chance  that  the  actual  value  of  the
  1328.        parameter  could  be  zero.   If  Prob(t)  was 0.001 this indicates
  1329.        there is only 1 chance in 1000 that the parameter  could  be  zero.
  1330.        If  Prob(t) was 0.92 this indicates that there is a 92% probability
  1331.        that the actual value of the parameter could be zero; this  implies
  1332.        that  the  term of the regression equation containing the parameter
  1333.        can be eliminated without significantly affecting the  accuracy  of
  1334.        the regression.
  1335.  
  1336.        One  thing  that  can  cause  Prob(t)  to be 1.00 (or near 1.00) is
  1337.        having redundant parameters.  If at the end of an analysis  several
  1338.        parameters   have  Prob(t)  values  of  1.00,  check  the  function
  1339.        carefully to see if one or more of the parameters can  be  removed.
  1340.        Also  try  using  a  CONSTANT  command  to  set  one or more of the
  1341.        parameters to a reasonable fixed value;  if  the  other  parameters
  1342.        suddenly  become  significant  (i.e.,  Prob(t) much less than 1.00)
  1343.        then the parameters are mutually dependent and one or  more  should
  1344.        be  removed.   See  Section 6.2 for more information about mutually
  1345.        dependent parameters.
  1346.  
  1347.        The t statistic probability is computed  using  a  two-sided  test.
  1348.        The  CONFIDENCE  command  can  be  used  to  cause  Nonlin to print
  1349.        confidence intervals for parameter values.  The SQUARE.NLR  example
  1350.        regression  includes  an  extraneous parameter (p0) whose estimated
  1351.        value is much smaller than its standard error;  the  Prob(t)  value
  1352.        is  0.99982  indicating  that  there is a high probability that the
  1353.        value is zero.
  1354.  
  1355.        4.5 Final Sum of Squared Deviations
  1356.  
  1357.        In addition to the variable and parameter values,  Nonlin  displays
  1358.        several  statistics  that  indicate  how well the equation fits the
  1359.        data.  The "Final sum of squared deviations"  is  the  sum  of  the
  1360.        squared  differences  between  the  actual  value  of the dependent
  1361.        variable for each  observation  and  the  value  predicted  by  the
  1362.        function, using the final parameter estimates.
  1363.  
  1364.        4.6 Average and Maximum Deviation
  1365.  
  1366.        The  "Average  deviation"  is  the average over all observations of
  1367.        the absolute value of the difference between the  actual  value  of
  1368.        the dependent variable and its predicted value.
  1369.  
  1370.        The   "Maximum  deviation  for  any  observation"  is  the  maximum
  1371.        difference (ignoring sign) between the actual and  predicted  value
  1372.        of the dependent variable for any observation.
  1373.  
  1374.        Chapter 4. Understanding The Results                             24
  1375.  
  1376.  
  1377.        4.7 Proportion of Variance Explained
  1378.  
  1379.        The  "Proportion  of  variance  explained (R^2)" indicates how much
  1380.        better the function  predicts  the  dependent  variable  than  just
  1381.        using  the  mean  value  of  the  dependent variable.  This is also
  1382.        known  as  the  "coefficient  of  multiple  determination."  It  is
  1383.        computed  as  follows:  Suppose  that we did not fit an equation to
  1384.        the  data  and  ignored  all  information  about  the   independent
  1385.        variables  in  each observation.  Then, the best prediction for the
  1386.        dependent variable value for any  observation  would  be  the  mean
  1387.        value  of  the  dependent  variable  over  all  observations.   The
  1388.        "variance" is the sum of the squared differences between  the  mean
  1389.        value   and   the   value   of  the  dependent  variable  for  each
  1390.        observation.  Now, if we use our fitted  function  to  predict  the
  1391.        value  of the dependent variable, rather than using the mean value,
  1392.        a second kind of variance can be computed by taking the sum of  the
  1393.        squared  difference  between  the  value  of the dependent variable
  1394.        predicted by the function and the  actual  value.   Hopefully,  the
  1395.        variance  computed by using the values predicted by the function is
  1396.        better (i.e., a smaller value) than  the  variance  computed  using
  1397.        the   mean  value.   The  "Proportion  of  variance  explained"  is
  1398.        computed as 1 - (variance using predicted value  /  variance  using
  1399.        mean).   If  the function perfectly predicts the observed data, the
  1400.        value of this statistic will be 1.00 (100%).  If the function  does
  1401.        no  better  a  job  of predicting the dependent variable than using
  1402.        the mean, the value will be 0.00.
  1403.  
  1404.        4.8 Adjusted Coefficient of Multiple Determination
  1405.  
  1406.        The "adjusted coefficient of multiple determination (Ra^2)"  is  an
  1407.        R^2  statistic  adjusted  for  the  number  of  parameters  in  the
  1408.        equation and the  number  of  data  observations.   It  is  a  more
  1409.        conservative   estimate  of  the  percent  of  variance  explained,
  1410.        especially when the sample size is small compared to the number  of
  1411.        parameters.  It is computed using the formula:
  1412.  
  1413.             Ra^2 = 1 - (n-1)/(n-p) * (1-R^2)
  1414.  
  1415.        where  'n'  is  the  number  of  observations, 'p' is the number of
  1416.        parameters, and 'R^2' is the  unadjusted  coefficient  of  multiple
  1417.        determination.
  1418.  
  1419.        4.9 Durbin-Watson Statistic
  1420.  
  1421.        The  "Durbin-Watson  test  for autocorrelation" is a statistic that
  1422.        indicates the likelihood that the deviation (error) values for  the
  1423.        regression   have  a  first-order  autoregression  component.   The
  1424.        regression  models   assume   that   the   error   deviations   are
  1425.        uncorrelated.
  1426.  
  1427.        In  business  and  economics,  many regression applications involve
  1428.        time series data.  If a non-periodic function, such as  a  straight
  1429.        line,  is  fitted  to  periodic data the deviations have a periodic
  1430.        form and are positively correlated over time; these deviations  are
  1431.        said    to    be   "autocorrelated"   or   "serially   correlated."
  1432.  
  1433.        Chapter 4. Understanding The Results                             25
  1434.  
  1435.  
  1436.        Autocorrelated deviations may also indicate that the  form  (shape)
  1437.        of  the  function being fitted is inappropriate for the data values
  1438.        (e.g., a linear equation fitted to quadratic data).
  1439.  
  1440.        If the deviations are autocorrelated, there  may  be  a  number  of
  1441.        consequences  for the computed results: 1) The estimated regression
  1442.        coefficients no longer have the minimum variance property;  2)  the
  1443.        mean  square  error  (MSE) may seriously underestimate the variance
  1444.        of  the  error  terms;  3)  the  computed  standard  error  of  the
  1445.        estimated  parameter  values  may  underestimate  the true standard
  1446.        error, in which case the t values and confidence intervals  may  be
  1447.        incorrect.   Note  that  if  an  appropriate  periodic  function is
  1448.        fitted to periodic data, the deviations from  the  regression  will
  1449.        be  uncorrelated  because the cycle of the data values is accounted
  1450.        for by the fitted function.
  1451.  
  1452.        Small values of the Durbin-Watson statistic indicate  the  presence
  1453.        of   autocorrelation.    Consult  significance  tables  in  a  good
  1454.        statistics book for exact interpretations; however,  a  value  less
  1455.        than  0.80  usually  indicates  that autocorrelation is likely.  If
  1456.        the Durbin-Watson statistic indicates that the residual values  are
  1457.        autocorrelated,  it  is  recommended  that you use the RPLOT and/or
  1458.        NPLOT commands to display a plot of the residual values.
  1459.  
  1460.        If  the  data  has  a  regular,  periodic  component  you  can  try
  1461.        including  a sin term in your function.  The TREND.NLR example fits
  1462.        a function with a sin term to data that has a linear growth with  a
  1463.        superimposed  sin  component.  With the sin term the function has a
  1464.        residual value  of  29.39  and  a  Durbin-Watson  value  of  2.001;
  1465.        without  the  sin  term  (i.e., fitting only a linear function) the
  1466.        residual value is 119.16  and  the  Durbin-Watson  value  is  0.624
  1467.        indicating  strong autocorrelation.  The general form of a sin term
  1468.        is
  1469.  
  1470.             amplitude*sin(2*pi*(x-phase)/period)
  1471.  
  1472.        where 'amplitude' is a parameter that determines the  magnitude  of
  1473.        the   sin   component,   'period'  determines  the  period  of  the
  1474.        oscillation, and 'phase'  determines  the  phase  relative  to  the
  1475.        starting  value.  If you know the period (e.g., 12 for monthly data
  1476.        with an annual cycle) you should  specify  it  rather  than  having
  1477.        Nonlin attempt to determine it.
  1478.  
  1479.        If  an  NPLOT  command is used to produce a normal probability plot
  1480.        of the residuals, the correlation between the residuals  and  their
  1481.        expected   values  (assuming  they  are  normally  distributed)  is
  1482.        printed  in  the  listing.    If   the   residuals   are   normally
  1483.        distributed,   the   correlation   should  be  close  to  1.00.   A
  1484.        correlation less than 0.94 suggests  that  the  residuals  are  not
  1485.        normally distributed.
  1486.  
  1487.        Chapter 4. Understanding The Results                             26
  1488.  
  1489.  
  1490.        4.10 Analysis of Variance Table
  1491.  
  1492.        An  "Analysis  of  Variance"  table  provides  statistics about the
  1493.        overall significance of the model being fitted.
  1494.  
  1495.  
  1496.  
  1497.  
  1498.  
  1499.  
  1500.                                     Chapter 5
  1501.  
  1502.                                Theory of Operation
  1503.  
  1504.  
  1505.  
  1506.  
  1507.        5.1 Minimization Algorithm
  1508.  
  1509.        Nonlin uses a model/trust-region technique along with  an  adaptive
  1510.        choice  of  the  model  Hessian.   The  algorithm  is essentially a
  1511.        combination  of  Gauss-Newton  and   Levenberg-Marquardt   methods;
  1512.        however,  the  adaptive  algorithm  often  works  much  better than
  1513.        either of these methods alone.
  1514.  
  1515.        The basis for the minimization  technique  used  by  Nonlin  is  to
  1516.        compute  the  sum of the squared residuals for one set of parameter
  1517.        values and then slightly alter each parameter value  and  recompute
  1518.        the  sum of squared residuals to see how the parameter value change
  1519.        affects  the  sum  of  the  squared  residuals.   By  dividing  the
  1520.        difference  between  the  original  and new sum of squared residual
  1521.        values by the amount the parameter was altered, Nonlin is  able  to
  1522.        determine  the  approximate  partial derivative with respect to the
  1523.        parameter.  This partial derivative is used  by  Nonlin  to  decide
  1524.        how to alter the value of the parameter for the next iteration.
  1525.  
  1526.        If  the  function  being  modeled is well behaved, and the starting
  1527.        value for the parameter is not too far from the optimum value,  the
  1528.        procedure  will  eventually  converge  to the best estimate for the
  1529.        parameter.  This procedure is carried out  simultaneously  for  all
  1530.        parameters   and   is,   in   fact,   a   minimization  problem  in
  1531.        n-dimensional space, where 'n' is the number of parameters.
  1532.  
  1533.        For a much more detailed explanation of  the  regression  algorithm
  1534.        used  by  Nonlin  see ACM Transactions on Mathematical Software 7,3
  1535.        (Sept.  1981) "Dennis, J.E., Gay, D.M., and  Welsch,  R.E.   --  An
  1536.        adaptive nonlinear least-squares algorithm."
  1537.  
  1538.        5.2 Convergence Criterion
  1539.  
  1540.        Nonlin  has  several  convergence criterion that stop the iterative
  1541.        minimization procedure.  The  TOLERANCE  command  can  be  used  to
  1542.        alter the convergence tolerance value.
  1543.  
  1544.        Two  internal  variables are used to determine when convergence has
  1545.        occurred.  RFCTOL has a default value of 1E-10 and can  be  altered
  1546.        by  use  of  the  TOLERANCE command.  AFCTOL has a default value of
  1547.        1E-20 and is only altered by the TOLERANCE  command  if  the  value
  1548.        specified  is less than the default value.  In the discussion which
  1549.  
  1550.  
  1551.  
  1552.                                        27
  1553.  
  1554.        Chapter 5. Theory of Operation                                   28
  1555.  
  1556.  
  1557.        follows the "function  value"  is  half  the  sum  of  the  squared
  1558.        residuals computed using the current parameter estimates.
  1559.  
  1560.        "Relative  function  convergence"  is  reported  if  the  predicted
  1561.        maximum possible  function  reduction  is  at  most  RFCTOL*ABS(F0)
  1562.        where  F0  is  the  function  value  at  the  start  of the current
  1563.        iteration, and if the last step attempted  achieved  no  more  than
  1564.        twice the predicted function decrease.
  1565.  
  1566.        "Absolute  function  convergence" is reported if the function value
  1567.        is less than AFCTOL.
  1568.  
  1569.  
  1570.  
  1571.  
  1572.  
  1573.  
  1574.                                     Chapter 6
  1575.  
  1576.                               Hints for Nonlin Use
  1577.  
  1578.  
  1579.  
  1580.  
  1581.        6.1 Convergence Failures
  1582.  
  1583.        One  of  the  potential  problems  that  confronts  any   nonlinear
  1584.        minimization  procedure  is  non-convergence.   Non-convergence  is
  1585.        usually not a problem for regressions using  a  linear  model,  but
  1586.        becomes   a  more  serious  consideration  when  using  complicated
  1587.        nonlinear  functions;   increasing   the   number   of   parameters
  1588.        aggravates the problem.
  1589.  
  1590.        Non-convergence  can occur in two ways: the solution may diverge or
  1591.        it may converge to the wrong solution --  a  local  minimum  rather
  1592.        than  the  global  minimum.   Periodic  functions, such as sin, and
  1593.        cos, are particularly prone to convergence problems.  For  example,
  1594.        consider a nonlinear regression performed with the function:
  1595.  
  1596.             y = offset + amplitude * sin(frequency * x)
  1597.  
  1598.        where  x  and y are variables, and offset, amplitude, and frequency
  1599.        are the parameters whose values  are  to  be  determined.   If  the
  1600.        starting  value  for  frequency  is  not  reasonably  close  to the
  1601.        correct value, the solution may converge to a  harmonic  (multiple)
  1602.        or  subharmonic  (fundamental)  value  of the frequency.  A command
  1603.        file named SINE.NLR is supplied  with  the  commands  and  data  to
  1604.        perform this analysis.
  1605.  
  1606.        The  SWEEP  command  can  be  very  useful  in  cases like the sine
  1607.        example.  In the SINE.NLR example analysis,  the  actual  value  of
  1608.        the  frequency is 3; the function converges to the correct solution
  1609.        if the starting value is in the range 2.6 to  3.3.   However,  this
  1610.        example   is  quite  insensitive  to  the  starting  value  of  the
  1611.        amplitude parameter.  With  an  actual  value  of  2,  the  correct
  1612.        solution  is  found  with  starting  values  from  1 through 10000.
  1613.        Similarly, the offset parameter, which had an actual value  of  10,
  1614.        was  successfully determined with starting values ranging from 1 to
  1615.        over 50000.
  1616.  
  1617.        Another example which is sensitive to a  parameter  starting  value
  1618.        is  POWER.NLR  which  attempts  to  determine  the  values  of  the
  1619.        parameters p0, p1, and p2 for the function
  1620.  
  1621.             y = p0 + p1*x^p2
  1622.  
  1623.  
  1624.  
  1625.  
  1626.                                        29
  1627.  
  1628.        Chapter 6. Hints for Nonlin Use                                  30
  1629.  
  1630.  
  1631.        (where "x^p2" means x raised to the p2 power).   The  actual  value
  1632.        of  p2  in  the example data is 2; the solution converges correctly
  1633.        if the starting value of p2 is in the range 1.8 to  3.8.   As  with
  1634.        the  other  example,  the solution is relatively insensitive to the
  1635.        starting values of p0 and p1.
  1636.  
  1637.        6.2 Singular Matrix Problems
  1638.  
  1639.        Another possible problem is that the analysis  may  stop  with  the
  1640.        message  "Singular  convergence.   Mutually dependent parameters?".
  1641.        This is  usually  due  to  one  of  two  things:  (1)  a  redundant
  1642.        parameter  that  is  co-dependent  with another parameter, or (2) a
  1643.        situation where the value of one parameter "blocks" the  effect  of
  1644.        other   parameters.   As  an  example  of  a  redundant  parameter,
  1645.        consider the function
  1646.  
  1647.             y = p0 + p1*p2*x
  1648.  
  1649.        This is a simple linear equation except there are  two  parameters,
  1650.        p1,  and  p2,  which are both factors to the variable x.  It should
  1651.        be clear that there is no unique solution  to  this  problem  since
  1652.        any  value  of  p1  is possible if the right value of p2 is chosen.
  1653.        Similarly, the function
  1654.  
  1655.             y = p0 + p1 + p2*x
  1656.  
  1657.        has no  unique  solution  since  either  p0  or  p1  is  redundant.
  1658.        Similarly, in the equation
  1659.  
  1660.             y = p0 + p1*exp(x+p2)
  1661.  
  1662.        either p1 or p2 is redundant.
  1663.  
  1664.        The  second  type  of singular matrix problem can be illustrated by
  1665.        the function
  1666.  
  1667.             y = p0 + p1*x^p2
  1668.  
  1669.        If, during the solution process, p1 takes  on  the  value  0,  then
  1670.        varying  the  value  of p2 has no effect on the equation and Nonlin
  1671.        cannot figure out which way to change  the  value  of  p2  to  move
  1672.        toward  convergence.   The  solution to this problem is to assign a
  1673.        starting value that is not  zero  to  p1,  and  use  the  CONSTRAIN
  1674.        command to force p1 to remain non-zero.
  1675.  
  1676.        6.3 Performance Issues
  1677.  
  1678.        Nonlin  is  carefully  programmed  and  compiled with an optimizing
  1679.        compiler for  maximum  performance.   However,  Nonlin  is  a  real
  1680.        "number  cruncher,"  and  the  nonlinear  regression  algorithm  is
  1681.        mathematically  very  elaborate.   During  each  iteration,  Nonlin
  1682.        computes  gradients,  Jacobians,  Hessians,  and  eigenvalues,  and
  1683.        performs QR and Cholesky matrix decompositions.   All  calculations
  1684.        are carried out using double precision (64 bit) floating point.
  1685.  
  1686.        Chapter 6. Hints for Nonlin Use                                  31
  1687.  
  1688.  
  1689.        Nonlin  does  not  require  an  80x87  numeric coprocessor, but its
  1690.        performance is greatly enhanced if one is  present.   In  fact,  an
  1691.        8088  CPU  with  an 8087 numeric coprocessor can perform regression
  1692.        analyses  faster  than  a  20  MHz  80386  that  does  not  have  a
  1693.        coprocessor.   If  you  have  an  8088  without  a  coprocessor, be
  1694.        patient -- Nonlin is probably giving it the workout of its life.
  1695.  
  1696.        Very long running times can result if you  use  the  SWEEP  command
  1697.        with  many  starting values.  The problem is compounded if you have
  1698.        multiple SWEEP commands.  If you use the SWEEP  command  to  try  a
  1699.        large  number  of  starting  parameter values, you can save time by
  1700.        using  the  ITERATIONS  command  to  specify  a  small  number   of
  1701.        iterations  (such  as  5)  during  the  initial  attempt  to find a
  1702.        solution.  Once a feasible set of  starting  parameter  values  has
  1703.        been  determined,  remove  the  SWEEP command, specify the starting
  1704.        values  on  the  PARAMETERS  command,  increase   the   number   of
  1705.        iterations, and rerun the analysis to get the final result.
  1706.  
  1707.        6.4 Program Limits
  1708.  
  1709.        The following is a summary of the Nonlin program limitations:
  1710.  
  1711.             Maximum number of variables = 20
  1712.             Maximum number of parameters = 25
  1713.             Maximum length of variable or parameter names = 10
  1714.  
  1715.        The  maximum  number  of  data  observations that Nonlin can handle
  1716.        depends on the number of parameters as  shown  by  the  table  that
  1717.        follows:
  1718.  
  1719.             # Parameters    Max Observations
  1720.                   1               2019
  1721.                   2               1611
  1722.                   3               1339
  1723.                   4               1144
  1724.                   5                997
  1725.                   6                883
  1726.                   7                791
  1727.                   8                715
  1728.                   9                652
  1729.                  10                599
  1730.  
  1731.  
  1732.  
  1733.  
  1734.  
  1735.  
  1736.                                     Chapter 7
  1737.  
  1738.                                 Example Analyses
  1739.  
  1740.  
  1741.  
  1742.  
  1743.        A  number  of  example  regression analysis files are provided with
  1744.        your Nonlin distribution.  All of the example  command  files  have
  1745.        the  extension  ".NLR".   Some  of the important ones are described
  1746.        below, others contain comment lines that explain what they do.
  1747.  
  1748.        LINEAR.NLR -- Simple linear regression with  plotted  function  and
  1749.            data.
  1750.  
  1751.        QUAD.NLR  --  Fit  a quadratic equation.  Plot the function and the
  1752.            data.
  1753.  
  1754.        ASYMPTOT.NLR -- Fit an asymptotic function Y = 12 - 10/X.
  1755.  
  1756.        AIDS.NLR -- A logistic curve  is  a  growth  curve  used  to  model
  1757.            functions  which  increase  gradually at first, more rapidly in
  1758.            the middle growth period, and slowly at the end,  leveling  off
  1759.            at  a  maximum  value  after some period of time.  This type of
  1760.            curve is frequently used to model  biological  growth  patterns
  1761.            where  there  is  an initial exponential growth period followed
  1762.            by a leveling off as more of the population is infected  or  as
  1763.            the  food  supply  or  some other factor limits further growth.
  1764.            The form of the symmetric logistic growth function is:
  1765.  
  1766.                 y = k / (1 + exp(a + b*x))
  1767.  
  1768.            where 'k', 'a', and 'b' are parameters  that  shape  and  scale
  1769.            the function.  The value of 'b' is negative.
  1770.  
  1771.            The  AIDS.NLR  example  fits  a logistic curve to the number of
  1772.            new cases of AIDS reported in  the  United  States  during  the
  1773.            period  1981 through 1992.  The computed function fits the data
  1774.            remarkably  well  showing  that  the  AIDS  infection  rate  is
  1775.            following  a  classic  logistic  curve  and should level off at
  1776.            about 47,500 new cases per year (in the  United  States).   The
  1777.            DOMAIN  command is used to cause Nonlin to extrapolate the plot
  1778.            of the function through 1995.
  1779.  
  1780.        F33.NLR -- Multivariate linear  regression  (multiple  regression).
  1781.            Calculate  the value of a used Beech F33 Bonanza airplane using
  1782.            a linear model based on its age, the number  of  hours  on  its
  1783.            airframe,  and  the number of hours on its engine.  The t value
  1784.            and Prob(t) indicate that the number of  hours  on  the  engine
  1785.            ('Engdep'  parameter)  is  not  significant  to  the regression
  1786.  
  1787.  
  1788.                                        32
  1789.  
  1790.        Chapter 7. Example Analyses                                      33
  1791.  
  1792.  
  1793.            model; the other parameters are significant but airframe  hours
  1794.            is less significant than the base price and age of the plane.
  1795.  
  1796.        F33YEAR.NLR  --  Similar to F33.NLR except the price of the Bonanza
  1797.            is calculated based on a linear function of only the age.
  1798.  
  1799.        F33EXP.NLR -- Similar to F33YEAR.NLR except a negative  exponential
  1800.            function  is  used  rather than a linear function.  Compare the
  1801.            fit of this model with that of the F33YEAR.NLR example.
  1802.  
  1803.        SINE.NLR -- Fit an equation involving a sin  function.   The  SWEEP
  1804.            command is used to find a starting point that will converge.
  1805.  
  1806.        TREND.NLR  --  Fit  a  function that has a linear growth term and a
  1807.            periodic component involving a sin term.  See Section  4.9  for
  1808.            additional information about this example.
  1809.  
  1810.        SQUARE.NLR  --  Fit  a  sine series to a square wave.  Note in this
  1811.            example that the 'p0' parameter, which represents the  constant
  1812.            term  of  the  equation, has an estimated value of 9.22715E-006
  1813.            (very nearly zero) and a standard  error  of  0.0398754.   This
  1814.            yields  a  t  value of nearly zero and Prob(t) of 0.99982 which
  1815.            means that there is a 99.982% chance that the actual  value  of
  1816.            p0  may be zero (it is in fact zero).  This illustrates how you
  1817.            can  use  the  t  value  and  Prob(t)  to  identify  extraneous
  1818.            parameters.
  1819.  
  1820.        COOLING.NLR  --  Fit an equation involving an exponential function.
  1821.            If a heated object is allowed to cool, the rate of  cooling  at
  1822.            any  instant  is  proportional  to  the  difference between the
  1823.            object's temperature and the ambient  (room)  temperature.   In
  1824.            other  words, an object cools faster at first, while it is hot,
  1825.            and the rate of cooling slows down as the  temperature  of  the
  1826.            object  approaches  the ambient temperature.  The function that
  1827.            relates the object's temperature to time is:
  1828.  
  1829.                 Temperature = Roomtemp+InitTemp*exp(-Coolrate*Time)
  1830.  
  1831.            Where InitTemp is the number of degrees above room  temperature
  1832.            at  time  0,  and Coolrate is a factor that depends on the mass
  1833.            of the  object,  how  well  it  is  insulated,  etc.   The  exp
  1834.            function  is  the  value of e (2.7182818...) raised to a power.
  1835.            The COOLING.NLR example determines the parameters InitTemp  and
  1836.            Coolrate  to  fit  an  equation  of  this form to some data the
  1837.            author collected.
  1838.  
  1839.        BOIL.NLR -- The boiling point of water decreases  as  the  pressure
  1840.            in  the  vessel  containing  the water decreases.  "Clapeyron's
  1841.            equation" shows that the boiling point is related  to  pressure
  1842.            according to the following function:
  1843.  
  1844.                 Temperature = b / log(Pressure/a) - 459.7
  1845.  
  1846.            Where   'Temperature'  is  in  degrees  Fahrenheit  (the  459.7
  1847.            constant converts degrees  Fahrenheit  to  degrees  Rankine  --
  1848.  
  1849.        Chapter 7. Example Analyses                                      34
  1850.  
  1851.  
  1852.            relative  to  absolute zero), 'Pressure' is the pressure in the
  1853.            vessel  in  pounds  per  square  inch,  and  'a'  and  'b'  are
  1854.            parameters  whose  values  are  to be determined.  The data for
  1855.            this example was collected by the author's son  for  a  science
  1856.            project.
  1857.  
  1858.        MAGNET.NLR  --  Fit  a  function  involving  an  arc  tangent and a
  1859.            variable to the third power.  This is  an  interesting  physics
  1860.            problem.   If  a  magnet  is  placed due east of a compass, the
  1861.            deflection of the compass needle from north  is  equal  to  the
  1862.            arc  tangent of the ratio of the strength of the magnet's field
  1863.            relative to the earth's magnetic field.  The  strength  of  the
  1864.            magnet's  field at the compass is inversely proportional to the
  1865.            cube of the distance from the magnet  to  the  compass.   Thus,
  1866.            the function relating these terms is
  1867.  
  1868.                 Deflection = deg(atan(Strength / Distance ^ 3))
  1869.  
  1870.            The  deg  function converts an angle in radians to degrees.  In
  1871.            the example, Deflection and Distance  are  the  variables,  and
  1872.            the value of the Strength parameter is determined.
  1873.  
  1874.        DIODE.NLR  --  The current through a diode increases sharply as the
  1875.            voltage across  the  diode  is  increased.   An  equation  that
  1876.            approximates the current flow as a function of the voltage is:
  1877.  
  1878.                 I = exp(b*(V-c))
  1879.  
  1880.            where  'I' is the current, 'V' is the voltage, and 'b', and 'c'
  1881.            are parameters that  are  to  be  estimated  by  the  nonlinear
  1882.            regression.
  1883.  
  1884.        AVLTIME.NLR  -- An AVL tree is a balanced binary tree used to store
  1885.            information in a computer's memory.  Because the entries in  an
  1886.            AVL  tree  are  kept in sorted order, and the tree is kept in a
  1887.            balanced form, it is possible to rapidly find any entry in  the
  1888.            tree.   The  time required to create an AVL tree with N entries
  1889.            is approximately equal to:
  1890.  
  1891.                 Time = a + b*N*log2(N)
  1892.  
  1893.            where 'a' is a constant term equal to the overhead involved  in
  1894.            starting  and  completing  a tree creation, and 'b' is a growth
  1895.            coefficient that depends on the speed  of  the  computer.   The
  1896.            log2(N)  function  is  the  log  base  2  of  N  (the number of
  1897.            entries).  The AVLTIME.NLR example fits an equation to  a  data
  1898.            set  that relates the time in seconds required to create an AVL
  1899.            tree with the number of entries in the tree.
  1900.  
  1901.        PIECE.NLR -- Piecewise linear function.  Fit a function  consisting
  1902.            of  two linear pieces that bend at X=5.  When X is less than 5,
  1903.            the slope of the function is B1.  When X  is  greater  than  or
  1904.            equal  to  5,  the  slope  is  B2.   B0  is  the Y value of the
  1905.            function at X=5 (i.e., at  the  pivot  point).   The  step(a,x)
  1906.  
  1907.        Chapter 7. Example Analyses                                      35
  1908.  
  1909.  
  1910.            function  returns  the  value  0  when  x  is less than 'a'; it
  1911.            returns 1 when x is greater than or equal to 'a'.
  1912.  
  1913.  
  1914.  
  1915.  
  1916.  
  1917.  
  1918.                                     Chapter 8
  1919.  
  1920.                               Special Applications
  1921.  
  1922.  
  1923.  
  1924.  
  1925.        8.1 Omitted Dependent Variable
  1926.  
  1927.        There is a class of nonlinear regression problems that can be  best
  1928.        expressed  by  omitting  the dependent variable (i.e., the variable
  1929.        on the left of the equal sign).   To  understand  what  this  means
  1930.        first   consider  the  normal  regression  case  with  a  dependent
  1931.        variable.  For each observation the function is evaluated  and  the
  1932.        computed  value  is  subtracted from the corresponding value of the
  1933.        dependent variable for that observation.  This  residual  value  is
  1934.        then  squared  and added to the other squared residual values.  The
  1935.        goal is to minimize the total sum of  squared  residuals.   In  the
  1936.        case  where  the  dependent  variable  is  omitted, the function is
  1937.        computed for each observation and the  value  of  the  function  is
  1938.        squared  (i.e.,  it  is  treated  as the residual) and added to the
  1939.        other squared values.  The goal is  to  minimize  the  sum  of  the
  1940.        squared  values  of  the  function.   Thus,  for  a perfect fit the
  1941.        computed value of the  function  for  every  observation  would  be
  1942.        zero.
  1943.  
  1944.        To  perform  this  type of analysis omit the dependent variable and
  1945.        equal sign from the left side of the function specification.
  1946.  
  1947.        As an example of this type of  analysis  consider  the  problem  of
  1948.        fitting  a  circle  to a set of points that form a roughly circular
  1949.        pattern (i.e., a "circular regression").  Our goal is to  determine
  1950.        the  center  point  of  the circle (Xc,Yc) and the radius (R) which
  1951.        will make the circle best fit the points so that  the  sum  of  the
  1952.        squared  distances  between  the  points  and  the perimeter of the
  1953.        circle is minimized (the points are as close to  the  perimeter  of
  1954.        the circle as possible).
  1955.  
  1956.        For  this  problem  we have three parameters whose values are to be
  1957.        determined: Xc, Yc, and R.  There will be one data observation  for
  1958.        each  point  to  which  the circle is being fitted.  For each point
  1959.        there are two variables, Xp and Yp, the X and Y coordinates of  the
  1960.        point's position.
  1961.  
  1962.        Since  our  goal  is  to  minimize the sum of the squared distances
  1963.        from the points to the perimeter of the circle, we need a  function
  1964.        that  will  compute this distance for each point.  If the center of
  1965.        the circle is at (Xc,Yc) and the position of  a  point  is  (Xp,Yp)
  1966.        then,  from  the  theorem  of Pythagoras, we know the distance from
  1967.        the center to the point is
  1968.  
  1969.  
  1970.                                        36
  1971.  
  1972.        Chapter 8. Special Applications                                  37
  1973.  
  1974.  
  1975.             SQRT((Xp-Xc)^2 + (Yp-Yc)^2)
  1976.  
  1977.        But we are interested in the distance from  the  perimeter  to  the
  1978.        point.   Since the radius of the circle is R, the distance from the
  1979.        perimeter to the point (along a straight line from  the  center  to
  1980.        the point) is
  1981.  
  1982.             SQRT((Xp-Xc)^2 + (Yp-Yc)^2) - R
  1983.  
  1984.        That  is,  the distance from the perimeter to the point is equal to
  1985.        the distance from the center to the point less  the  distance  from
  1986.        the  center  to  the  perimeter (the radius).  The distance will be
  1987.        positive or negative depending on whether the point is  outside  or
  1988.        inside  the  circle  but  this  does  not matter since the value is
  1989.        squared as part of the minimization process.
  1990.  
  1991.        The Nonlin statements for this analysis are as follows:
  1992.  
  1993.             VARIABLES  Xp,Yp
  1994.             PARAMETERS Xc,Yc,R
  1995.             FUNCTION   SQRT((Xp-Xc)^2 + (Yp-Yc)^2) - R
  1996.  
  1997.        Note that there is no dependent variable or equal sign to the  left
  1998.        of   the  function.   Nonlin  will  determine  the  values  of  the
  1999.        parameters Yp, Yc, and R such that the sum of  the  squared  values
  2000.        of  the  function  (i.e.,  the  sum  of  the  squared distances) is
  2001.        minimized.  The CIRCLE.NLR file contains a  full  example  of  this
  2002.        analysis.
  2003.  
  2004.        As  a second example similar to the first one, consider a town that
  2005.        is trying to decide where to place a fire  station.   The  location
  2006.        should  be  central such that the sum of the squared distances from
  2007.        the station to each house is minimized.   Nonlin  can  be  used  to
  2008.        determine  the  coordinates  of  the station (Xc,Yc) given a set of
  2009.        coordinates for each house location (Xh,Yh)  by  using  a  slightly
  2010.        simpler function than the first example:
  2011.  
  2012.             FUNCTION  SQRT((Xh-Xc)^2 + (Yh-Yc)^2)
  2013.  
  2014.  
  2015.        8.2 Root Finding and Expression Minimization
  2016.  
  2017.        Although  it  is designed for nonlinear regression analysis, Nonlin
  2018.        can also be used to find the root (zero point) or minimum  absolute
  2019.        value  of  a  nonlinear  expression.  To use Nonlin in this fashion
  2020.        follow these steps:
  2021.  
  2022.          . Do not use any VARIABLE statements.
  2023.  
  2024.          . Use PARAMETER statements to  specify  the  names  and  optional
  2025.            starting  values  for  the  parameters  whose  values are to be
  2026.            determined as the roots or minimum value of the expression.
  2027.  
  2028.          . Use the FUNCTION statement  to  specify  the  expression  whose
  2029.            roots  or  minimum  value  is  to  be  found;  do NOT specify a
  2030.  
  2031.        Chapter 8. Special Applications                                  38
  2032.  
  2033.  
  2034.            dependent  variable  and  equal  sign  --  specify   only   the
  2035.            expression that is to be minimized.
  2036.  
  2037.          . Do  not  include  any data records after the DATA statement; it
  2038.            simply signals the end of  the  command  file  and  causes  the
  2039.            analysis to begin.
  2040.  
  2041.        The  following  is  an example command file to find the root of the
  2042.        expression SIN(X)-LOG(X):
  2043.  
  2044.             PARAMETER X
  2045.             FUNCTION SIN(X) - LOG(X)
  2046.             DATA
  2047.  
  2048.        Notice that the "variable" in the expression, X,  is  not  declared
  2049.        to  be a variable but rather a parameter.  This example is included
  2050.        in the file MINSL.NLR which you can run.
  2051.  
  2052.        For this type of analysis, Nonlin  determines  the  values  of  the
  2053.        parameters  that minimize the absolute value of the expression.  If
  2054.        the expression has a zero value  (i.e.,  a  root),  that  value  is
  2055.        found  since  that is the smallest possible absolute value.  If the
  2056.        expression does not  have  a  zero  point,  Nonlin  determines  the
  2057.        values  of  the parameters that produce the smallest absolute value
  2058.        of the expression.  For example, the expression  2*x^2-3*x+10  does
  2059.        not  have  a  root  but  reaches a minimum value of 8.875 when x is
  2060.        0.75.  The MINPAROB.NLR command file contains this example.
  2061.  
  2062.        There are a number of cautions that you should keep  in  mind  when
  2063.        using Nonlin to find roots or minimum values:
  2064.  
  2065.          . Nonlin  will  find only one root or minimum value per analysis.
  2066.            For example, the expression 9-x^2 has two  roots:  -3  and  +3.
  2067.            Nonlin  will  find one of the roots; which one it finds depends
  2068.            on the starting value specified for X.
  2069.  
  2070.          . Nonlin will find only real roots, not complex.
  2071.  
  2072.          . If the expression contains a local minimum, Nonlin may find  it
  2073.            rather  than the global minimum or root.  Of course, if you are
  2074.            looking for a local minimum in a certain region this  could  be
  2075.            considered    a   feature.    For   example,   the   expression
  2076.            0.5*x^3+5*(x-2)^2+15 has a local minimum at x=1.61 and  a  root
  2077.            at  x=-13.38.  If the starting value of x is less than -8.3 the
  2078.            root is found; if the starting value is greater than -8.3,  the
  2079.            local  minimum  is  found.   If  the expression contains only a
  2080.            single  variable,  use  the  Mathplot  program  to  graphically
  2081.            display  the expression and determine a good starting value for
  2082.            the variable (see page  42  for  additional  information  about
  2083.            Mathplot).   The SWEEP command can also be used to try multiple
  2084.            starting values when searching for a global minimum.
  2085.  
  2086.        Chapter 8. Special Applications                                  39
  2087.  
  2088.  
  2089.        8.2.1 Function Minimization Examples
  2090.  
  2091.        MINFALL.NLR -- The time  taken  for  an  object  to  slide  down  a
  2092.            frictionless  guide  from  position  (0,h)  to another position
  2093.            (d,0) (i.e.,  falling  through  a  distance  'h'  while  moving
  2094.            horizontally  a  distance  'd')  depends  on  the path that the
  2095.            object takes as it follows the guide.  It turns  out  that  the
  2096.            path  that  minimizes  the  descent time is not a straight line
  2097.            from  (0,h)  to   (d,0)   but   rather   a   curve   called   a
  2098.            brachistochrone  with  a steeper slope near the beginning, that
  2099.            gives the object a chance to accelerate  quickly,  and  then  a
  2100.            shallower slope further on.
  2101.  
  2102.            Finding  the  shape  of  this curve is a classic problem in the
  2103.            branch of mathematics called the Calculus of  Variations.   The
  2104.            MINFALL  example  solves  a  simpler  case of this problem: the
  2105.            object slides along  a  straight  guide  from  (0,1000)  to  an
  2106.            intermediate  position (px,py), and then along another straight
  2107.            guide  from  (px,py)  to  (1000,0).    What   point,   (px,py),
  2108.            minimizes the descent time?
  2109.  
  2110.            Note  concerning the answer: The fall time for the object if it
  2111.            follows a straight guide from (0,1000) to  (1000,0)  is  2.0203
  2112.            seconds;  the fall time if it follows the two straight segments
  2113.            found by MINFALL is 1.8748; the fall time  if  it  follows  the
  2114.            ideal  curved  brachistochrone  is  1.8590.   The  speed of the
  2115.            object at the end of the fall is the  same  regardless  of  the
  2116.            path taken (conservation of energy).
  2117.  
  2118.        MINFUEL.NLR  -- A lunar lander is hovering above the surface of the
  2119.            moon looking for a suitable landing site.   Available  fuel  is
  2120.            critical  and  the  desired  site is 200 meters away.  How long
  2121.            should the horizontal thruster be fired to start and  stop  the
  2122.            motion  over  the  ground?   The vertical thruster must be used
  2123.            continuously to keep  the  lander  from  being  pulled  to  the
  2124.            surface.    If   too  little  horizontal  thrust  is  used  the
  2125.            spacecraft will move slowly and much fuel will be  consumed  by
  2126.            the    vertical    thruster   counterbalancing   the   downward
  2127.            gravitational pull while hovering over  the  surface.   On  the
  2128.            other  hand,  if  the  horizontal  thruster is fired for a long
  2129.            time,  the  spacecraft  will  move  quickly   (minimizing   the
  2130.            hovering  time)  but  excessive  fuel  will  be used during the
  2131.            horizontal   acceleration   and   deceleration.     MINFUEL.NLR
  2132.            determines  how  long  the  thruster should be fired during the
  2133.            start  and  stop  accelerations  such  that  the   total   fuel
  2134.            consumption (start thrust + stop thrust + hover) is minimized.
  2135.  
  2136.  
  2137.  
  2138.  
  2139.  
  2140.  
  2141.                                     Chapter 9
  2142.  
  2143.                         Acknowledgement and Use of Nonlin
  2144.  
  2145.  
  2146.  
  2147.  
  2148.        9.1 Acknowledgement
  2149.  
  2150.        The  nonlinear regression algorithm used by Nonlin was published in
  2151.        ACM  Transactions  on  Mathematical  Software  7,3  (Sept.    1981)
  2152.        "Dennis,  J.E.,  Gay,  D.M.,  and  Welsch,  R.E.   --  An  adaptive
  2153.        nonlinear least-squares algorithm."
  2154.  
  2155.        9.2 Use and Distribution of Nonlin
  2156.  
  2157.        There are  two  versions  of  the  Nonlin  program:  shareware  and
  2158.        registered.   You  are  welcome  to  make  copies  of the shareware
  2159.        version of Nonlin and pass them on to friends or post this  program
  2160.        on  bulletin  boards  or  distribute  it  via disk catalog services
  2161.        provided  the  entire  Nonlin  distribution  is  included  in   its
  2162.        original,  unmodified  form.  A distribution fee may be charged for
  2163.        the cost of the diskette, shipping and handling.   However,  Nonlin
  2164.        may  not  be sold, or incorporated in another product that is sold,
  2165.        without  the  permission  of  Phillip  H.   Sherrod.   Vendors  are
  2166.        encouraged  to contact the author to get the most recent version of
  2167.        Nonlin.
  2168.  
  2169.        As a shareware product, you are granted a no-cost, trial period  of
  2170.        30  days  during which you may evaluate Nonlin.  If you find Nonlin
  2171.        to be useful, educational, and/or  entertaining,  and  continue  to
  2172.        use  it  beyond  the  30  day  trial  period,  you  are required to
  2173.        compensate the author by sending the registration form  printed  at
  2174.        the   end   of   this  document  (and  in  REGISTER.DOC)  with  the
  2175.        appropriate registration fee to  help  cover  the  development  and
  2176.        support of Nonlin.
  2177.  
  2178.        In  return  for  registering,  you  will  be authorized to continue
  2179.        using Nonlin beyond  the  trial  period  and  you  will  receive  a
  2180.        registered  version  of the program, a laser-printed, bound manual,
  2181.        and three months of support via  telephone,  mail,  or  CompuServe.
  2182.        Your  registration  fee will be refunded if you encounter a serious
  2183.        bug that cannot be corrected.
  2184.  
  2185.        The registered version of Nonlin omits the  shareware  notification
  2186.        screen  at the start of the run and does not require you to press a
  2187.        key to proceed with the  analysis.   The  registered  version  also
  2188.        includes  the  ability to print plots on HP LaserJet printers.  The
  2189.        registered version of Nonlin  is  NOT  shareware  and  may  not  be
  2190.        redistributed or used on more than one computer system.
  2191.  
  2192.  
  2193.                                        40
  2194.  
  2195.        Chapter 9. Acknowledgement and Use of Nonlin                     41
  2196.  
  2197.  
  2198.        The  author  frequently  improves  Nonlin and it is likely that the
  2199.        version you have is not the most recent version.   Note,  the  cost
  2200.        of  registering  Nonlin  is  insignificant  compared  with what you
  2201.        would have to pay to  purchase  a  commercial  statistical  package
  2202.        with an equivalent regression capability.
  2203.  
  2204.        9.3 Association of Shareware Professionals
  2205.  
  2206.        This  program  is  produced  by  a  member  of  the  Association of
  2207.        Shareware Professionals (ASP).  ASP wants to  make  sure  that  the
  2208.        shareware  principle works for you.  If you are unable to resolve a
  2209.        shareware-related problem with an  ASP  member  by  contacting  the
  2210.        member  directly,  ASP  may be able to help.  The ASP Ombudsman can
  2211.        help you resolve a dispute or problem with an ASP member, but  does
  2212.        not  provide technical support for members' products.  Please write
  2213.        to the ASP Ombudsman at 545 Grover  Road,  Muskegon,  MI  49442  or
  2214.        send  a  CompuServe  message  via  CompuServe Mail to ASP Ombudsman
  2215.        7007,3536.
  2216.  
  2217.        You are welcome to contact the author:
  2218.  
  2219.                                Phillip H. Sherrod
  2220.                                 4410 Gerald Place
  2221.                          Nashville, TN  37205-3806  USA
  2222.                              615-292-2881 (evenings)
  2223.                              CompuServe: 76166,2640
  2224.                        Internet: 76166.2640@compuserve.com
  2225.  
  2226.        9.4 Copyright Notice
  2227.  
  2228.        Both  the  Nonlin  program  and  documentation  are  copyright  (c)
  2229.        1992-1993  by  Phillip  H.   Sherrod.   You  are  not authorized to
  2230.        modify the program.  "Nonlin" is a trademark.
  2231.  
  2232.        9.5 Disclaimer
  2233.  
  2234.        Nonlin is provided "as is" without warranty  of  any  kind,  either
  2235.        expressed   or  implied.   This  program  may  contain  "bugs"  and
  2236.        inaccuracies, and its results should not be assumed to  be  correct
  2237.        unless  they are verified by independent means.  The author assumes
  2238.        no  responsibility  for  the  use  of  Nonlin  and  will   not   be
  2239.        responsible for any damage resulting from its use.
  2240.  
  2241.  
  2242.  
  2243.  
  2244.  
  2245.  
  2246.                                    Chapter 10
  2247.  
  2248.                                  Other Software
  2249.  
  2250.  
  2251.  
  2252.  
  2253.        10.1 Mathplot -- Mathematical Function Plotting Program
  2254.  
  2255.        If  you  like  Nonlin, you should check out the Mathplot program by
  2256.        the same author.
  2257.  
  2258.        Mathplot allows you to specify complicated  mathematical  functions
  2259.        using  ordinary  algebraic  expressions  and immediately plot them.
  2260.        Four types of  functions  may  be  specified:  cartesian  (Y=f(X));
  2261.        parametric  cartesian (Y=f(T) and X=f(T)); polar (Radius=f(Angle));
  2262.        and parametric polar (Radius=f(T)  and  Angle=f(T)).   Up  to  four
  2263.        functions  may  be  plotted  simultaneously.  Scaling is automatic.
  2264.        Options are available to control axis display and labeling as  well
  2265.        as  grid  lines.   Hard  copy  output  may  be generated as well as
  2266.        screen  display.   Mathplot  is  an  ideal  tool   for   engineers,
  2267.        scientists,  math  and  science teachers, and anyone else who needs
  2268.        to quickly visualize mathematical functions.
  2269.  
  2270.        If you register Nonlin and order Mathplot at  the  same  time,  you
  2271.        can get both for $40.
  2272.  
  2273.        10.2 TSX-32 -- Multi-User Operating System
  2274.  
  2275.        If  you  have  a  need  for  a  multi-user, multi-tasking operating
  2276.        system, you should look into TSX-32.  TSX-32  is  a  full-featured,
  2277.        high  performance,  multi-user operating system for the 386 and 486
  2278.        that  provides  both  32-bit  and  16-bit  program  support.   With
  2279.        facilities  such  as  multitasking  and  multisessions, networking,
  2280.        virtual memory, X-Windows, background batch queues,  data  caching,
  2281.        file   access  control,  real-time,  and  dial-in  support,  TSX-32
  2282.        provides a solid environment for a wide range of applications.
  2283.  
  2284.        A two user, shareware version of TSX-32  called  TSX-Lite  is  also
  2285.        available.
  2286.  
  2287.        TSX-32  is  not a limited, 16-bit, multi-DOS add-on.  Rather, it is
  2288.        a complete 32-bit operating system which  makes  full  use  of  the
  2289.        hardware's  potential,  including protected mode execution, virtual
  2290.        memory, and demand paging.  TSX-32 sites range from  small  systems
  2291.        with  2-3  terminals  to  large  installations  with  more  than 64
  2292.        terminals on a single 386.
  2293.  
  2294.  
  2295.  
  2296.  
  2297.  
  2298.                                        42
  2299.  
  2300.        Chapter 10. Other Software                                       43
  2301.  
  2302.  
  2303.        In addition to supporting most popular 16-bit DOS programs,  TSX-32
  2304.        also  provides a 32-bit "flat" address space with both Phar Lap and
  2305.        DPMI compatible modes of execution.
  2306.  
  2307.        Since the DOS file  structure  is  standard  for  TSX-32,  you  can
  2308.        directly  read  and  write DOS disks.  And, you can run DOS part of
  2309.        the time and TSX-32 the rest of the time on the same computer.
  2310.  
  2311.        TSX-32 allows each user to control up  to  10  sessions.   Programs
  2312.        can  also  "fork"  subtasks  for  multi-threaded applications.  The
  2313.        patented Adaptive Scheduling Algorithm provides  consistently  good
  2314.        response time under varying conditions.
  2315.  
  2316.        The   TSX-32  network  option  provides  industry  standard  TCP/IP
  2317.        networking through Ethernet and serial lines.  Programs can  access
  2318.        files  on  remote  machines as easily as on their own machine.  The
  2319.        SET HOST command allows a user on one machine to log  onto  another
  2320.        computer  in  the  network.  FTP, Telnet, and NFS are available for
  2321.        interoperability with other systems.
  2322.  
  2323.        TSX-32 is, quite simply,  the  best  and  most  powerful  operating
  2324.        system  available  for the 386 and 486.  For additional information
  2325.        contact:
  2326.  
  2327.                            S&H Computer Systems, Inc.
  2328.                              1027 17th Avenue South
  2329.                              Nashville, TN 37212 USA
  2330.                               615-327-3670 (voice)
  2331.                                615-321-5929 (fax)
  2332.                               CompuServe: 71333,27
  2333.                         Internet: 71333.27@compuserve.com
  2334.  
  2335.  
  2336.        10.3 SIMSTAT -- Interactive Statistics Program
  2337.  
  2338.        If you need a general-purpose statistical package, or would like  a
  2339.        menu-oriented,  mouse-aware  interface to Nonlin, I suggest you try
  2340.        the SIMSTAT program written by Normand Peladeau.
  2341.  
  2342.        SIMSTAT is a menu driven statistical  program  that  provides  many
  2343.        basic   descriptive  and  comparative  statistics  and  includes  a
  2344.        "bridge" module to allow it to function as a "front end"  and  data
  2345.        editor for Nonlin.
  2346.  
  2347.        The  shareware  version  of  SIMSTAT  is  available from the IBMAPP
  2348.        forum of CompuServe and from many  BBS,  or  you  can  contact  the
  2349.        author  at  the  address  below.   SIMSTAT  version 2.1 or later is
  2350.        required for use with Nonlin.  You  must  also  have  the  "bridge"
  2351.        module  called  SIM2NL.  SIM2NL.ZIP is included on the distribution
  2352.        disk with the registered version of Nonlin.
  2353.  
  2354.        For information about SIMSTAT, contact: Normand Peladeau,  Provalis
  2355.        Research,   5000   Adam  Street,  Montreal,  QC  H1V  1W5,  Canada,
  2356.        Compuserve: [71760,2103], Internet: 71760.2103@compuserve.com.
  2357.  
  2358.          ===============================================================
  2359.                                Software Order Form
  2360.          ===============================================================
  2361.  
  2362.        Name ______________________________________________________
  2363.  
  2364.        Address ___________________________________________________
  2365.  
  2366.        City _______________________  State _______ Zip ___________
  2367.  
  2368.        Country ____________________  Telephone ___________________
  2369.  
  2370.        CompuServe account (optional) _____________________________
  2371.  
  2372.        Nonlin version ____________________________________________
  2373.  
  2374.        Bulletin board where you found Nonlin _____________________
  2375.  
  2376.        Comments __________________________________________________
  2377.  
  2378.        Check the box below which indicates your order type:
  2379.  
  2380.            ___ I wish to register Nonlin ($25).
  2381.  
  2382.            ___ I wish to order Mathplot ($20).
  2383.  
  2384.            ___ I wish to register Nonlin and order Mathplot ($40).
  2385.  
  2386.        Add $5 to any amount shown above if the software is  being  shipped
  2387.        out  of  the  United  States.   I  cannot accept checks from non-US
  2388.        banks.  Visa, MasterCard and American Express credit  card  charges
  2389.        are  accepted  but  a check, money order, or cash is preferred.  If
  2390.        you wish to use a credit card specify the  billing  name,  address,
  2391.        card number, and expiration date.
  2392.  
  2393.        In  return for registering, you will receive the registered version
  2394.        of the program, a laser-printed, bound  copy  of  the  manual,  and
  2395.        three   months   of   telephone   or   CompuServe   support.   Your
  2396.        registration fee will be refunded if you find a  serious  bug  that
  2397.        cannot be corrected.
  2398.  
  2399.        Distribution disk choice (check one):
  2400.  
  2401.              3.50" HD (1.4 MB)  ______
  2402.              5.25" HD (1.2 MB)  ______
  2403.              5.25" DD (360 KB)  ______
  2404.  
  2405.        Send this form with the amount indicated to the author:
  2406.  
  2407.                                Phillip H. Sherrod
  2408.                                 4410 Gerald Place
  2409.                           Nashville, TN  37205-3806 USA
  2410.  
  2411.                              615-292-2881 (evenings)
  2412.                              CompuServe: 76166,2640
  2413.                        Internet: 76166.2640@compuserve.com
  2414.  
  2415.        Index                                                            45
  2416.  
  2417.  
  2418.        80x87 coprocessor, 31              DATA command, 21
  2419.        ABS function, 7                    DEG function, 7
  2420.        Absolute converge, 28              Degrees to radians, 9
  2421.        Acknowledgement, 40                Deviation
  2422.        ACOS function, 7                      average, 23
  2423.        Adaptive algorithm, 27                definition, 2
  2424.        AFCTOL value, 27                      maximum, 23
  2425.        AIDS growth curve, 32              Diode current example, 34
  2426.        Arc cosine function, 7             Disclaimer, 41
  2427.        Arc sine function, 7               DPMI support, 42
  2428.        Arc tangent function, 7            Durbin-Watson statistic, 24
  2429.        Arighmetic operators, 6            E constant, 6
  2430.        ASIN function, 7                   EI2 function, 7
  2431.        ASP, 41                            EIC1 function, 7
  2432.        Assn. of Shareware Prof., 41       EIC2 function, 8
  2433.        Asymptotic function example,       EL1 function, 7
  2434.                 32                        Elliptic integral function, 7,
  2435.        ATAN function, 7                            8
  2436.        Author address, 41                 ERF function, 8
  2437.        Autoregression test, 19, 24        Examples, 32
  2438.        Average deviation, 23                 AIDS growth curve, 32
  2439.        AVL tree example, 34                  asymptotic function, 32
  2440.        Bessel function, 8, 10                AVL tree, 34
  2441.        Beta function, 7                      boiling water, 33
  2442.        BETAI function, 7                     cooling, 33
  2443.        Brachistochrone, 39                   diode current, 34
  2444.        Build-in functions, 7                 function minimization, 39
  2445.        Built-in constants, 6                 linear regression, 32
  2446.        Calculus of variations, 39            lunar lander, 39
  2447.        Chebyshev function, 10                magnet force, 34
  2448.        Circular regression, 36               minimum time path, 39
  2449.        Clapeyron's equation, 33              multivariate, 32
  2450.        Command files, 10                     negative exponential, 33
  2451.        Commands, 12                          piecewise function, 34
  2452.        Comments in command files, 10         quadratic equation, 32
  2453.        Compass to polar, 7                   square wave, 33
  2454.        CompuServe, 41, 43                    SWEEP command, 33
  2455.        CONFIDENCE command, 13, 23         EXP function, 8
  2456.        Confidence intervals, 13           Exponentation operator, 6
  2457.        CONSTANT command, 6, 13            Expression minimization, 37
  2458.        CONSTRAIN command, 14, 30          FAC function, 8
  2459.        Continuation of lines, 10          Factorial function, 8
  2460.        Convergence criterion, 27          Fire station example, 37
  2461.           absolute, 28                    FUNCTION command, 15
  2462.           relative, 28                    Function minimization, 37
  2463.        Convergence failures, 29           Functions, 7
  2464.        Cooling example, 33                GAMMA function, 8
  2465.        Copyright notice, 41               GAMMAI function, 8
  2466.        COS function, 7                    GAMMALN function, 8
  2467.        Cosecant function, 7               Gauss-Newton algorithm, 27
  2468.        COSH function, 7                   Growth curve, 32
  2469.        COT function, 7                    HAV function, 8
  2470.        COVARIANCE command, 14             Hessian, 27
  2471.        CSC function, 7                    Hyperbolic cosine function, 7
  2472.        CTOP function, 7                   Hyperbolic sine function, 10
  2473.  
  2474.        Index                                                            46
  2475.  
  2476.  
  2477.        Hyperbolic tangent function,       Numeric constants, 6
  2478.                 10                        Numeric coprocessor, 31
  2479.        Incomplete beta function, 7        $OBS variable, 16
  2480.        Installing Nonlin, 3               Order form, 44
  2481.        Internet, 41, 43                   OUTPUT command, 16
  2482.        Inverse gamma function, 8          PARAMETER command
  2483.        ITERATIONS command, 15                function minimization, 37
  2484.        J0 function, 8                     PARAMETERS command, 12
  2485.        J1 function, 8                     PAREA function, 8
  2486.        JN function, 8                     Performance issues, 30
  2487.        LaserJet                           Periodic data, 25
  2488.        LaserJet printer, 3, 40            PI constant, 6
  2489.           resolution, 20                  Piecewise function example,
  2490.        Least squares regression, 2                 34
  2491.        Levenberg-Marquardt, 27            PLOT command, 17
  2492.        Limits, 31                            options, 17
  2493.        Linear regression, 1               Plots
  2494.           example, 32                        data and function, 17
  2495.        Listing file, 5                       normal probability, 19
  2496.        LOG function, 8                       residual values, 18
  2497.        Log gamma function, 8                 resolution, 20
  2498.        LOG10 function, 8                     width of, 20
  2499.        LOG2 function, 8                   Polar to compass, 9
  2500.        Logistic curve, 32                 Polar to rectangular, 9
  2501.        Lunar lander example, 39           Polynomial equation example,
  2502.        Magnet example, 34                          32
  2503.        Marquardt algorithm, 27            POUTPUT command, 17
  2504.        Mathplot, 42                          extra precision output, 22
  2505.        MAX function, 8                    $PREDICTED variable, 16
  2506.        Maximum values, 22                 PRESOLUTION command, 20
  2507.        MIN function, 8                    Prob(t) value, 23
  2508.        Minimiation algorithm, 27          Program limits, 31
  2509.        Minimization problem, 37           PTOC function, 9
  2510.        Model/trust region, 27             PTORX function, 9
  2511.        Multi-user operating system,       PTORY function, 9
  2512.                 42                        PULSE function, 9
  2513.        Multiple determination, 24         Quadratic equation example,
  2514.        Multivariate regression, 32                 32
  2515.        Mutually dependent, 30             RAD function, 9
  2516.        Natural log function, 8            Radian to degree conversion,
  2517.        Negative exponential, 2, 33                 7
  2518.        Networking, 43                     Ra^2 statistic, 24
  2519.        NOECHO command, 20                 Real-time, 42
  2520.        NONLIN environment variable,       Rectangular to polar, 9
  2521.                 3                         REGISTER command, 16
  2522.        NONLIN.DOC file, 3                 REGISTER.DOC file, 3
  2523.        NONLIN.EXE file, 3                 Registering Nonlin, 40
  2524.        NONLIN.FON file, 3, 17             Registration form, 44
  2525.        NONLIN.LJF file, 3                 Relative convergence, 28
  2526.        NORMAL function, 8                 Residual
  2527.        Normal probablity plot, 19         Residual values
  2528.        NPD function, 8                       plotting, 18
  2529.        NPLOT command, 19                  $RESIDUAL variable, 16
  2530.           autocorrelation test, 25           average, 23
  2531.           options, 20                        definition, 2
  2532.  
  2533.        Index                                                            47
  2534.  
  2535.  
  2536.           maximum, 23                     Y1 function, 10
  2537.        RFCTOL value, 27                   YN function, 10
  2538.        Root finding, 37
  2539.        RPLOT command, 18
  2540.           autocorrelation test, 25
  2541.           options, 19
  2542.        RTOPA function, 9
  2543.        RTOPD function, 9
  2544.        R^2 statistic, 24
  2545.        S&H Computer Systems, Inc.,
  2546.                 43
  2547.        SEC function, 9
  2548.        Secant function, 9
  2549.        SEL function, 10
  2550.        SET command, 3
  2551.        Sherrod, Phillip H., 41
  2552.        SIM2NL, 43
  2553.        SIMSTAT, 43
  2554.        SIN function, 10, 25
  2555.        Singular matrix problems, 30
  2556.        SINH function, 10
  2557.        SQRT function, 10
  2558.        Square wave example, 33
  2559.        Standard deviation, 22
  2560.        Standard error function, 8
  2561.        STEP function, 10
  2562.        Support of Nonlin, 40
  2563.        SWEEP command, 14
  2564.           convergence failure, 29
  2565.           example, 33
  2566.           function minimization, 38
  2567.           performance issues, 31
  2568.        Symbolic constants, 6
  2569.        T function, 10
  2570.        t statistic, 22, 23
  2571.        TAN function, 10
  2572.        TANH function, 10
  2573.        TCP/IP, 43
  2574.        Theory of operation, 27
  2575.        Time series data, 24
  2576.        TITLE command, 12
  2577.        TOLERANCE command, 15, 16
  2578.           converge criterion, 27
  2579.        TREND example, 25
  2580.        TREND.NLR, 33
  2581.        TSX-32, 42
  2582.        TSX-Lite, 42
  2583.        Use and distribution, 40
  2584.        VARIABLES command, 12
  2585.        Variance-covariance matrix,
  2586.                 14
  2587.        Warranty, 41
  2588.        WIDTH command, 20
  2589.        X windows, 42
  2590.        Y0 function, 10
  2591.