Class PolynomialFunctionLagrangeForm

  • All Implemented Interfaces:
    UnivariateFunction

    public class PolynomialFunctionLagrangeForm
    extends Object
    implements UnivariateFunction
    Implements the representation of a real polynomial function in Lagrange Form. For reference, see Introduction to Numerical Analysis, ISBN 038795452X, chapter 2.

    The approximated function should be smooth enough for Lagrange polynomial to work well. Otherwise, consider using splines instead.

    • Constructor Detail

      • PolynomialFunctionLagrangeForm

        public PolynomialFunctionLagrangeForm​(double[] x,
                                              double[] y)
                                       throws MathIllegalArgumentException
        Construct a Lagrange polynomial with the given abscissas and function values. The order of interpolating points are not important.

        The constructor makes copy of the input arrays and assigns them.

        Parameters:
        x - interpolating points
        y - function values at interpolating points
        Throws:
        MathIllegalArgumentException - if the array lengths are different.
        MathIllegalArgumentException - if the number of points is less than 2.
        MathIllegalArgumentException - if two abscissae have the same value.
    • Method Detail

      • degree

        public int degree()
        Returns the degree of the polynomial.
        Returns:
        the degree of the polynomial
      • getInterpolatingPoints

        public double[] getInterpolatingPoints()
        Returns a copy of the interpolating points array.

        Changes made to the returned copy will not affect the polynomial.

        Returns:
        a fresh copy of the interpolating points array
      • getInterpolatingValues

        public double[] getInterpolatingValues()
        Returns a copy of the interpolating values array.

        Changes made to the returned copy will not affect the polynomial.

        Returns:
        a fresh copy of the interpolating values array
      • getCoefficients

        public double[] getCoefficients()
        Returns a copy of the coefficients array.

        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.

        Returns:
        a fresh copy of the coefficients array
      • computeCoefficients

        protected void computeCoefficients()
        Calculate the coefficients of Lagrange polynomial from the interpolation data. It takes O(n^2) time. Note that this computation can be ill-conditioned: Use with caution and only when it is necessary.