Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.commons.math.analysis.interpolation
Class BicubicSplineInterpolatingFunction

    java.lang.Object
      org.apache.commons.math.analysis.interpolation.BicubicSplineInterpolatingFunction

All Implemented Interfaces:
  BivariateRealFunction

    public class BicubicSplineInterpolatingFunction

extends Object
implements BivariateRealFunction

Function that implements the bicubic spline interpolation.

Since:
  2.1
Version:
  $Revision$ $Date$

Field Summary
`private static double[][]` | `AINV` Matrix to compute the spline coefficients from the function values and function derivatives values
`private BivariateRealFunction[][][]` | `partialDerivatives` Partial derivatives The value of the first index determines the kind of derivatives: 0 = first partial derivatives wrt x 1 = first partial derivatives wrt y 2 = second partial derivatives wrt x 3 = second partial derivatives wrt y 4 = cross partial derivatives
`private BicubicSplineFunction[][]` | `splines` Set of cubic splines patching the whole data grid
`private double[]` | `xval` Samples x-coordinates
`private double[]` | `yval` Samples y-coordinates

Constructor Summary
`BicubicSplineInterpolatingFunction(double[] x, double[] y, double[][] f, double[][] dFdX, double[][] dFdY, double[][] d2FdXdY)`

Method Summary
`private void` | `computePartialDerivatives()` Compute all partial derivatives.
`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.
`private double` | `partialDerivative(int which, double x, double y)`
`double` | `partialDerivativeX(double x, double y)`
`double` | `partialDerivativeXX(double x, double y)`
`double` | `partialDerivativeXY(double x, double y)`
`double` | `partialDerivativeY(double x, double y)`
`double` | `partialDerivativeYY(double x, double y)`
`private int` | `searchIndex(double c, double[] val)`
`double` | `value(double x, double y)` Compute the value for the function.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### 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 BicubicSplineFunction[][] splines

  Set of cubic splines patching the whole data grid

### partialDerivatives

    private BivariateRealFunction[][][] partialDerivatives

  Partial derivatives The value of the first index determines the kind of derivatives: 0 = first partial derivatives wrt x 1 = first partial derivatives wrt y 2 = second partial derivatives wrt x 3 = second partial derivatives wrt y 4 = cross partial derivatives

Constructor Detail

### BicubicSplineInterpolatingFunction

    public BicubicSplineInterpolatingFunction(double[] x,
                                              double[] y,
                                              double[][] f,
                                              double[][] dFdX,
                                              double[][] dFdY,
                                              double[][] d2FdXdY)
                                       throws DimensionMismatchException

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.
  `NonMonotonousSequenceException` - if `x` or `y` are not strictly increasing.
  `NoDataException` - if any of the arrays has zero length.

Method Detail

### value

    public double value(double x,
                        double y)

  Compute the value for the function.

  Specified by:
    `value` in interface `BivariateRealFunction`
  Parameters:
    `x` - Abscissa for which the function value should be computed.
    `y` - Ordinate for which the function value should be computed.
  Returns:
    the value.

### partialDerivativeX

    public double partialDerivativeX(double x,
                                     double y)

  Parameters:
    `x` - x-coordinate.
    `y` - y-coordinate.
  Returns:
    the value at point (x, y) of the first partial derivative with respect to x.
  Since:
    2.2

### partialDerivativeY

    public double partialDerivativeY(double x,
                                     double y)

  Parameters:
    `x` - x-coordinate.
    `y` - y-coordinate.
  Returns:
    the value at point (x, y) of the first partial derivative with respect to y.
  Since:
    2.2

### partialDerivativeXX

    public double partialDerivativeXX(double x,
                                      double y)

  Parameters:
    `x` - x-coordinate.
    `y` - y-coordinate.
  Returns:
    the value at point (x, y) of the second partial derivative with respect to x.
  Since:
    2.2

### partialDerivativeYY

    public double partialDerivativeYY(double x,
                                      double y)

  Parameters:
    `x` - x-coordinate.
    `y` - y-coordinate.
  Returns:
    the value at point (x, y) of the second partial derivative with respect to y.
  Since:
    2.2

### partialDerivativeXY

    public double partialDerivativeXY(double x,
                                      double y)

  Parameters:
    `x` - x-coordinate.
    `y` - y-coordinate.
  Returns:
    the value at point (x, y) of the second partial cross-derivative.
  Since:
    2.2

### partialDerivative

    private double partialDerivative(int which,
                                     double x,
                                     double y)

  Parameters:
    `which` - First index in `partialDerivatives`.
    `x` - x-coordinate.
    `y` - y-coordinate.
  Returns:
    the value at point (x, y) of the selected partial derivative.
  Throws:
    `FunctionEvaluationException`

### computePartialDerivatives

    private void computePartialDerivatives()

  Compute all partial derivatives.

### searchIndex

    private int searchIndex(double c,
                            double[] val)

  Parameters:
    `c` - Coordinate.
    `val` - Coordinate samples.
  Returns:
    the index in `val` corresponding to the interval containing `c`, or `-1` if `c` is out of the range defined by the end values of `val`.

### 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)
  where the subscripts indicate the partial derivative with respect to the corresponding variable(s).

  Parameters:
    `beta` - List of function values and function partial derivatives values.
  Returns:
    the spline coefficients.

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright (c) 2003-2013 Apache Software Foundation