org.apache.commons.math3.analysis.polynomials
Class PolynomialsUtils

java.lang.Object
  extended by 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 1244107 2012-02-14 16:17:55Z erans $

Nested Class Summary
private static class PolynomialsUtils.JacobiKey
          Inner class for Jacobi polynomials keys.
private static interface PolynomialsUtils.RecurrenceCoefficientsGenerator
          Interface for recurrence coefficients generation.
 
Field Summary
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
private PolynomialsUtils()
          Private constructor, to prevent instantiation.
 
Method Summary
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