1  REM  ****  HP BASIC PROGRAM LIBRARY  *******************************
2  REM
3  REM        DBLFIT:   LEAST SQUARES FIT TO POINTS WITH UNCERTAINTIES
4  REM                  IN BOTH VARIABLES
5  REM        36252  REV  A   10/73
6  REM
7  REM  ****  CONTRIBUTED PROGRAM  ************************************
10  DIM X[200],Y[200]
20  READ N
90  LET X1=X2=Y1=Y2=0
100  FOR I=1 TO N
110  READ X[I],Y[I]
130  LET X1=X1+X[I]
140  LET X2=X2+I*X[I]
150  LET Y1=Y1+Y[I]
160  LET Y2=Y2+I*Y[I]
170  NEXT I
172  LET I1=N*(N+1)/2
174  LET I2=N*(N+1)*(2*N+1)/6
180  LET X=(N*X2-X1*I1)/(N*I2-I1*I1)
190  LET P=(X1-X*I1)/N
200  LET Y=(N*Y2-Y1*I1)/(N*I2-I1*I1)
210  LET Q=(Y1-Y*I1)/N
212  PRINT 
213  PRINT "CALCULATED POINTS I=1 TO";N
214  PRINT 
220  PRINT "X-CALC. (I) = ";P,"+ I * ";X
225  PRINT 
230  PRINT "Y-CALC. (I) = ";Q,"+ I * ";Y
235  PRINT 
240  PRINT "X-ACTUAL","DIFFERENCE","Y-ACTUAL","DIFFERENCE","DISTANCE"
242  FOR I=1 TO 72
243  PRINT "-";
244  NEXT I
245  LET X2=X3=Y2=Y3=I2=I3=0
250  FOR I=1 TO N
260  LET X1=X[I]-P-I*X
270  LET Y1=Y[I]-Q-I*Y
280  LET I1=SQR(X1*X1+Y1*Y1)
290  LET X2=X2+X1
300  LET X3=X3+X1*X1
310  LET Y2=Y2+Y1
320  LET Y3=Y3+Y1*Y1
330  LET I2=I2+I1
340  LET I3=I3+I1*I1
350  PRINT X[I],X1,Y[I],Y1,I1
360  NEXT I
365  PRINT 
370  PRINT "  ","AVERAGE","STD."
371  FOR I=1 TO 41
372  PRINT "-";
373  NEXT I
374  PRINT 
375  PRINT "X-DIFF",X2/N,SQR((X3-X2*X2/N)/(N-1))
380  PRINT "Y-DIFF",Y2/N,SQR((Y3-Y2*Y2/N)/(N-1))
385  PRINT "DISTANCE",I2/N,SQR((I3-I2*I2/N)/(N-1))
400  DATA 10
410  DATA 4,5,7,9,5,8,8,9,10,12,11,14,13,15,14,18,15,19
415  DATA 16,19,17,19
500  END 
