You are here: Symbol Reference > Polynoms Namespace > Functions > Polynoms.Interpolate Function
MtxVec VCL
ContentsIndex
PreviousUpNext
Polynoms.Interpolate Function

Performs interpolation assuming X=[0,1,..].

Pascal
procedure Interpolate(Y: TVec; intX: TVec; IntY: TVec; IntType: TInterpolationType = IntCubic; intXSorted: boolean = true); overload;

Performs interpolation assuming X=[0,1,..] and assumes that Y is evaluated at [0,1,2,...] -> X values are [0,1,2,...].

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;
#include "MtxExpr.hpp" #include "Polynoms.hpp" #include "MtxVecTee.hpp" #include "MtxVecEdit.hpp" void __fastcall TForm1::BitBtn1Click(TObject *Sender) { sVector X,Y, PX,PY; int i; X.Size(100); Y.Size(100); Randomize; // generate function - note that X values are monotonical X.Ramp(); Y[0] = 100; for (i=1; i < X.Length; i++) Y[i] = Y[i-1] +250 - random(500); // 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"); }
Examples on GitHub
Copyright (c) 1999-2025 by Dew Research. All rights reserved.
What do you think about this topic? Send feedback!