Class FieldPolynomialFunctionLagrangeForm<T extends CalculusFieldElement<T>>

java.lang.Object
org.hipparchus.analysis.polynomials.FieldPolynomialFunctionLagrangeForm<T>
Type Parameters:
T - type of the field elements
All Implemented Interfaces:
CalculusFieldUnivariateFunction<T>

public class FieldPolynomialFunctionLagrangeForm<T extends CalculusFieldElement<T>> extends Object implements CalculusFieldUnivariateFunction<T>
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.

Since:
4.0
See Also:
  • Constructor Details Link icon

  • Method Details Link icon

    • value Link icon

      public T value(T z)
      Calculate the function value at the given point.
      Specified by:
      value in interface CalculusFieldUnivariateFunction<T extends CalculusFieldElement<T>>
      Parameters:
      z - Point at which the function value is to be computed.
      Returns:
      the function value.
      Throws:
      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.
    • degree Link icon

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

      public T[] 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 Link icon

      public T[] 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 Link icon

      public T[] 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 Link icon

      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.