Overload List
| # | Signature | Description |
|---|---|---|
| 1 | void Interpolate(TVec Y, TVec intX, TVec IntY, TInterpolationType IntType, Boolean IntXSorted) | Performs interpolation assuming X=[0,1,..]. |
| 2 | void Interpolate(TVec X, TVec Y, TVec intX, TVec IntY, TInterpolationType IntType, Boolean IntXSorted) | Perform linear or cubic interpolation. |
Overload 1: void Interpolate(TVec Y, TVec intX, TVec IntY, TInterpolationType IntType, Boolean IntXSorted)
Performs interpolation assuming X=[0,1,..].
| # | Name | Type | Description |
|---|---|---|---|
| 1 | Y | TVec | source TVec |
| 2 | intX | TVec | source TVec |
| 3 | IntY | TVec | source TVec |
| 4 | IntType | TInterpolationType | |
| 5 | IntXSorted | Boolean |
Result: stored in self (calling object)
Performs interpolation assuming X=[0,1,..] and assumes that Y is evaluated at [0,1,2,...] -> X values are [0,1,2,...].
using Dew.Math;
using Dew.Math.Units;
using Dew.Math.Tee;
namespace Dew.Examples
{
private void Example()
{
Vector X = new Vector(0);
Vector Y = new Vector(0);
Vector PX = new Vector(0);
Vector PY = new Vector(0);
// generate function - note that X values are monotonical
Random r = new Random();
X.Ramp();
Y.Values[0] = 100.0;
for (int i=1; i < X.Length; i++)
Y.Values[i] = Y.Values[i-1] + 250 - r.Next(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
Polynoms.Interpolate(X,Y,PX,PY,TInterpolationType.IntCubic,true);
// PY returns the interpolated points, calculated at PX
MtxVecTee.DrawIt(Y,"Original",false);
MtxVecTee.DrawIt(PY,"Interpolated",false);
}
}
Overload 2: void Interpolate(TVec X, TVec Y, TVec intX, TVec IntY, TInterpolationType IntType, Boolean IntXSorted)
Perform linear or cubic interpolation.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | X | TVec | source TVec |
| 2 | Y | TVec | source TVec |
| 3 | intX | TVec | source TVec |
| 4 | IntY | TVec | source TVec |
| 5 | IntType | TInterpolationType | |
| 6 | IntXSorted | Boolean |
Result: stored in self (calling object)
The routine interpolates IntY at IntX to the underlying function values, stored in Y. X.Length and Y.length properties must match or an exception will be raised. The IntType parameter defines the type of interpolation (linear, cubic). The intXSorted parameter defines whether intX values are sorted. If intX values are sorted the interpolation is much faster.
Vector X stores the positions, where the function is evaluated. X values must be monotonic. The Length and Complex properties of the IntY vector are adjusted automatically.