USES SPLIN; { Porovnava 1. derivaci funkce cos x s hodnotou ziskanou pomoci splinu zadavaji se derivace na okraji jako okraj. podm. vysledek se pise do souboru SPL1.DAT} const pi = 3.141592; { nbod = 51; ndel = 501;} var X,Y, Y2, Y1kon, y1spl : RealArrayNP; xmax,xmin,xr,yp1,ypn,dx,y21,xh,ygs,yfs,dx1: Real; i,nbod : integer; f1 : text; BEGIN ASSIGN(f1,'spl1.dat'); REWRITE(f1); Writeln('ZADEJ xmin,xmax,nbod'); Readln(xmin,xmax,nbod); dx := (xmax - xmin)/(nbod - 1); FOR i := 1 to nbod DO BEGIN x[i] := xmin + (i-1)*dx; y[i] := cos(x[i]); y1kon[i] := -sin(x[i]) END; Writeln (' Zadej derivaci y pro xmin, xmax'); Readln(yp1,ypn); Spline(X,Y,nbod,yp1,ypn,Y2); FOR i:= 1 TO nbod-1 DO BEGIN xr := (x[i+1]-x[i]); y1spl[i]:= (y[i+1]-y[i])/xr - xr*(y2[i]/3 + y2[i+1]/6) END; y1spl[nbod] := (y[nbod]-y[nbod-1])/xr + xr*(y2[nbod-1]/6+y2[nbod]/3); WRITELN(' x y d1teor d1spl'); FOR i := 1 TO nbod DO BEGIN writeln(x[i],y[i],y1kon[i],y1spl[i]); writeln(f1,x[i],y[i],y1kon[i],y1spl[i]) END; CLOSE(f1) END.