org.apache.commons.math3.analysis.polynomials

## Class PolynomialsUtils

- java.lang.Object
- - org.apache.commons.math3.analysis.polynomials.PolynomialsUtils

-     public class PolynomialsUtils
      extends Object

  A collection of static methods that operate on or return polynomials.
  Since:
    2.0
  Version:
    $Id: PolynomialsUtils.java 1364387 2012-07-22 18:14:11Z tn $

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `private static class` | `PolynomialsUtils.JacobiKey` Inner class for Jacobi polynomials keys.
    `private static interface` | `PolynomialsUtils.RecurrenceCoefficientsGenerator` Interface for recurrence coefficients generation.

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `private static List<BigFraction>` | `CHEBYSHEV_COEFFICIENTS` Coefficients for Chebyshev polynomials.
    `private static List<BigFraction>` | `HERMITE_COEFFICIENTS` Coefficients for Hermite polynomials.
    `private static Map<PolynomialsUtils.JacobiKey,List<BigFraction>>` | `JACOBI_COEFFICIENTS` Coefficients for Jacobi polynomials.
    `private static List<BigFraction>` | `LAGUERRE_COEFFICIENTS` Coefficients for Laguerre polynomials.
    `private static List<BigFraction>` | `LEGENDRE_COEFFICIENTS` Coefficients for Legendre polynomials.

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `private` | `PolynomialsUtils()` Private constructor, to prevent instantiation.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `private static PolynomialFunction` | `buildPolynomial(int degree, List<BigFraction> coefficients, PolynomialsUtils.RecurrenceCoefficientsGenerator generator)` Get the coefficients array for a given degree.
    `private static void` | `computeUpToDegree(int degree, int maxDegree, PolynomialsUtils.RecurrenceCoefficientsGenerator generator, List<BigFraction> coefficients)` Compute polynomial coefficients up to a given degree.
    `static PolynomialFunction` | `createChebyshevPolynomial(int degree)` Create a Chebyshev polynomial of the first kind.
    `static PolynomialFunction` | `createHermitePolynomial(int degree)` Create a Hermite polynomial.
    `static PolynomialFunction` | `createJacobiPolynomial(int degree, int v, int w)` Create a Jacobi polynomial.
    `static PolynomialFunction` | `createLaguerrePolynomial(int degree)` Create a Laguerre polynomial.
    `static PolynomialFunction` | `createLegendrePolynomial(int degree)` Create a Legendre polynomial.
    `static double[]` | `shift(double[] coefficients, double shift)` Compute the coefficients of the polynomial `Ps(x)` whose values at point `x` will be the same as the those from the original polynomial `P(x)` when computed at `x + shift`.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### CHEBYSHEV_COEFFICIENTS

          private static final List<BigFraction> CHEBYSHEV_COEFFICIENTS

      Coefficients for Chebyshev polynomials.

    - #### HERMITE_COEFFICIENTS

          private static final List<BigFraction> HERMITE_COEFFICIENTS

      Coefficients for Hermite polynomials.

    - #### LAGUERRE_COEFFICIENTS

          private static final List<BigFraction> LAGUERRE_COEFFICIENTS

      Coefficients for Laguerre polynomials.

    - #### LEGENDRE_COEFFICIENTS

          private static final List<BigFraction> LEGENDRE_COEFFICIENTS

      Coefficients for Legendre polynomials.

    - #### JACOBI_COEFFICIENTS

          private static final Map<PolynomialsUtils.JacobiKey,List<BigFraction>> JACOBI_COEFFICIENTS

      Coefficients for Jacobi polynomials.

  - ### Constructor Detail

    - #### PolynomialsUtils

          private PolynomialsUtils()

      Private constructor, to prevent instantiation.

  - ### Method Detail

    - #### createChebyshevPolynomial

          public static PolynomialFunction createChebyshevPolynomial(int degree)

      Create a Chebyshev polynomial of the first kind.

      Chebyshev polynomials of the first kind are orthogonal polynomials. They can be defined by the following recurrence relations:

            T0(X)   = 1
            T1(X)   = X
            Tk+1(X) = 2X Tk(X) - Tk-1(X)

      Parameters:
        `degree` - degree of the polynomial
      Returns:
        Chebyshev polynomial of specified degree

    - #### createHermitePolynomial

          public static PolynomialFunction createHermitePolynomial(int degree)

      Create a Hermite polynomial.

      Hermite polynomials are orthogonal polynomials. They can be defined by the following recurrence relations:

            H0(X)   = 1
            H1(X)   = 2X
            Hk+1(X) = 2X Hk(X) - 2k Hk-1(X)

      Parameters:
        `degree` - degree of the polynomial
      Returns:
        Hermite polynomial of specified degree

    - #### createLaguerrePolynomial

          public static PolynomialFunction createLaguerrePolynomial(int degree)

      Create a Laguerre polynomial.

      Laguerre polynomials are orthogonal polynomials. They can be defined by the following recurrence relations:

                  L0(X)   = 1
                  L1(X)   = 1 - X
            (k+1) Lk+1(X) = (2k + 1 - X) Lk(X) - k Lk-1(X)

      Parameters:
        `degree` - degree of the polynomial
      Returns:
        Laguerre polynomial of specified degree

    - #### createLegendrePolynomial

          public static PolynomialFunction createLegendrePolynomial(int degree)

      Create a Legendre polynomial.

      Legendre polynomials are orthogonal polynomials. They can be defined by the following recurrence relations:

                  P0(X)   = 1
                  P1(X)   = X
            (k+1) Pk+1(X) = (2k+1) X Pk(X) - k Pk-1(X)

      Parameters:
        `degree` - degree of the polynomial
      Returns:
        Legendre polynomial of specified degree

    - #### createJacobiPolynomial

          public static PolynomialFunction createJacobiPolynomial(int degree,
                                                  int v,
                                                  int w)

      Create a Jacobi polynomial.

      Jacobi polynomials are orthogonal polynomials. They can be defined by the following recurrence relations:

                  P0vw(X)   = 1
                  P-1vw(X)  = 0
            2k(k + v + w)(2k + v + w - 2) Pkvw(X) =
            (2k + v + w - 1)[(2k + v + w)(2k + v + w - 2) X + v2 - w2] Pk-1vw(X)
            - 2(k + v - 1)(k + w - 1)(2k + v + w) Pk-2vw(X)

      Parameters:
        `degree` - degree of the polynomial
        `v` - first exponent
        `w` - second exponent
      Returns:
        Jacobi polynomial of specified degree

    - #### shift

          public static double[] shift(double[] coefficients,
                       double shift)

      Compute the coefficients of the polynomial `Ps(x)` whose values at point `x` will be the same as the those from the original polynomial `P(x)` when computed at `x + shift`. Thus, if `P(x) = Σi ai xi`, then

              Ps(x)
              = Σi bi xi

              = Σi ai (x + shift)i

      Parameters:
        `coefficients` - Coefficients of the original polynomial.
        `shift` - Shift value.
      Returns:
        the coefficients `bi` of the shifted polynomial.

    - #### buildPolynomial

          private static PolynomialFunction buildPolynomial(int degree,
                                           List<BigFraction> coefficients,
                                           PolynomialsUtils.RecurrenceCoefficientsGenerator generator)

      Get the coefficients array for a given degree.
      Parameters:
        `degree` - degree of the polynomial
        `coefficients` - list where the computed coefficients are stored
        `generator` - recurrence coefficients generator
      Returns:
        coefficients array

    - #### computeUpToDegree

          private static void computeUpToDegree(int degree,
                               int maxDegree,
                               PolynomialsUtils.RecurrenceCoefficientsGenerator generator,
                               List<BigFraction> coefficients)

      Compute polynomial coefficients up to a given degree.
      Parameters:
        `degree` - maximal degree
        `maxDegree` - current maximal degree
        `generator` - recurrence coefficients generator
        `coefficients` - list where the computed coefficients should be appended

Copyright (c) 2003-2013 Apache Software Foundation