public class InterpolatingPolynomial extends AbstractEvaluator
See: Wikipedia - Polynomial interpolation and Wikipedia - Newton Polynomial
Constructor and Description |
---|
InterpolatingPolynomial() |
Modifier and Type | Method and Description |
---|---|
protected static IExpr[] |
computeDividedDifference(IExpr[] x,
IExpr[] y)
Return a copy of the divided difference array.
|
IExpr |
evaluate(IAST ast,
EvalEngine engine)
Symbolic evaluation of a function.
|
void |
setUp(ISymbol symbol)
Evaluate built-in rules and define Attributes for a function.
|
numericEval
protected static IExpr[] computeDividedDifference(IExpr[] x, IExpr[] y)
The divided difference array is defined recursively by
f[x0] = f(x0) f[x0,x1,...,xk] = (f[x1,...,xk] - f[x0,...,x[k-1]]) / (xk - x0)
The computational complexity is O(N^2).
x
- Interpolating points array.y
- Interpolating values array.org.apache.commons.math4.exception.DimensionMismatchException
- if the array lengths are different.org.apache.commons.math4.exception.NumberIsTooSmallException
- if the number of points is less than 2.org.apache.commons.math4.exception.NonMonotonicSequenceException
- if x
is not sorted in strictly increasing order.public IExpr evaluate(IAST ast, EvalEngine engine)
AbstractEvaluator
ast.get(0)
(or alternatively ast.head()
) contains the
head (i.e. the function symbol) of this abstract syntax tree (AST). ast.arg1()
to ast.get(n)
the ast
contains the first to n-th argument of the
function (alternatively you get the first to fifth argument with the methods arg1()
, arg2()
,...
arg5()
).Validate
class to check the number or types of arguments in the evaluate
method.null
value without throwing an exception!evaluate
in interface IFunctionEvaluator
evaluate
in class AbstractEvaluator
ast
- the abstract syntax tree (AST) which should be evaluatedengine
- the users current evaluation enginenull
, if evaluation isn't possibleValidate
,
IExpr.head()
,
IAST.arg1()
,
IAST.arg2()
,
IAST.arg3()
public void setUp(ISymbol symbol)
AbstractEvaluator
setUp
in interface IEvaluator
setUp
in class AbstractEvaluator
symbol
- the symbol which should be set up