home *** CD-ROM | disk | FTP | other *** search
/ Antennas / Antennas_CD-ROM_Walnut_Creek_September_1996.iso / mathaids / misc / logreg.asc < prev    next >
Text File  |  1996-06-30  |  2KB  |  41 lines

  1. 10 PRINT "N-TH ORDER LOG REGRESSION": REM S & E PROGRAMS,EXTENDED RPH JUN 85
  2. 20 DIM A(13), R(7, 8), T(8)
  3. 30 INPUT "NUMBER OF DATA PAIRS"; N
  4. 32 DIM X(N), Y(N)
  5. 34 FOR I = 1 TO N: PRINT "ENTER X,Y OF DATA PAIR"; I: INPUT X(I), Y(I): Y(I) = LOG(Y(I)): NEXT I
  6. 40 INPUT "DEGREE OF EQUATION"; D: PRINT "WAIT-PROCESSING": PRINT
  7. 45 FOR K = 0 TO 13: A(K) = 0: NEXT K
  8. 46 FOR K = 0 TO 8: T(K) = 0: NEXT K
  9. 50 A(1) = N: FOR I = 1 TO N: X = X(I): Y = Y(I)
  10. 60 FOR J = 2 TO 2 * D + 1: A(J) = A(J) + X ^ (J - 1): NEXT J
  11. 70 FOR K = 1 TO D + 1: R(K, D + 2) = T(K) + Y * X ^ (K - 1): T(K) = T(K) + Y * X ^ (K - 1): NEXT K
  12. 80 T(D + 2) = T(D + 2) + Y * Y: NEXT I
  13. 90 FOR J = 1 TO D + 1: FOR K = 1 TO D + 1: R(J, K) = A(J + K - 1): NEXT K: NEXT J
  14. 100 FOR J = 1 TO D + 1: FOR K = J TO D + 1: IF R(K, J) <> 0 THEN 120
  15. 110 NEXT K: PRINT "NO UNIQUE SOLUTION": GOTO 260
  16. 120 FOR I = 1 TO D + 2: S = R(J, I): R(J, I) = R(K, I): R(K, I) = S: NEXT I
  17. 130 Z = 1 / R(J, J): FOR I = 1 TO D + 2: R(J, I) = Z * R(J, I): NEXT I
  18. 140 FOR K = 1 TO D + 1: IF K = J THEN 160
  19. 150 Z = -R(K, J): FOR I = 1 TO D + 2: R(K, I) = R(K, I) + Z * R(J, I): NEXT I
  20. 160 NEXT K: NEXT J
  21. 170 PRINT "CONSTANT TERM ="; R(1, D + 2): PRINT
  22. 180 FOR J = 1 TO D: PRINT "X^"; J; " COEFFICIENT="; R(J + 1, D + 2): NEXT J: PRINT
  23. 190 P = 0: FOR J = 2 TO D + 1: P = P + R(J, D + 2) * (T(J) - A(J) * T(1) / N): NEXT J
  24. 200 Q = T(D + 2) - T(1) ^ 2 / N: Z = Q - P: I = N - D - 1: J = P / Q
  25. 210 PRINT : PRINT "COEFFICIENT OF": PRINT "DETERMINATION": PRINT "R^2 ="; J
  26. 220 PRINT : PRINT "CORRELATION COEFFICIENT ="; SQR(J)
  27. 230 PRINT : PRINT "STANDARD ERROR ="; SQR(Z / I): PRINT
  28. 240 INPUT "INTERPOLATE VALUE, 0=END"; X: IF X = 0 THEN 260
  29. 250 P = R(1, D + 2): FOR J = 1 TO D: P = P + R(J + 1, D + 2) * X ^ J: NEXT J: PRINT "Y="; EXP(P): PRINT : GOTO 240
  30. 260 PRINT "ENTER D=ANOTHER DEGREE,N=NEW VALUES OR P=PRINTOUT": INPUT TE$
  31. 270 IF TE$ = "D" THEN 40
  32. 280 IF TE$ = "N" THEN CLS : GOTO 20
  33. 290 IF TE$ = "P" THEN TE$ = "": GOTO 320
  34. 300 STOP
  35. 310 REM PRINTER ROUTINE
  36. 320 LPRINT "***** NTH ORDER LOG REGRESSION *****"
  37. 330 LPRINT "I", "X", "Y"
  38. 340 FOR I = 1 TO N: LPRINT I, X(I), Y(I): NEXT I
  39. 350 GOTO 260
  40.  
  41.