home *** CD-ROM | disk | FTP | other *** search
- PROGRAM d3r3 (input,output);
- (* driver for routine SPLINE *)
- CONST
- n=20;
- pi=3.1415926;
- TYPE
- glnarray = ARRAY [1..n] OF real;
- VAR
- i : integer;
- yp1,ypn : real;
- x,y,y2 : glnarray;
-
- (*$I MODFILE.PAS *)
- (*$I SPLINE.PAS *)
-
- BEGIN
- writeln ('second-derivatives for sin(x) from 0 to pi');
- (* generate array for interpolation *)
- FOR i := 1 to 20 DO BEGIN
- x[i] := i*pi/n;
- y[i] := sin(x[i])
- END;
- (* calculate 2nd derivative with spline *)
- yp1 := cos(x[1]);
- ypn := cos(x[n]);
- spline(x,y,n,yp1,ypn,y2);
- (* test result *)
- writeln ('spline':23,'actual':16);
- writeln ('number':11,'2nd deriv':14,'2nd deriv':16);
- FOR i := 1 to n DO BEGIN
- writeln (i:8,y2[i]:16:6,-sin(x[i]):16:6)
- END
- END.
-