For xSup1 ≤ x ≤ xSupn, where n is the size of the support points xSup, which must be strictly monotonically increasing, this function interpolates using cubic hermite spline. For x outside this interval, the function linearly extrapolates.
If n=2, linear interpolation is used an if n=1, the function value y1 is returned.
Note that if xSup
and ySup
only depend on parameters
or constants, then
IBPSA.Utilities.Math.Functions.cubicHermiteLinearExtrapolation
will be more efficient.
In contrast to the function
Modelica.Math.Vectors.interpolate
which provides linear interpolation, this function does
not trigger events.
For how to use this function, see IBPSA.Utilities.Math.Functions.Examples.SmoothInterpolation.
function smoothInterpolation extends Modelica.Icons.Function; input Real x "Abscissa value"; input Real xSup[:] "Support points (strictly increasing)"; input Real ySup[size(xSup, 1)] "Function values at xSup"; input Boolean ensureMonotonicity = isMonotonic(ySup, strict = false) "Set to true to ensure monotonicity of the cubic hermite"; output Real yInt "Interpolated ordinate value"; end smoothInterpolation;