public final class FirstOrderApproximation<N extends Number> extends Object
MultiaryFunction.Constant<N extends Number,F extends MultiaryFunction.Constant<N,?>>, MultiaryFunction.Convex<N extends Number>, MultiaryFunction.Linear<N extends Number>, MultiaryFunction.Quadratic<N extends Number>, MultiaryFunction.TwiceDifferentiable<N extends Number>
BasicFunction.Differentiable<N extends Number,F extends BasicFunction>, BasicFunction.Integratable<N extends Number,F extends BasicFunction>, BasicFunction.PlainUnary<T,R>
Constructor and Description |
---|
FirstOrderApproximation(MultiaryFunction.TwiceDifferentiable<N> function,
Access1D<N> point) |
Modifier and Type | Method and Description |
---|---|
int |
arity() |
boolean |
equals(Object obj) |
protected PhysicalStore.Factory<N,?> |
factory() |
MatrixStore<N> |
getGradient(Access1D<N> point)
The gradient of a scalar field is a vector field that points in the direction of the greatest rate
of increase of the scalar field, and whose magnitude is that rate of increase.
|
MatrixStore<N> |
getHessian(Access1D<N> point)
The Hessian matrix or Hessian is a square matrix of second-order partial derivatives of a function.
|
Access1D<N> |
getLinearFactors() |
int |
hashCode() |
N |
invoke(Access1D<N> arg) |
PhysicalStore<N> |
linear() |
protected PhysicalStore<N> |
shift(Access1D<?> arg) |
FirstOrderApproximation<N> |
toFirstOrderApproximation(Access1D<N> arg) |
SecondOrderApproximation<N> |
toSecondOrderApproximation(Access1D<N> arg) |
String |
toString() |
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
andThen
public FirstOrderApproximation(MultiaryFunction.TwiceDifferentiable<N> function, Access1D<N> point)
public int arity()
public boolean equals(Object obj)
public MatrixStore<N> getGradient(Access1D<N> point)
MultiaryFunction.TwiceDifferentiable
The gradient of a scalar field is a vector field that points in the direction of the greatest rate of increase of the scalar field, and whose magnitude is that rate of increase.
The Jacobian is a generalization of the gradient. Gradients are only defined on scalar-valued functions, but Jacobians are defined on vector- valued functions. When f is real-valued (i.e., f : Rn → R) the derivative Df(x) is a 1 × n matrix, i.e., it is a row vector. Its transpose is called the gradient of the function: ∇f(x) = Df(x)T , which is a (column) vector, i.e., in Rn. Its components are the partial derivatives of f:
The first-order approximation of f at a point x ∈ int dom f can be expressed as (the affine function of z) f(z) = f(x) + ∇f(x)T (z − x).
public MatrixStore<N> getHessian(Access1D<N> point)
MultiaryFunction.TwiceDifferentiable
The Hessian matrix or Hessian is a square matrix of second-order partial derivatives of a function. It describes the local curvature of a function of many variables. The Hessian is the Jacobian of the gradient.
The second-order approximation of f, at or near x, is the quadratic function of z defined by f(z) = f(x) + ∇f(x)T (z − x) + (1/2)(z − x)T ∇2f(x)(z − x)
public int hashCode()
public PhysicalStore<N> linear()
protected PhysicalStore.Factory<N,?> factory()
public Access1D<N> getLinearFactors()
getLinearFactors
in interface MultiaryFunction.TwiceDifferentiable<N extends Number>
public final FirstOrderApproximation<N> toFirstOrderApproximation(Access1D<N> arg)
toFirstOrderApproximation
in interface MultiaryFunction.TwiceDifferentiable<N extends Number>
public final SecondOrderApproximation<N> toSecondOrderApproximation(Access1D<N> arg)
toSecondOrderApproximation
in interface MultiaryFunction.TwiceDifferentiable<N extends Number>
protected PhysicalStore<N> shift(Access1D<?> arg)
Copyright © 2019 Optimatika. All rights reserved.