uses MtxExpr,
Math387,
MtxVec, MtxVecEdit,
MtxVecTee,
Polynoms;
procedure TForm1.Button1Click(Sender: TObject);
var X,Y : Vector;
pX,pY : Vector;
i : Integer;
begin
X.Size(100);
Y.Size(100);
Randomize;
// generate function - note that X values are monotonical
X.Ramp;
y[0] := 100;
for i:=1
to X.Length-1
do
begin
y[i]:=y[i-1] +250 - random(500);
end;
// now setup the points at which you want to interpolate
PX.Size(1000);
PX.Ramp;
PX.Scale(0.1);
// calculate piecewise poly for the range of points -
// note that PX values are sorted
Interpolate(X,Y,PX,PY,intCubic,true);
// PY returns the interpolated points, calculated at PX
DrawIt(Y,'Original');
DrawIt(PY,'Interpolated');
end;