public class PolynomialFunctionLagrangeForm extends Object implements UnivariateFunction
The approximated function should be smooth enough for Lagrange polynomial to work well. Otherwise, consider using splines instead.
| Constructor and Description |
|---|
PolynomialFunctionLagrangeForm(double[] xIn,
double[] yIn)
Construct a Lagrange polynomial with the given abscissas and function
values.
|
PolynomialFunctionLagrangeForm(double[] x2,
double[][] ytab2)
Constructs a Lagrange polynomial with the given abscissas and an array of different function
values.
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
computeCoefficients()
Calculate the coefficients of Lagrange polynomial from the
interpolation data.
|
int |
degree()
Returns the degree of the polynomial.
|
static double |
evaluate(double[] x,
double[] y,
double z)
Evaluate the Lagrange polynomial using
Neville's Algorithm.
|
double[] |
getCoefficients()
Returns a copy of the coefficients array.
|
double[] |
getInterpolatingPoints()
Returns a copy of the interpolating points array.
|
double[][] |
getInterpolatingTabValues()
Returns a copy of the interpolating values matrix.
|
double[] |
getInterpolatingValues()
Returns a copy of the interpolating values array.
|
double |
value(double z)
Calculate the function value at the given point.
|
double |
valueIndex(int index,
double z)
Calculate the function value at the given point.
|
static boolean |
verifyInterpolationArray(double[] x,
double[] y,
boolean abort)
Check that the interpolation arrays are valid.
|
public PolynomialFunctionLagrangeForm(double[] xIn,
double[] yIn)
The constructor makes copy of the input arrays and assigns them.
xIn - interpolating pointsyIn - function values at interpolating pointsDimensionMismatchException - if the array lengths are different.NumberIsTooSmallException - if the number of points is less than 2.NonMonotonicSequenceException - if two abscissae have the same value.public PolynomialFunctionLagrangeForm(double[] x2,
double[][] ytab2)
The constructor makes copy of the input arrays and assigns them.
x2 - interpolating pointsytab2 - function values at interpolating pointsDimensionMismatchException - if the array lengths are different.NumberIsTooSmallException - if the number of points is less than 2.NonMonotonicSequenceException - if two abscissae have the same value.public double value(double z)
value in interface UnivariateFunctionz - Point at which the function value is to be computed.DimensionMismatchException - if x and y have
different lengths.NonMonotonicSequenceException - if x is not sorted in strictly increasing order.NumberIsTooSmallException - if the size of x is less
than 2.public double valueIndex(int index,
double z)
index - : the function to be interpolated, ie btw 0 and yTab.length-1z - Point at which the function value is to be computed.DimensionMismatchException - if x and y have
different lengths.NonMonotonicSequenceException - if x is not sorted in strictly increasing order.NumberIsTooSmallException - if the size of x is less
than 2.public int degree()
public double[] getInterpolatingPoints()
Changes made to the returned copy will not affect the polynomial.
public double[] getInterpolatingValues()
Changes made to the returned copy will not affect the polynomial.
public double[][] getInterpolatingTabValues()
Changes made to the returned copy will not affect the polynomial.
public double[] getCoefficients()
Changes made to the returned copy will not affect the polynomial.
Note that coefficients computation can be ill-conditioned. Use with caution and only when it is necessary.
public static double evaluate(double[] x,
double[] y,
double z)
x - Interpolating points array.y - Interpolating values array.z - Point at which the function value is to be computed.DimensionMismatchException - if x and y have
different lengths.NonMonotonicSequenceException - if x is not sorted in strictly increasing order.NumberIsTooSmallException - if the size of x is less
than 2.protected void computeCoefficients()
public static boolean verifyInterpolationArray(double[] x,
double[] y,
boolean abort)
x - Interpolating points array.y - Interpolating values array.abort - Whether to throw an exception if x is not sorted.false if the x is not sorted in increasing order, true otherwise.DimensionMismatchException - if the array lengths are different.NumberIsTooSmallException - if the number of points is less than 2.NonMonotonicSequenceException - if x is not sorted in strictly increasing order and abort is true.evaluate(double[], double[], double),
computeCoefficients()Copyright © 2024 CNES. All rights reserved.