83 lines
1.7 KiB
Plaintext
83 lines
1.7 KiB
Plaintext
PROGRAM MULTIPLE_REGRESSION
|
|
|
|
!$DOUBLE
|
|
|
|
CONST N=14,M=2,Q=3 ! number of points and M.R. polynom degree
|
|
|
|
DIM X[N],Y[N] ! data points
|
|
DIM S[N],T[N] ! linear system coefficient
|
|
DIM A[M,Q] ! sistem to be solved
|
|
|
|
BEGIN
|
|
|
|
DATA(1.47,1.50,1.52,1.55,1.57,1.60,1.63,1.65,1.68,1.70,1.73,1.75,1.78,1.80,1.83)
|
|
DATA(52.21,53.12,54.48,55.84,57.20,58.57,59.93,61.29,63.11,64.47,66.28,68.10,69.92,72.19,74.46)
|
|
|
|
FOR I%=0 TO N DO
|
|
READ(X[I%])
|
|
END FOR
|
|
|
|
FOR I%=0 TO N DO
|
|
READ(Y[I%])
|
|
END FOR
|
|
|
|
FOR K%=0 TO 2*M DO
|
|
S[K%]=0 T[K%]=0
|
|
FOR I%=0 TO N DO
|
|
S[K%]=S[K%]+X[I%]^K%
|
|
IF K%<=M THEN T[K%]=T[K%]+Y[I%]*X[I%]^K% END IF
|
|
END FOR
|
|
END FOR
|
|
|
|
! build linear system
|
|
|
|
FOR ROW%=0 TO M DO
|
|
FOR COL%=0 TO M DO
|
|
A[ROW%,COL%]=S[ROW%+COL%]
|
|
END FOR
|
|
A[ROW%,COL%]=T[ROW%]
|
|
END FOR
|
|
|
|
PRINT("LINEAR SYSTEM COEFFICENTS") PRINT
|
|
FOR I%=0 TO M DO
|
|
FOR J%=0 TO M+1 DO
|
|
WRITE(" ######.#";A[I%,J%];)
|
|
END FOR
|
|
PRINT
|
|
END FOR
|
|
PRINT
|
|
|
|
FOR J%=0 TO M DO
|
|
FOR I%=J% TO M DO
|
|
EXIT IF A[I%,J%]<>0
|
|
END FOR
|
|
IF I%=M+1 THEN
|
|
PRINT("SINGULAR MATRIX !")
|
|
!$STOP
|
|
END IF
|
|
FOR K%=0 TO M+1 DO
|
|
SWAP(A[J%,K%],A[I%,K%])
|
|
END FOR
|
|
Y=1/A[J%,J%]
|
|
FOR K%=0 TO M+1 DO
|
|
A[J%,K%]=Y*A[J%,K%]
|
|
END FOR
|
|
FOR I%=0 TO M DO
|
|
IF I%<>J% THEN
|
|
Y=-A[I%,J%]
|
|
FOR K%=0 TO M+1 DO
|
|
A[I%,K%]=A[I%,K%]+Y*A[J%,K%]
|
|
END FOR
|
|
END IF
|
|
END FOR
|
|
END FOR
|
|
PRINT
|
|
|
|
PRINT("SOLUTIONS") PRINT
|
|
FOR I%=0 TO M DO
|
|
PRINT("c";I%;"=";)
|
|
WRITE("#####.#######";A[I%,M+1])
|
|
END FOR
|
|
|
|
END PROGRAM
|