public class Polynomial extends Object
Modifier and Type  Field and Description 

double[] 
coeffs 
Constructor and Description 

Polynomial(double[] coeffs)
Create a new polynomial with the given coefficients.

Polynomial(int order)
Create a new polynomial of the requested order with all coefficients set to 0.

Modifier and Type  Method and Description 

void 
copyCoeffs(Polynomial other) 
static double[] 
fitPolynomial(double[] data,
int order)
Fit a polynomial of the given order to the given data.

static double[] 
generatePolynomialValues(double[] coeffs,
int numSamples,
double a,
double b)
For a polynomial with the given coefficients, compute
numSamples values, equally spaced in the interval [a,
b[. 
double[] 
generatePolynomialValues(int numSamples,
double a,
double b)
For a polynomial with the given coefficients, compute
numSamples values, equally spaced in the interval [a,
b[. 
int 
getOrder() 
double 
getValueAt(double x)
For a polynomial with the given coefficients, compute the value at the given position.

static double 
getValueAt(double[] coeffs,
double x)
For a polynomial with the given coefficients, compute the value at the given position.

static double[] 
mean(double[][] p)
Compute the mean polynomial from the given polynomials, by building a polynomial of the averaged coefficients.

static float[] 
mean(float[][] p)
Compute the mean polynomial from the given polynomials, by building a polynomial of the averaged coefficients.

static Polynomial 
mean(Polynomial[] p)
Compute the mean polynomial from the given polynomials, by building a polynomial of the averaged coefficients.

static double 
polynomialDistance(double[] coeffs1,
double[] coeffs2)
Compute the integrated distance between two polynomials of same order.

static double 
polynomialDistance(float[] coeffs1,
float[] coeffs2)
Compute the integrated distance between two polynomials of same order.

double 
polynomialDistance(Polynomial other)
Compute the integrated distance between two polynomials of same order.

static double 
polynomialPearsonProductMomentCorr(double[] coeffs1,
double[] coeffs2)
Compute one minus the Pearson product moment correlation between two polynomials of same order.

static double 
polynomialSquaredDistance(double[] coeffs1,
double[] coeffs2)
Compute the integral of the squared difference between two polynomials of same order.

static double 
polynomialSquaredDistance(float[] coeffs1,
float[] coeffs2)
Compute the integral of the squared difference between two polynomials of same order.

double 
polynomialSquaredDistance(Polynomial other)
Compute the integral of the squared difference between two polynomials of same order.

static double 
variance(double[][] p,
double[] mean)
For the given collection of polynomials, for which a mean polynomial has already been computed using
mean(double[][]) , compute a variance as follows. 
static double 
variance(float[][] p,
float[] mean)
For the given collection of polynomials, for which a mean polynomial has already been computed using
mean(float[][]) , compute a variance as follows. 
static double 
variance(Polynomial[] p,
Polynomial mean)
For the given collection of polynomials, for which a mean polynomial has already been computed using
mean(Polynomial[]) , compute a variance as follows. 
public Polynomial(int order)
order
 the polynomial order.public Polynomial(double[] coeffs)
coeffs
 the polynomial coefficients. The code assumes that the polynomial is
a_order t^order + a_(order1) t^(order1) + ... + a_1 t + a_0
, and will interpret coeffs as
a_order, a_(order1), ..., a_1, a_0
, where order
is coeffs.length1
.public int getOrder()
public void copyCoeffs(Polynomial other)
public double[] generatePolynomialValues(int numSamples, double a, double b)
numSamples
values, equally spaced in the interval [a,
b[.numSamples
 num samplesa
 lower bound (inclusive)b
 upper bound (exclusive)NullPointerException
 if coeffs is nullIllegalArgumentException
 if coeffs has length 0IllegalArgumentException
 if numSamples is ≤ 0IllegalArgumentException
 if a is not less than b.public double getValueAt(double x)
x
 the position where to compute the valueNullPointerException
 if coeffs is nullIllegalArgumentException
 if coeffs has length 0public double polynomialDistance(Polynomial other)
other
 polynomial with the same order as this polynomial.public double polynomialSquaredDistance(Polynomial other)
This implements the algebraic solution proposed by Maxima from the following command:
expand(integrate((sum(a[i]*x**i, i, 0, order))**2, x, 0, 1));
, with order varied from 0 to 4. Increasing order
by 1 adds (order+1) summands.
other
 polynomial with the same order as this polynomial.public static double[] fitPolynomial(double[] data, int order)
data
 the data points, assumed to be in the interval [0, 1[order
 the order of the polynomial. Must be nonnegative.a_order t^order + a_(order1) t^(order1) + ... + a_1 t + a_0
, then the array returned contains
a_order, a_(order1), ..., a_1, a_0
. throws NullPointerException if data is null throws
IllegalArgumentException if data.length < order or if order < 0.public static double[] generatePolynomialValues(double[] coeffs, int numSamples, double a, double b)
numSamples
values, equally spaced in the interval [a,
b[.coeffs
 the polynomial coefficients. The code assumes that the polynomial is
a_order t^order + a_(order1) t^(order1) + ... + a_1 t + a_0
, and will interpret coeffs as
a_order, a_(order1), ..., a_1, a_0
, where order
is coeffs.length1
.numSamples
 num samplesa
 lower bound (inclusive)b
 upper bound (exclusive)NullPointerException
 if coeffs is nullIllegalArgumentException
 if coeffs has length 0IllegalArgumentException
 if numSamples is ≤ 0IllegalArgumentException
 if a is not less than b.public static double getValueAt(double[] coeffs, double x)
coeffs
 the polynomial coefficients. The code assumes that the polynomial is
a_order t^order + a_(order1) t^(order1) + ... + a_1 t + a_0
, and will interpret coeffs as
a_order, a_(order1), ..., a_1, a_0
, where order
is coeffs.length1
.x
 the position where to compute the valueNullPointerException
 if coeffs is nullIllegalArgumentException
 if coeffs has length 0public static Polynomial mean(Polynomial[] p)
p
 the polynomials from which to compute the mean. they must all have the same orderpublic static double[] mean(double[][] p)
p
 the polynomials from which to compute the mean. they must all have the same orderpublic static float[] mean(float[][] p)
p
 the polynomials from which to compute the mean. they must all have the same orderpublic static double variance(Polynomial[] p, Polynomial mean)
mean(Polynomial[])
, compute a variance as follows.
V = 1/(p1) * sum i from 0 to p1 of integral from 0 to 1 of (p[i]mean)^2
; in other words, the sum of the
squared distances (@see{#polynomialSquaredDistance()}) between each polynomial in p and the mean, divided by (p1).
p
 pmean
 meanpublic static double variance(double[][] p, double[] mean)
mean(double[][])
, compute a variance as follows.
V = 1/(p1) * sum i from 0 to p1 of integral from 0 to 1 of (p[i]mean)^2
; in other words, the sum of the
squared distances (@see{#polynomialSquaredDistance()}) between each polynomial in p and the mean, divided by (p1).
p
 pmean
 meanpublic static double variance(float[][] p, float[] mean)
mean(float[][])
, compute a variance as follows.
V = 1/(p1) * sum i from 0 to p1 of integral from 0 to 1 of (p[i]mean)^2
; in other words, the sum of the
squared distances (@see{#polynomialSquaredDistance()}) between each polynomial in p and the mean, divided by (p1).
p
 pmean
 meanpublic static double polynomialDistance(double[] coeffs1, double[] coeffs2)
coeffs1
 polynomial coefficients, [a_order, a_(order1), ..., a_1, a_0]coeffs2
 polynomial coefficients, [a_order, a_(order1), ..., a_1, a_0]public static double polynomialDistance(float[] coeffs1, float[] coeffs2)
coeffs1
 polynomial coefficients, [a_order, a_(order1), ..., a_1, a_0]coeffs2
 polynomial coefficients, [a_order, a_(order1), ..., a_1, a_0]public static double polynomialSquaredDistance(double[] coeffs1, double[] coeffs2)
This implements the algebraic solution proposed by Maxima from the following command:
expand(integrate((sum(a[i]*x**i, i, 0, order))**2, x, 0, 1));
, with order varied from 0 to 4. Increasing order
by 1 adds (order+1) summands.
coeffs1
 polynomial coefficients, [a_order, a_(order1), ..., a_1, a_0]coeffs2
 polynomial coefficients, [a_order, a_(order1), ..., a_1, a_0]public static double polynomialSquaredDistance(float[] coeffs1, float[] coeffs2)
This implements the algebraic solution proposed by Maxima from the following command:
expand(integrate((sum(a[i]*x**i, i, 0, order))**2, x, 0, 1));
, with order varied from 0 to 4. Increasing order
by 1 adds (order+1) summands.
coeffs1
 polynomial coefficients, [a_order, a_(order1), ..., a_1, a_0]coeffs2
 polynomial coefficients, [a_order, a_(order1), ..., a_1, a_0]public static double polynomialPearsonProductMomentCorr(double[] coeffs1, double[] coeffs2)
Equation: D = 1  corr(F1 * F2)
coeffs1
 polynomial coefficients that are not nullcoeffs2
 polynomial coefficients that are not null coeffs1, coeffs2 are expected to be coefficients of same order
polynomialsNullPointerException
 if received polynomial coeffs nullIllegalArgumentException
 if the length of coeffs are not equalCopyright © 2000–2018 DFKI GmbH. All rights reserved.