Class BicubicInterpolatingFunction
- java.lang.Object
-
- org.apache.commons.math3.analysis.interpolation.BicubicInterpolatingFunction
-
- All Implemented Interfaces:
BivariateFunction
public class BicubicInterpolatingFunction extends java.lang.Object implements BivariateFunction
Function that implements the bicubic spline interpolation.- Since:
- 3.4
-
-
Field Summary
Fields Modifier and Type Field Description private static double[][]
AINV
Matrix to compute the spline coefficients from the function values and function derivatives valuesprivate static int
NUM_COEFF
Number of coefficients.private BicubicFunction[][]
splines
Set of cubic splines patching the whole data gridprivate double[]
xval
Samples x-coordinatesprivate double[]
yval
Samples y-coordinates
-
Constructor Summary
Constructors Constructor Description BicubicInterpolatingFunction(double[] x, double[] y, double[][] f, double[][] dFdX, double[][] dFdY, double[][] d2FdXdY)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private double[]
computeSplineCoefficients(double[] beta)
Compute the spline coefficients from the list of function values and function partial derivatives values at the four corners of a grid element.boolean
isValidPoint(double x, double y)
Indicates whether a point is within the interpolation range.private int
searchIndex(double c, double[] val)
double
value(double x, double y)
Compute the value for the function.
-
-
-
Field Detail
-
NUM_COEFF
private static final int NUM_COEFF
Number of coefficients.- See Also:
- Constant Field Values
-
AINV
private static final double[][] AINV
Matrix to compute the spline coefficients from the function values and function derivatives values
-
xval
private final double[] xval
Samples x-coordinates
-
yval
private final double[] yval
Samples y-coordinates
-
splines
private final BicubicFunction[][] splines
Set of cubic splines patching the whole data grid
-
-
Constructor Detail
-
BicubicInterpolatingFunction
public BicubicInterpolatingFunction(double[] x, double[] y, double[][] f, double[][] dFdX, double[][] dFdY, double[][] d2FdXdY) throws DimensionMismatchException, NoDataException, NonMonotonicSequenceException
- Parameters:
x
- Sample values of the x-coordinate, in increasing order.y
- Sample values of the y-coordinate, in increasing order.f
- Values of the function on every grid point.dFdX
- Values of the partial derivative of function with respect to x on every grid point.dFdY
- Values of the partial derivative of function with respect to y on every grid point.d2FdXdY
- Values of the cross partial derivative of function on every grid point.- Throws:
DimensionMismatchException
- if the various arrays do not contain the expected number of elements.NonMonotonicSequenceException
- ifx
ory
are not strictly increasing.NoDataException
- if any of the arrays has zero length.
-
-
Method Detail
-
value
public double value(double x, double y) throws OutOfRangeException
Compute the value for the function.- Specified by:
value
in interfaceBivariateFunction
- Parameters:
x
- Abscissa for which the function value should be computed.y
- Ordinate for which the function value should be computed.- Returns:
- the value.
- Throws:
OutOfRangeException
-
isValidPoint
public boolean isValidPoint(double x, double y)
Indicates whether a point is within the interpolation range.- Parameters:
x
- First coordinate.y
- Second coordinate.- Returns:
true
if (x, y) is a valid point.
-
searchIndex
private int searchIndex(double c, double[] val)
- Parameters:
c
- Coordinate.val
- Coordinate samples.- Returns:
- the index in
val
corresponding to the interval containingc
. - Throws:
OutOfRangeException
- ifc
is out of the range defined by the boundary values ofval
.
-
computeSplineCoefficients
private double[] computeSplineCoefficients(double[] beta)
Compute the spline coefficients from the list of function values and function partial derivatives values at the four corners of a grid element. They must be specified in the following order:- f(0,0)
- f(1,0)
- f(0,1)
- f(1,1)
- fx(0,0)
- fx(1,0)
- fx(0,1)
- fx(1,1)
- fy(0,0)
- fy(1,0)
- fy(0,1)
- fy(1,1)
- fxy(0,0)
- fxy(1,0)
- fxy(0,1)
- fxy(1,1)
- Parameters:
beta
- List of function values and function partial derivatives values.- Returns:
- the spline coefficients.
-
-