Commit | Line | Data |
---|---|---|
81e70d48 PH |
1 | PROGRAM NEWTON(INPUT,OUTPUT); |
2 | ||
3 | CONST NMAX=25; | |
4 | ||
5 | VAR N,I,J: INTEGER; | |
6 | X,Y,C: ARRAY[0..NMAX] OF REAL; | |
7 | A: ARRAY[-1..NMAX] OF REAL; | |
8 | ||
9 | BEGIN | |
10 | READ(N); N := N-1; | |
11 | WRITELN; | |
12 | WRITELN("I N T E R P O L A T I O N S P O L Y N O M (NEWTON)"); | |
13 | WRITELN(" C0 + C1*X + C2*X^2 + .... + CN*X^N"); | |
14 | WRITELN; | |
15 | ||
16 | (***** EINGABE DER STUETZSTELLEN *****) | |
17 | ||
18 | WRITELN("GEGEBENE PUNKTE:"); | |
19 | FOR I := 0 TO N DO | |
20 | BEGIN READ(X[I],Y[I]); | |
21 | WRITELN("P",I:1,X[I]:8:2," ,",Y[I]:8:2) | |
22 | END; | |
23 | ||
24 | (***** BERECHNUNG DER DIVIDIERTEN DIFFERENZEN *****) | |
25 | ||
26 | FOR I := 1 TO N DO | |
27 | FOR J := N DOWNTO I DO Y[J] := (Y[J-1]-Y[J])/(X[J-I]-X[J]); | |
28 | ||
29 | (***** KOMPOSITION DER KOEFFIZIENTEN *****) | |
30 | ||
31 | A[-1] := 0; | |
32 | FOR I := 0 TO N DO | |
33 | BEGIN | |
34 | A[I] := 1; C[I] := Y[I]; | |
35 | FOR J := I-1 DOWNTO 0 DO | |
36 | BEGIN | |
37 | A[J] := A[J-1] - A[J]*X[I-1]; | |
38 | C[J] := C[ J ] + A[J]*Y[ I ] | |
39 | END | |
40 | END; | |
41 | ||
42 | (***** AUSGABE DER KOEFFIZIENTEN *****) | |
43 | ||
44 | WRITELN; | |
45 | WRITELN("DIE KOEFFIZIENTEN SIND:"); | |
46 | FOR I := 0 TO N DO WRITELN("C",I:1," =",C[I]:15:8) | |
47 | ||
48 | END. |