Listing of file='RGRESS.BAS;01' on disk='vmedia/taylor_4-sector.ccvf'
10 DIM X(20),Y(20),XT(20),YT(20) 20 FG = 0 100 PLOT 12,14,29,17,30,16 110 PRINT "LINEAR LEAST SQUARES REGRESSION" 120 PRINT 130 PRINT "FOUR DIFFERENT TYPES OF CURVE FIT ARE POSSIBLE:" 140 PRINT "1. LINEAR Y = A * X + B" 150 PRINT "2. LOGARITHMIC Y = A * LN(X) + B" 160 PRINT "3. EXPONENTIAL Y = A * EXP(B*X)" 170 PRINT "4. POWER LAW Y = A * X**B" 180 PRINT 190 INPUT "TYPE OF CURVE TO FIT (1-4) ? ";TY 195 IF (TY< 1)OR (TY> 4)GOTO 190 200 INPUT "NUMBER OF DATA POINTS = ";N 201 INPUT "INVERT X-VALUES (I.E. 1/X) (Y/N) ? ";IX$ 202 INPUT "INVERT Y-VALUES (Y/N) ? ";IY$ 210 PLOT 12 220 PRINT "ENTER DATA POINTS AS X,Y WHEN REQUESTED" 230 FOR I= 1TO N 240 PRINT "DATA POINT ";I;" = "; 250 INPUT " ";X(I),Y(I) 252 XT(I) = X(I): YT(I) = Y(I) 255 IF IX$ = "Y" THEN XT(I) = 1/ XT(I) 257 IF IY$ = "Y" THEN YT(I) = 1/ YT(I) 260 NEXT I 270 IF TY< 3GOTO 310 280 FOR I= 1TO N 290 YT(I)= LOG (YT(I)) 300 NEXT I 310 IF (TY= 1)OR (TY= 3)GOTO 350 320 FOR I= 1TO N 330 XT(I)= LOG (XT(I)) 340 NEXT I 350 SX= 0:SY= 0:XY= 0 360 XX= 0:YY= 0: 365 PLOT 12:PRINT TAB( 5);"X",TAB( 15);"Y" 370 FOR I= 1TO N 380 SX= SX+ XT(I) 390 SY= SY+ YT(I) 400 XY= XY+ XT(I)* YT(I) 410 XX= XX+ XT(I)^ 2 420 YY= YY+ YT(I)^ 2 425 PRINT XT(I),TAB( 10);YT(I) 430 NEXT I 435 INPUT "TYPE <RETURN> TO CONTINUE";A$ 440 XM= SX/ N 450 YM= SY/ N 460 A= (N* XY- SX* SY)/ (N* XX- SX^ 2) 470 B= YM- A* XM 480 R= (XY- SX* SY/ N)/ SQR ((XX- SX^ 2/ N)* (YY- SY^ 2/ N)) 500 IF TY< 3GOTO 520 510 B = EXP (B) 520 PLOT 12: PRINT "FOR THE REGRESSION LINE: "; 521 ON TY GOTO 522,524,526,528 522 PRINT "Y = A * X + B" 523 GOTO 530 524 PRINT "Y = A * LN(X) + B" 525 GOTO 530 526 PRINT "Y = B * EXP(A*X)" 527 GOTO 530 528 PRINT "Y = B * X^A" 530 PRINT "A = ";A 540 PRINT "B = ";B 550 PRINT :PRINT "CORRELATION COEFFICIENT = ";R 560 PRINT :INPUT "PLOT THE DATA (Y/N) ? ";A$ 570 IF A$ < > "Y" THEN END 600 M = N- 1 610 FOR J = 1 TO M 620 K = J+ 1 630 FOR I= K TO N 640 IF X(J) < = X(I) GOTO 710 650 T = X(J) 660 X(J) = X(I) 670 X(I) = T 680 T = Y(J) 690 Y(J) = Y(I) 700 Y(I) = T 710 NEXT I 720 NEXT J 730 X1 = X(1) 740 X2 = X(N) 750 Y1 = Y(1) 760 Y2 = Y(1) 770 FOR I= 2 TO N 780 IF Y(I) < Y1 THEN Y1 = Y(I) 790 IF Y(I) > Y2 THEN Y2 = Y(I) 800 NEXT I 805 IF (X1- INT (X1)) = 0 GOTO 820 810 IF X1 < 0 THEN X1 = X1- 1 815 X1 = INT (X1) 820 IF (Y1- INT (Y1)) = 0 GOTO 835 825 IF Y1 < 0 THEN Y1 = Y1- 1 830 Y1 = INT (Y1) 835 IF (X2- INT (X2)) = 0 GOTO 850 840 IF X2 > 0 THEN X2 = X2+ 1 845 X2 = INT (X2) 850 IF (Y2- INT (Y2)) = 0 GOTO 865 855 IF Y2 > 0 THEN Y2 = Y2+ 1 860 Y2 = INT (Y2) 865 XS = (X2- X1)/ 20 990 PLOT 12 1000 GOSUB 50000 1010 GOSUB 51000 1020 FOR X= X1 TO X2 STEP XS 1030 ON TY GOTO 1032,1034,1036,1038 1032 Y = A* X+ B 1033 GOTO 1040 1034 Y = A* LOG (X)+ B 1035 GOTO 1040 1036 Y = B* EXP (A* X) 1037 GOTO 1040 1038 Y = B* X^ A 1040 GOSUB 52000 1050 NEXT X 1090 PLOT 29,20 1100 FOR I= 1 TO N 1110 X = X(I) 1120 Y = Y(I) 1130 ST = 1 1140 GOSUB 52000 1150 NEXT I 1160 PLOT 29,18,3,0,0: INPUT "TYPE <RETURN>";A$ 5000 END 50000 X0 = 10: Y0 = 10 50010 I1 = 100: I2 = 100 50020 GX = 100: GY = 100 50030 IF (FG< > 0) GOTO 50040 50035 GX = 2: GY = 2 50040 X3= I1/ (X2- X1) 50050 Y3= I2/ (Y2- Y1) 50100 ST= 1 50110 RETURN 51000 PLOT 15,29,17,2,250 51010 PLOT X0,Y0,X0+ I1 51020 PLOT 255,29,22,2,250,X0 51030 FOR I= 1 TO 10:PLOT Y0+ I* 10:PLOT X0+ GX: NEXT I 51040 PLOT 255,29,17,2 51050 PLOT 246 51060 PLOT Y0,X0,Y0+ I2 51070 PLOT 255,29,22,2,246,Y0 51080 FOR I= 1 TO 10:PLOT X0+ I* 10: PLOT Y0+ GY: NEXT I 51090 PLOT 255,29,19 51100 PLOT 3,3,30:PRINT X1 51110 PLOT 3,25,30:PRINT "X - AXIS" 51120 PLOT 3,53,30:PRINT X2 51130 PLOT 3,20,31:PRINT "X INCREMENT = ";(X2- X1)/ 10; 51140 PLOT 3,0,29:PRINT Y1 51150 D$ = STR$ ((Y2- Y1)/ 10) 51160 PLOT 3,0,10,27,10:PRINT "Y - AXIS"; 51170 PLOT 3,2,7:PRINT "Y INCREMENT =";D$;:PLOT 27,11 51180 PLOT 3,0,4:PRINT Y2 51190 PLOT 3,25,0:PRINT "X - Y PLOT"; 51200 PLOT 8,29,18 51210 RETURN 52000 PLOT 2,242 52010 IF ST< > 0THEN PLOT 253 52020 X4= (X- X1)* X3+ X0 52030 IF X4> X0+ I1GOTO 52200 52040 IF X4< X0GOTO 52200 52050 Y4= (Y- Y1)* Y3+ Y0 52060 IF Y4> Y0+ I2GOTO 52200 52070 IF Y4< Y0GOTO 52200 52080 PLOT X4,Y4 52090 ST= 0 52100 PLOT 255 52110 RETURN 52200 ST= 1 52210 GOTO 52100