|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.commons.math3.analysis.polynomials.PolynomialFunctionLagrangeForm
public class PolynomialFunctionLagrangeForm
Implements the representation of a real polynomial function in Lagrange Form. For reference, see Introduction to Numerical Analysis, ISBN 038795452X, chapter 2.
The approximated function should be smooth enough for Lagrange polynomial to work well. Otherwise, consider using splines instead.
Constructor Summary | |
---|---|
PolynomialFunctionLagrangeForm(double[] x,
double[] y)
Construct a Lagrange polynomial with the given abscissas and function values. |
Method Summary | |
---|---|
protected void |
computeCoefficients()
Calculate the coefficients of Lagrange polynomial from the interpolation data. |
int |
degree()
Returns the degree of the polynomial. |
static double |
evaluate(double[] x,
double[] y,
double z)
Evaluate the Lagrange polynomial using Neville's Algorithm. |
double[] |
getCoefficients()
Returns a copy of the coefficients array. |
double[] |
getInterpolatingPoints()
Returns a copy of the interpolating points array. |
double[] |
getInterpolatingValues()
Returns a copy of the interpolating values array. |
double |
value(double z)
Calculate the function value at the given point. |
static boolean |
verifyInterpolationArray(double[] x,
double[] y,
boolean abort)
Check that the interpolation arrays are valid. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public PolynomialFunctionLagrangeForm(double[] x, double[] y)
The constructor makes copy of the input arrays and assigns them.
x
- interpolating pointsy
- function values at interpolating points
DimensionMismatchException
- if the array lengths are different.
NumberIsTooSmallException
- if the number of points is less than 2.
NonMonotonicSequenceException
- if two abscissae have the same value.Method Detail |
---|
public double value(double z)
value
in interface UnivariateFunction
z
- Point at which the function value is to be computed.
DimensionMismatchException
- if x
and y
have
different lengths.
NonMonotonicSequenceException
- if x
is not sorted in strictly increasing order.
NumberIsTooSmallException
- if the size of x
is less
than 2.public int degree()
public double[] getInterpolatingPoints()
Changes made to the returned copy will not affect the polynomial.
public double[] getInterpolatingValues()
Changes made to the returned copy will not affect the polynomial.
public double[] getCoefficients()
Changes made to the returned copy will not affect the polynomial.
Note that coefficients computation can be ill-conditioned. Use with caution and only when it is necessary.
public static double evaluate(double[] x, double[] y, double z)
x
- Interpolating points array.y
- Interpolating values array.z
- Point at which the function value is to be computed.
DimensionMismatchException
- if x
and y
have
different lengths.
NonMonotonicSequenceException
- if x
is not sorted in strictly increasing order.
NumberIsTooSmallException
- if the size of x
is less
than 2.protected void computeCoefficients()
public static boolean verifyInterpolationArray(double[] x, double[] y, boolean abort)
x
- Interpolating points array.y
- Interpolating values array.abort
- Whether to throw an exception if x
is not sorted.
false
if the x
is not sorted in increasing order,
true
otherwise.
DimensionMismatchException
- if the array lengths are different.
NumberIsTooSmallException
- if the number of points is less than 2.
NonMonotonicSequenceException
- if x
is not sorted in strictly increasing order and abort
is true
.evaluate(double[], double[], double)
,
computeCoefficients()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |