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

java.lang.Object
  extended by org.apache.commons.math3.analysis.polynomials.TrigonometricPolynomialFunction
All Implemented Interfaces:
Serializable, DifferentiableIntegrableUnivariateFunction, UnivariateDifferentiableFunction, IntegrableUnivariateFunction, UnivariateFunction

public final class TrigonometricPolynomialFunction
extends Object
implements DifferentiableIntegrableUnivariateFunction, Serializable

This class is the Trigonometric Polynomial Function class. Given a constant a0, and two arrays of same lengths a and b, the corresponding trigonometric polynomial function p is given by the following expression :
p(x) = a0 + sum( a(k) * cos(k*x) + b(k) * sin(k*x) , k, 1, n )
where a(k) (resp . b(k)) is the kth coefficient of the array a (resp. b).

Since:
1.1
Version:
$Id: TrigonometricPolynomialFunction.java 16755 2016-10-07 15:47:40Z bignon $
Author:
Rami Houdroge
See Also:
Serialized Form
Concurrency :
immutable

Constructor Summary
TrigonometricPolynomialFunction(double coefA0, double[] coefA, double[] coefB)
          Constructor for the TrigonometricPolynomialFunction.
 
Method Summary
 TrigonometricPolynomialFunction add(TrigonometricPolynomialFunction newPol)
          Add two TrigonometricPolynomialFunction
 UnivariateFunction derivative()
          Compute and return derivative of polynomial
 UnivariateFunction derivative(int n)
          Compute and return nth derivative of polynomial
protected static TrigonometricPolynomialFunction elementaryMultiplication(TrigonometricPolynomialFunction poly, ElementaryMultiplicationTypes.ElementaryType type, int j)
          Multiply TrigonometricPolynomialFunction by an ElementaryMultiplicationTypes
protected static double evaluate(TrigonometricPolynomialFunction poly, double x)
          Compute value at x of trigonometric polynomial P :
P(x) = a0 + a(k) * cos(kx) + b(k) * sin(kx)
 double[] getA()
          Get array of cosine coefficients
 double getA0()
          Get value of order zero coefficient
 double[] getB()
          Get array of sine coefficients
 int getDegree()
          Get polynomial degree
 TrigonometricPolynomialFunction multiply(TrigonometricPolynomialFunction polynomial)
          Multiply this polynomial by another polynomial
 TrigonometricPolynomialFunction negate()
          Negate polynomial
 TrigonometricPolynomialFunction polynomialDerivative()
          Returns the first order derivative as a TrigonometricPolynomialFunction.
 TrigonometricPolynomialFunction polynomialDerivative(int order)
          Returns the nth order derivative as a TrigonometricPolynomialFunction.
protected static TrigonometricPolynomialFunction polynomialDerivative(TrigonometricPolynomialFunction poly)
          Returns the derivative as a TrigonometricPolynomialFunction.
 TrigonometricPolynomialPrimitive polynomialPrimitive(double constant)
          Get primitive of TrigonometricPolynomialFunction
protected static TrigonometricPolynomialPrimitive polynomialPrimitive(TrigonometricPolynomialFunction poly, double constant)
          Get primitive of TrigonometricPolynomialFunction
 UnivariateFunction primitive()
          Get primitive of TrigonometricPolynomialFunction
 TrigonometricPolynomialFunction scalarAdd(double scalar)
          Add a scalar
 TrigonometricPolynomialFunction scalarDivide(double scalar)
          Divide by a scalar
 TrigonometricPolynomialFunction scalarMultiply(double scalar)
          Multiply by a scalar
 TrigonometricPolynomialFunction scalarSubtract(double scalar)
          Subtract a scalar
 TrigonometricPolynomialFunction subtract(TrigonometricPolynomialFunction polynomial)
          Subtract a polynomial to the current polynomial :
 String toString()
          Get String representation of polynomial
 DerivativeStructure value(DerivativeStructure t)
          Simple mathematical function.
 double value(double x)
          Return value at x of polynomial
 double value(int n, double x)
          Return value at x of nth order derivative
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

TrigonometricPolynomialFunction

public TrigonometricPolynomialFunction(double coefA0,
                                       double[] coefA,
                                       double[] coefB)
Constructor for the TrigonometricPolynomialFunction. This constructor creates the following trigonometric polynomial :
P(X) = a0 + a(k) * cos(kX) + b(k) * sin(kX)

Parameters:
coefA0 - a0 coefficient
coefA - cosine coefficients array
coefB - sine coefficients array
Throws:
MathIllegalArgumentException - if arrays a and b are of different lengths
Method Detail

add

public TrigonometricPolynomialFunction add(TrigonometricPolynomialFunction newPol)
Add two TrigonometricPolynomialFunction

Parameters:
newPol - polynomial to add to current
Returns:
resulting TrigonometricPolynomialFunction

derivative

public UnivariateFunction derivative()
Compute and return derivative of polynomial

Returns:
derivative of polynomial function

derivative

