PROGRAM AUSGLEICHSPOLYNOM(INPUT,OUTPUT); CONST NMAX=15; NRMAX=16; VAR M, (* ANZAHL DER PUNKTE *) N, (* GRAD DES POLYNOMS *) NR, (* NR = N + 1 *) I,J,K: INTEGER; X,Y,U,V,W: REAL; A: ARRAY[0..NRMAX,0..NRMAX] OF REAL; P,C: ARRAY[0..NMAX] OF REAL; BEGIN READ(M,N); NR := N + 1; WRITELN; WRITELN("A U S G L E I C H S P O L Y N O M"); WRITELN; (* LOESCHEN DER GLEICHUNGSMATRIX *) FOR I := 0 TO N DO FOR J := I TO NR DO A[I,J] := 0; (* EINLESEN DER PUNKTE, ANGABEPROTOKOLL. BERECHNUNG DER KOEFF. DER NORMALGLEICHUNGEN UND BELEGUNG DER RECHTEN OBEREN DREIECKSMATRIX A[I,J] ( 0<=I<=N, I<=J<=N ), RECHTE SEITEN IN A[I,N+1]. *) FOR K := 1 TO M (* FUER ALLE PUNKTE *) DO BEGIN READ(X,Y); WRITELN("P",K:2,X:8:2," ,",Y:8:2); U := 1; FOR I := 0 TO N DO BEGIN V := U; FOR J := I TO N DO BEGIN A[I,J] := A[I,J] + U*V; V := V*X END; A[I,NR] := A[I,NR] + U*Y; U := U*X END END; (* BERECHNUNG DER LINKEN UNTEREN DREIECKSMATRIX NACH C H O L E S K Y UND SPEICHERUNG IN A[I,J] ( 0<=I<=N, 0<=J