|
JScience v3.3 | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectjavolution.context.RealtimeObject
org.jscience.mathematics.functions.Function<X,Y>
public abstract class Function<X,Y>
This abstract class represents a mapping between two sets such that there is a unique element in the second set assigned to each element in the first set.
Functions can be discrete or continuous and multivariate functions
(functions with multiple variables) are also supported as illustrated
below:
// Defines local variables.
Variable.Local<Rational> varX = new Variable.Local<Rational>("x");
Variable.Local<Rational> varY = new Variable.Local<Rational>("y");
// f(x, y) = x² + x·y + 1;
Polynomial<Rational> x = Polynomial.valueOf(Rational.ONE, varX);
Polynomial<Rational> y = Polynomial.valueOf(Rational.ONE, varY);
Polynomial<Rational> fx_y = x.pow(2).plus(x.times(y)).plus(Rational.ONE);
System.out.println("f(x,y) = " + fx_y);
// Evaluates f(1,0)
System.out.println("f(1,0) = " + fx_y.evaluate(Rational.ONE, Rational.ZERO));
// Calculates df(x,y)/dx
System.out.println("df(x,y)/dx = " + fx_y.differentiate(varX));
> f(x,y) = [1/1]x^2 + [1/1]xy + [1/1]
> f(1,0) = 2/1
> df(x,y)/dx = [2/1]x + [1/1]y
Functions are often given by formula (e.g. f(x) = x²-x+1,
f(x,y)= x·y) but the general function instance might tabulate
the values, solve an equation, etc.
| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from class javolution.context.RealtimeObject |
|---|
RealtimeObject.Factory<T extends RealtimeObject> |
| Nested classes/interfaces inherited from interface javolution.context.Realtime |
|---|
Realtime.ObjectSpace |
| Constructor Summary | |
|---|---|
protected |
Function()
Default constructor. |
| Method Summary | ||
|---|---|---|
|
compose(Function<Z,X> that)
Returns the composition of this function with the one specified. |
|
Function<X,Y> |
differentiate(Variable<X> v)
Returns the first derivative of this function with respect to the specified variable. |
|
Function<X,Y> |
divide(Function<X,Y> that)
Returns the quotient of this function with the one specified. |
|
boolean |
equals(java.lang.Object obj)
Indicates if this function is equals to the specified object. |
|
abstract Y |
evaluate()
Evaluates this function using its variables current
values. |
|
Y |
evaluate(X... args)
Evaluates this function for the specified arguments values (convenience method). |
|
Y |
evaluate(X arg)
Evaluates this function for the specified argument value (convenience method). |
|
Variable<X> |
getVariable(java.lang.String symbol)
Retrieves the variable from this function having the specified symbol (convenience method). |
|
abstract java.util.List<Variable<X>> |
getVariables()
Returns a lexically ordered list of the variables (or arguments) for this function (empty list for constant functions). |
|
int |
hashCode()
Returns the hash code for this function (consistent with equals(Object). |
|
Function<X,Y> |
integrate(Variable<X> v)
Returns an integral of this function with respect to the specified variable. |
|
Function<X,Y> |
minus(Function<X,Y> that)
Returns the difference of this function with the one specified. |
|
boolean |
move(Realtime.ObjectSpace os)
Moves this real-time object to the specified object space. |
|
Function<X,Y> |
plus(Function<X,Y> that)
Returns the sum of this function with the one specified. |
|
Function<X,Y> |
pow(int n)
Returns this function raised at the specified exponent. |
|
Function<X,Y> |
times(Function<X,Y> that)
Returns the product of this function with the one specified. |
|
Text |
toText()
Returns the textual representation of this real-time object (equivalent to toString except that the returned value
can be allocated from the local context space). |
|
| Methods inherited from class javolution.context.RealtimeObject |
|---|
export, isLocal, moveHeap, preserve, toString, unpreserve |
| Methods inherited from class java.lang.Object |
|---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
|---|
protected Function()
| Method Detail |
|---|
public abstract java.util.List<Variable<X>> getVariables()
public abstract Y evaluate()
variables current
values.
FunctionException - if any of this function's variable is not set.public boolean equals(java.lang.Object obj)
equals in class java.lang.Objectobj - the object to be compared with.
true if this function and the specified argument
represent the same function; false otherwise.public int hashCode()
equals(Object).
hashCode in class java.lang.Objectpublic Text toText()
toString except that the returned value
can be allocated from the local context space).
toText in interface RealtimetoText in class RealtimeObjectpublic boolean move(Realtime.ObjectSpace os)
move in interface Realtimemove in class RealtimeObjectos - the object space to move this real-time object to.
true if the move has to be propagated to
external real-time references; false otherwise.public final Variable<X> getVariable(java.lang.String symbol)
null
if none.public final Y evaluate(X arg)
LocalContext and
can safely be called upon functions with global
variables.
arg - the single variable value used for the evaluation.
FunctionException - if getVariables().size() != 1public final Y evaluate(X... args)
LocalContext and
can safely be called upon functions with global
variables.
args - the variables values used for the evaluation.
java.lang.IllegalArgumentException - if args.length != getVariables().size())public <Z> Function<Z,Y> compose(Function<Z,X> that)
that - the function for which the return value is passed as
argument to this function.
(this o that)
FunctionException - if this function is not monovariate.public Function<X,Y> differentiate(Variable<X> v)
v - the variable for which the derivative is calculated.
d[this]/dv
FunctionException - if the derivative is undefined.public Function<X,Y> integrate(Variable<X> v)
v - the variable for which the integral is calculated.
S[this·dv]public Function<X,Y> plus(Function<X,Y> that)
that - the function to be added.
this + that.public Function<X,Y> minus(Function<X,Y> that)
that - the function to be subtracted.
this - that.public Function<X,Y> times(Function<X,Y> that)
that - the function multiplier.
this · that.public Function<X,Y> divide(Function<X,Y> that)
that - the function divisor.
this / that.public Function<X,Y> pow(int n)
n - the exponent.
thisn
java.lang.IllegalArgumentException - if n <= 0
|
JScience v3.3 | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||