All Packages Class Hierarchy This Package Previous Next Index
Interface jam.operator.hasGradient
 public interface interface hasGradient
 extends JamObject, Operator
A hasGradient is an operator in which the gradient is
implemented.
We define the gradient as the adjoint of the derivative.
Thus, for a linear operator L, getGradientAt(Vector x), returns adj(L)
In the case that the operator is a functional, i.e. the range is the set
of real numbers, people are used to thinking of the gradient as a vector.
A vector, v, can be thought of as an operator from real numbers to
the vector space of v. The operator acts by simply multiplying the
scalar by the vector. The adjoint of this is the operator which takes a
vector and returns the dot product of that vector and v. This is the form
which is, technically speaking, the derivative of the functional.
This is in keeping with the fact that the derivative of an operator has
the same domain and range as the operator itself. Therefore, the
derivative of a functional is actually a linear functional (i.e. a row
vector) instead of a vector (i.e. a column vector) as is usually taught
in Calculus classes.

getGradientAt(Vector)

getGradientAt
public abstract LinearOperator getGradientAt(Vector x)
 Parameters:
 x  the location at which the gradient is taken (irrelevant for linear operators)
 Returns:
 the operator's gradient at x
All Packages Class Hierarchy This Package Previous Next Index