PCjs Machines

Home of the original IBM PC emulator for browsers.

Logo

PC-SIG Diskette Library (Disk #925)

[PCjs Machine "ibm5170"]

Waiting for machine "ibm5170" to load....

Information about “LSTSQR”

LSTSQR carries out a least-squares fit of data to a variety of
functional forms including linear, logarithmic, polynomial and
exponential.  It allows multiple fits of the same data using the same
or different functions without exiting the program.  LSTSQR87 supports
the 8087 math co-processor.

The program has many measures of quality-of-fit, including standard
deviation and the 95% confidence interval.  The program also graphs and
prints the fit if desired.  You can input data by keyboard or from data
files.

FILES.DOC

                              FILES ON THIS DISK
                               (subset version)
             ----------------------------------------------------
                TD1.COM   - TURBO Designer program
                TD1.DOC   - TURBO Designer documentation.
            GLIMPSE.COM   - Gives Subset users a glimpse
                            of the advanced version.
           PRACTICE.COM   - Lets new users toy around while learning
                            how to use pull down menus. Also shows some
                            of the features of the GOODIES toolbox.
           PRACTICE.PAS   - Source code for PRACTICE.COM.
           PRACTICE.DAT   - Data for PRACTICE.
             GLOBAL.PAS   - Global variables for TURBO Designer output.
                            (For TURBO Pascal v4.0)
            GLOBAL3.PAS   - Global variables for TURBO Designer output.
                            (For TURBO Pascal v3.0)
                 PD.PAS   - Pull down (spaghetti, uncommented) source code.
           PRINTDOC.COM   - Utility to put documentation on printer.
              FILES.DOC   - This file.
             README.      - Read this first for initial help.
              ---------------------------------------------------

FILES925.TXT

Disk No:  925
Program Title: LSTSQR version 1.00A
PC SIG version: 1.2

LSTSQR carries out a least-squares fit of data to a variety of
functional forms including linear, logarithmic, polynomial and
exponential.  The program allows multiple fits of the same data using
the same or different functions without exiting the program.  LSTSQR87
is nearly identical to LSTSQR except that it supports the 8087 math
co-processor.  In addition, the program provides many measures of
quality-of-fit, including standard deviation and the 95% confidence
interval.  The program also graphs and prints the fit if desired.  Data
can be inputed by keyboard or from data files on disk.

TURBO DESIGNER has been moved to disk #1353.

Usage:  Programming.

Special Requirements:  8087 math co-processor optional and CGA graphics.

How to Start:  Type GO (press enter).

Suggested Registration:  None specified.

File Descriptions:

LSTSQR87 COM  Main program for use with 8087 co-processor.
LSTSQR   COM  Main program.
LSTSQR   DOC  Program documentation.
4X6      FON  Printer font for graphing results.
ERROR    MSG  Contains error messages.
README        Instructions on printing documentation.
DESCRIPT      Brief description of program.

PC-SIG
1030D E Duane Avenue
Sunnyvale Ca. 94086
(408) 730-9291
(c) Copyright 1987,88,89 PC-SIG, Inc.


GO.TXT

╔═════════════════════════════════════════════════════════════════════════╗
║                    <<<<  Disk No 925 LSTSQR  >>>>                       ║
╠═════════════════════════════════════════════════════════════════════════╣
║ To print the documentation for LSTSQR, Type:                            ║
║             COPY LSTSQR.DOC LPT1: (press enter)                         ║
║                                                                         ║
║ To run the program LSTSQR with a 8086 coprocessor, Type:                ║
║             LSTSQR (press enter)                                        ║
║                                                                         ║
║ To run the program LSTSQR with a 8087 coprocessor, Type:                ║
║             LSTSQR87 (press enter)                                      ║
╚═════════════════════════════════════════════════════════════════════════╝

LSTSQR.DOC

                        DOCUMENTATION FOR PROGRAM LSTSQR


     GENERAL INFORMATION
                          
          AUTHOR:  Arthur Ferguson                                      
                   21 Upper Joclyn Avenue
                   Framingham, MA  01701 

          PURPOSE:  To provide a least-squares fit of data to a variety of 
                    functional forms.
                    
          FUNCTIONAL FORMS SUPPORTED:  
                     A.  Linear (Y = A + BX)
                     B.  Polynomial (Y = A + BX + CX^2 ....) up to a 
                         maximum power of X^5.
                     C.  Exponential (Y = A*Exp(BX))
                     D.  Ln(Y) = A + BX
                     E.  Ln(Y) = A + B/X
                     F.  Ln(Y) = A + B/X + C*Ln(X)
                     G.  1/Y = A + BX
                     H.  Y = A + BX + C/(X^2)
                     I.  Y = A + B/X
                     J.  Y = A + B*Ln(X)
               
          FITTING PROCEDURE USED:  Since all of the functional forms except 
               the exponetial (C) are linear in the coefficients A, B, 
               etc., a single-pass "linear" procedure was used for those 
               functional forms (See the books by Miller and Hildebrand 
               referred to in the acknowledgements).  For the exponential
               functional form a first approximation obtained by 
               linearizing the equation was refined with an iterative 
               solution of the appropriate non-linear equation using 
               Newton's method (See Miller).                               
     
          INTERACTIVE FLEXIBILITY:  A system of menus combined with calls 
               for user input at key decision points allows multiple fits 
               of the same data set, using the same or different functional 
               forms, with the opportunity to change, add, or delete data 
               points between fits, and the fitting of several different 
               data sets, all without leaving the program.  
     
          MEASURES OF THE QUALITY OF THE FIT REPORTED (for all functional 
          forms except the exponential): 
               Standard Deviations of the fitting parameters 
               95% Confidence Intervals of the fitting parameters
               Standard Deviation of the points
               Correlation Coefficient of the fit
               Sum of the Squares of the Residuals (the only
               measure provided for the exponential fit)

          PROGRAMMING LANGUAGE USED: Borland Turbo Pascal Version 3.0
          
          FORMS OF PROGRAM PROVIDED: LSTSQR.COM and LSTSQR87.COM.  These 
               are identical except that LSTSQR87 supports and requires 
               the 8087 numeric co-processor chip while LSTSQR neither 
               supports nor requires the 8087.

          MAXIMUM NUMBER OF DATA POINTS: 200.     
    
          PRECISION OF CALCULATED QUANTITIES
               Up to 11 significant digits (48-bit Reals) with LSTSQR.
               Up to 16 significant digits (64-bit Reals) with LSTSQR87.

          DATA WEIGHTING OPTIONS: Individual weighting of data points or 
               uniform (equal) weighting.
                     
          DATA INPUT OPTIONS: Keyboard entry from within the program or 
               entry in the form of previously prepared ASCII disk file.
               For the format requirements of a disk data file see below.  

          DATA OUTPUT OPTIONS: Screen, printer, or disk file (DOS paths 
               supported), selectable from within the program.
               
          RESULTS OUTPUT OPTIONS: Screen or printer, selectable from within 
               the program.
               
          GRAPHING CAPABILITIES: After a fit is obtained the data and the 
               fitting curve can be graphed (requires CGA or compatible 
               graphics adapter).  WHEN GRAPHING IS PLANNED, THE FILES 
               4X6.FON AND ERROR.MSG MUST BE IN THE CURRENT DISK DIRECTORY!  
               The absence of ERROR.MSG will produce an non-fatal error 
               when graphing is attempted.  Graphs may be printed on IBM 
               compatible printers using the PrtSc or Shift PrtSc key.  
               

                              
     ACKNOWLEDGEMENTS
               
          The theoretical background and general procedure for linear and 
     polynomial least-squares fitting of data was gotten from 
     F.B. Hildebrand, Introduction to Numerical Analysis, McGraw-Hill, 
     New York (1956).  The Gauss-Jordan Elimination procedure for inverting 
     matrices, the equations for determining standard deviations for the 
     fitting parameters and the correlation coefficients in the cases of 
     the "linear" fitting procedures, and the theoretical background for 
     the iterative non-linear fit to the exponential functional form using 
     Newton's Method were obtained from Arthur R. Miller, Pascal Programs 
     for Scientists and Engineers, Sybex (1981).  The equations for the t 
     values used to calculate the 95% confidence intervals for the fitting 
     parameters from their standard deviations were based on those 
     presented by W.J. Blaedel and D.G. Iverson in Analytical Chemistry, 
     Vol. 48, No. 13, p. 2027 (1976).   The graphics routines used were 
     from the Borland Turbo Graphix Toolbox.  
     
     

     RESTRICTIONS ON DATA VALUES AND FORMAT REQUIREMENTS FOR DISK DATA FILES
     
          Data values must conform to the ranges and formats of Turbo 
     Pascal reals.  This means that the exponents of numbers in scientific 
     notation must be represented by E followed by a positive or negative 
     integer (1.5E3 = 1.5 X (10 to the 3rd) = 1500).  The E must follow the 
     last digit of the mantissa with no spaces (1.5E3, not 1.5 E3).  For 
     LSTSQR numbers must be in the range 1E-38 to 1E+38, and the exponents 
     in data values may contain a maximum of two digits (1.5E3 and 1.5E03 
     are O.K.; 1.5E003 is not and will cause an I/O error and termination 
     of the program).  For LSTSQR87 numbers must be in the range 4.09E-307 
     to 1.67E+308, and three digit exponents in data values are O.K. 
     (1.5E003 is acceptable to LSTSQR87).  Though it seems not to be 
     
     necessary, it is probably a good idea to follow the convention of 
     including at least one digit before the decimal point in any data 
     value, even if it is only a zero (for example, 0.5 instead of .5).  

          Disk data files must be pure ASCII files with no symbols other 
     than those involved in the data values themselves.  The first line of 
     the file must contain only one item, the letter W if the data points 
     are to be individually weighted, or the letter N if uniform, equal 
     weighting of the data points is to be used.  Each succeeding line in 
     the file must contain the X value, the Y value, and, where individual 
     weighting factors are included, the weighting value for a single data 
     point.  These values must appear in the order X, Y, weighting factor 
     and be separated by a blank space (NOT a comma).  Below is a sample 
     data file for a set of equally weighted data points 

                           N
                           0.055127 34.06
                           0.041545 54.21
                           0.033333 82.64
                           0.027832 131.6
                           0.023889 200.4
                           0.020925 318.3
                           0.018615 485.1
                           0.016764 765.8
                           0.015249 1188.1
                           0.013984 1845.2

     When fit to the functional form Ln(Y) = A + B/X this set of data gives 
     A = 2.18386, B = 0.07466, and a correlation coefficient of 0.99997426.  
     

                                                                 
     REQUIREMENT OF THE USE OF THE "ENTER" (CARRIAGE RETURN) KEY WHEN 
     ENTERING INFORMATION OR RESPONDING TO QUERIES WITHIN THE PROGRAM
     
          This program uses buffered input throughout, which means that all 
     data values and other information entered from within the program and 
     all menu selections and responses to program queries must be followed 
     by pressing the ENTER or carriage return key (Sometimes pressing the 
     ENTER key alone is sufficient).  Some users used to the current trend 
     toward unbuffered input when single character responses are required 
     may find that this use of buffered input maddeningly slow, but it was 
     consciously chosen to provide the opportunity to correct mistakes or 
     change one's mind before the response is acted on by the program.
               
                                                                      

     FITTING CRITERIA AND THE CHOICE OF WEIGHTING FACTORS
     
          For all functional forms linear in the coefficients, which means 
     all forms except the exponential, the criterion for the fit was the 
     minimization of the sum of the squares of the ABSOLUTE residuals 
     [Y(calc) - Y(exp)].  Therefore, if individual weighting factors are to 
     be used, an appropriate basis for them would be the estimated ABSOLUTE 
     error of the individual data points.  For the exponential functional
     form the criterion for the fit was the minimization of the sum of the 
     squares of the RELATIVE residuals [(Y(calc) - Y(exp))/Y(exp)] (For the 
     rationale for this see Miller).  Therefore, an appropriate basis for 
     weighting factors in this case would be the estimated RELATIVE error 
     of the individual data points.                                        
    
     INTERPRETATION OF THE 95% CONFIDENCE INTERVALS 
     
          The figures given for the 95% confidence intervals represent the 
     "distance" on either side of the value of a parameter to the 
     boundaries of the 95% confidence interval.  Therefore, if the listing 
     of the results of a fit give the parameter A with a value of 1.507 and 
     a 95% confidence interval of 0.021, it means that there is a 95% 
     probability that A lies in the interval 1.507 + or - 0.021.
     
                                                                

     THINGS THAT HAVE BEEN FOUND TO CRASH THE PROGRAM

          In the testing of this program only two things have been found to 
     make it crash.  These are 1) a mistake in entering the name of a data 
     input file which causes the program to search for a file that does not 
     exist and 2) the entering of data, from either a data file or the 
     keyboard, that is out of the acceptable range or contains too many 
     digits in the exponent (See restrictions on data values above).  Both 
     of these cause I/O errors and program termination.  
     


     STEPS TO TAKE IN RUNNING THE PROGRAM

     1.   Use your favorite text editor to set up a data input file as 
          described above, unless you prefer to enter the data from within 
          the program.
     2.   Be sure that either LSTSQR.COM or LSTSQR87.COM, depending on 
          which one you intend to use, is in the current disk directory and 
          that the files 4X6.FON and ERROR.MSG are also in the current 
          directory if you intend to graph the results.  
     3.   Type LSTSQR or LSTSQR87.
     4.   Follow the menus and instructions in the program.
          
          
          
     PROGRAM TESTING AND DISCLAIMERS
     
          This program has been tested on an 8086-based COMPAQ DeskPro with 
     an 8087 and an 8088-based monochrome IBM PC without an 8087.  Both 
     computers have two floppy disk drives and a RAM disk but no hard disk.  
     The tests involved fitting equally weighted data sets for each of the 
     functional forms which the program can handle.  All tests produced the 
     expected results with no equipment problems.  Most of the data sets 
     had previously been run on other computers using other programs, and 
     in all of these cases the results from this program were in excellent 
     agreement with the previous results.  Therefore, the author believes 
     that the program will produce reliable results with no risk to 
     equipment.  HOWEVER, HE ASSUMES NO RESPONSIBILITY FOR THE CONSEQUENCES 
     OF ITS USE.  


Directory of PC-SIG Library Disk #0925

 Volume in drive A has no label
 Directory of A:\

4X6      FON       285   7-23-87   2:08p
DESCRIPT          1329   9-18-87  10:46p
ERROR    MSG       567   7-23-87   2:08p
FILES    DOC      1276   2-29-88   1:00a
FILES925 TXT      1366   3-02-89   3:35p
GO       BAT        38  10-19-87   3:56p
GO       TXT       925   2-24-89   2:58p
LSTSQR   COM     56509   9-02-87   3:04p
LSTSQR   DOC     12680   9-18-87  10:14p
LSTSQR87 COM     55006   9-02-87   3:02p
READ     ME        189   9-04-87  12:36p
       11 file(s)     130170 bytes
                       27136 bytes free