Class PolynomialFunction

java.lang.Object
org.apache.commons.math.analysis.polynomials.PolynomialFunction
All Implemented Interfaces:
Serializable, DifferentiableUnivariateRealFunction, UnivariateRealFunction

public class PolynomialFunction extends Object implements DifferentiableUnivariateRealFunction, Serializable
Immutable representation of a real polynomial function with real coefficients.

Horner's Method is used to evaluate the function.

Version:
$Revision: 1042376 $ $Date: 2010-12-05 16:54:55 +0100 (dim. 05 déc. 2010) $
See Also:
  • Constructor Details

    • PolynomialFunction

      public PolynomialFunction(double[] c)
      Construct a polynomial with the given coefficients. The first element of the coefficients array is the constant term. Higher degree coefficients follow in sequence. The degree of the resulting polynomial is the index of the last non-null element of the array, or 0 if all elements are null.

      The constructor makes a copy of the input array and assigns the copy to the coefficients property.

      Parameters:
      c - polynomial coefficients
      Throws:
      NullPointerException - if c is null
      NoDataException - if c is empty
  • Method Details

    • value

      public double value(double x)
      Compute the value of the function for the given argument.

      The value returned is
      coefficients[n] * x^n + ... + coefficients[1] * x + coefficients[0]

      Specified by:
      value in interface UnivariateRealFunction
      Parameters:
      x - the argument for which the function value should be computed
      Returns:
      the value of the polynomial at the given point
      See Also:
    • degree

      public int degree()
      Returns the degree of the polynomial
      Returns:
      the degree of the polynomial
    • getCoefficients

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

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

      Returns:
      a fresh copy of the coefficients array
    • evaluate

      protected static double evaluate(double[] coefficients, double argument)
      Uses Horner's Method to evaluate the polynomial with the given coefficients at the argument.
      Parameters:
      coefficients - the coefficients of the polynomial to evaluate
      argument - the input value
      Returns:
      the value of the polynomial
      Throws:
      NoDataException - if coefficients is empty
      NullPointerException - if coefficients is null
    • add

      Add a polynomial to the instance.
      Parameters:
      p - polynomial to add
      Returns:
      a new polynomial which is the sum of the instance and p
    • subtract

      Subtract a polynomial from the instance.
      Parameters:
      p - polynomial to subtract
      Returns:
      a new polynomial which is the difference the instance minus p
    • negate

      public PolynomialFunction negate()
      Negate the instance.
      Returns:
      a new polynomial
    • multiply

      Multiply the instance by a polynomial.
      Parameters:
      p - polynomial to multiply by
      Returns:
      a new polynomial
    • differentiate

      protected static double[] differentiate(double[] coefficients)
      Returns the coefficients of the derivative of the polynomial with the given coefficients.
      Parameters:
      coefficients - the coefficients of the polynomial to differentiate
      Returns:
      the coefficients of the derivative or null if coefficients has length 1.
      Throws:
      NoDataException - if coefficients is empty
      NullPointerException - if coefficients is null
    • polynomialDerivative

      public PolynomialFunction polynomialDerivative()
      Returns the derivative as a PolynomialRealFunction
      Returns:
      the derivative polynomial
    • derivative

      public UnivariateRealFunction derivative()
      Returns the derivative as a UnivariateRealFunction
      Specified by:
      derivative in interface DifferentiableUnivariateRealFunction
      Returns:
      the derivative function
    • toString

      public String toString()
      Returns a string representation of the polynomial.

      The representation is user oriented. Terms are displayed lowest degrees first. The multiplications signs, coefficients equals to one and null terms are not displayed (except if the polynomial is 0, in which case the 0 constant term is displayed). Addition of terms with negative coefficients are replaced by subtraction of terms with positive coefficients except for the first displayed term (i.e. we display -3 for a constant negative polynomial, but 1 - 3 x + x^2 if the negative coefficient is not the first one displayed).

      Overrides:
      toString in class Object
      Returns:
      a string representation of the polynomial
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object