public UnivariateFunction derivative(int n)
Compute and return nth derivative of polynomial

Parameters:
n - order of derivative
Returns:
nth derivative of polynomial function

elementaryMultiplication

protected static TrigonometricPolynomialFunction elementaryMultiplication(TrigonometricPolynomialFunction poly,
                                                                          ElementaryMultiplicationTypes.ElementaryType type,
                                                                          int j)
Multiply TrigonometricPolynomialFunction by an ElementaryMultiplicationTypes

Parameters:
poly - polynomial
type - of elementary polynomial
j - order of elementary polynomial
Returns:
resulting polynomial

evaluate

protected static double evaluate(TrigonometricPolynomialFunction poly,
                                 double x)
Compute value at x of trigonometric polynomial P :
P(x) = a0 + a(k) * cos(kx) + b(k) * sin(kx)

Parameters:
poly - polynomial to evaluate
x - abscissa of desired value
Returns:
value of poly at x

getA

public double[] getA()
Get array of cosine coefficients

Returns:
a

getA0

public double getA0()
Get value of order zero coefficient

Returns:
a0

getB

public double[] getB()
Get array of sine coefficients

Returns:
b

getDegree

public int getDegree()
Get polynomial degree

Returns:
n

multiply

public TrigonometricPolynomialFunction multiply(TrigonometricPolynomialFunction polynomial)
Multiply this polynomial by another polynomial

Parameters:
polynomial - polynomial to multiply instance by
Returns:
multiplied polynomials in a new instance

negate

public TrigonometricPolynomialFunction negate()
Negate polynomial

Returns:
negated polynomial

polynomialDerivative

public TrigonometricPolynomialFunction polynomialDerivative()
Returns the first order derivative as a TrigonometricPolynomialFunction.

Returns:
the derivative polynomial.

polynomialDerivative

public TrigonometricPolynomialFunction polynomialDerivative(int order)
Returns the nth order derivative as a TrigonometricPolynomialFunction.

Parameters:
order - order of derivative (must be > 0)
Returns:
the derivative polynomial.

polynomialDerivative

protected static TrigonometricPolynomialFunction polynomialDerivative(TrigonometricPolynomialFunction poly)
Returns the derivative as a TrigonometricPolynomialFunction.

Parameters:
poly - polynomial to derivate
Returns:
the derivative polynomial.

polynomialPrimitive

public TrigonometricPolynomialPrimitive polynomialPrimitive(double constant)
Get primitive of TrigonometricPolynomialFunction

Parameters:
constant - integration constant
Returns:
the primitive as a TrigonometricPolynomialPrimitive

polynomialPrimitive

protected static TrigonometricPolynomialPrimitive polynomialPrimitive(TrigonometricPolynomialFunction poly,
                                                                      double constant)
Get primitive of TrigonometricPolynomialFunction

Parameters:
poly - polynomial for primitive computation
constant - integration constant
Returns:
the primitive as a TrigonometricPolynomialPrimitive

primitive

public UnivariateFunction primitive()
Get primitive of TrigonometricPolynomialFunction

Specified by:
primitive in interface IntegrableUnivariateFunction
Returns:
the primitive as a UnivariateFunction

scalarAdd

public TrigonometricPolynomialFunction scalarAdd(double scalar)
Add a scalar

Parameters:
scalar - to add
Returns:
new TrigonometricPolynomialFunction

scalarMultiply

public TrigonometricPolynomialFunction scalarMultiply(double scalar)
Multiply by a scalar

Parameters:
scalar - to multiply polynomial by
Returns:
polynomial multiplied by scalar

scalarSubtract

public TrigonometricPolynomialFunction scalarSubtract(double scalar)
Subtract a scalar

Parameters:
scalar - to subtract
Returns:
new TrigonometricPolynomialFunction

scalarDivide

public TrigonometricPolynomialFunction scalarDivide(double scalar)
Divide by a scalar

Parameters:
scalar - to divide polynomial by
Returns:
polynomial divide by scalar

subtract

public TrigonometricPolynomialFunction subtract(TrigonometricPolynomialFunction polynomial)
Subtract a polynomial to the current polynomial :

Parameters:
polynomial - to perform subtraction
Returns:
this - polynomial

toString

public String toString()
Get String representation of polynomial

Overrides:
toString in class Object
Returns:
string

value

public double value(double x)
Return value at x of polynomial

Specified by:
value in interface UnivariateFunction
Parameters:
x - desired abscissa
Returns:
value of polynomial function

value

public double value(int n,
                    double x)
Return value at x of nth order derivative

Parameters:
n - order of derivative
x - desired abscissa
Returns:
value of derivative

value

public DerivativeStructure value(DerivativeStructure t)
Simple mathematical function.

UnivariateDifferentiableFunction classes compute both the value and the first derivative of the function.

Specified by:
value in interface UnivariateDifferentiableFunction
Parameters:
t - function input value
Returns:
function result


Copyright © 2016 CNES. All Rights Reserved.