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[] x,
                              double[] y)Construct a Lagrange polynomial with the given abscissas and 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[] | getInterpolatingValues()Returns a copy of the interpolating values array. | 
| double | value(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[] x,
                                      double[] y)
                               throws MathIllegalArgumentException
The constructor makes copy of the input arrays and assigns them.
x - interpolating pointsy - function values at interpolating pointsMathIllegalArgumentException - if the array lengths are different.MathIllegalArgumentException - if the number of points is less than 2.MathIllegalArgumentException - 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.MathIllegalArgumentException - if x and y have
 different lengths.MathIllegalArgumentException - if x is not sorted in strictly increasing order.MathIllegalArgumentException - 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[] 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)
                       throws MathIllegalArgumentException
x - Interpolating points array.y - Interpolating values array.z - Point at which the function value is to be computed.MathIllegalArgumentException - if x and y have
 different lengths.MathIllegalArgumentException - if x is not sorted in strictly increasing order.MathIllegalArgumentException - if the size of x is less
 than 2.protected void computeCoefficients()
public static boolean verifyInterpolationArray(double[] x,
                                               double[] y,
                                               boolean abort)
                                        throws MathIllegalArgumentException
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.MathIllegalArgumentException - if the array lengths are different.MathIllegalArgumentException - if the number of points is less than 2.MathIllegalArgumentException - if x is not sorted in strictly increasing order and abort
 is true.evaluate(double[], double[], double), 
computeCoefficients()Copyright © 2016–2020 Hipparchus.org. All rights reserved.