motris.main
Interface MinimizationProblem

All Known Implementing Classes:
EdgeElementAdaption, EMContourMinimizer, OFAdaption, OFEAdaption

public interface MinimizationProblem

Minimization Problem for Kalman Filter. Notation as in Eq. 4.41 of Wachter97


Method Summary
 double calculateResidual(DoubleMatrix apCovariance, DoubleVector Gradient, DoubleMatrix[] Hessian)
          Compute Residual, Gradient and Hessian Matrix of the Problem to be minimzed at the current position.
 JSci.maths.DoubleSquareMatrix getPredictionMeasureCovariance(int matrixDimension)
           
 double getSecondaryResidual()
          compare these secondary residualsafter each scale and only accept the changes of that scale if the secondary residual decreased
 State getState()
           
 boolean isDisplacementBigEnough(DoubleVector stateVectorDelta)
           
 boolean setScale(int scale)
          Set Scale.
 

Method Detail

calculateResidual

public double calculateResidual(DoubleMatrix apCovariance,
                                DoubleVector Gradient,
                                DoubleMatrix[] Hessian)
Compute Residual, Gradient and Hessian Matrix of the Problem to be minimzed at the current position. In addition to the function arguments, the State x at which Lambda is to be evaluated (current position) has to be supplied as well. This is not included in the class signature because this supply is done by getState().setFromStateVector().

Parameters:
apCovariance - a-priori-State-Covariance P (input)
Gradient - Gradient of Lambda (result)
Hessian - 1-Dimension Vector with Hesse Matrix of Lambda (result). This needs to be an array s.t. java can _create_ a new Variable instead of just assigning values. For the EM Contour algorithm, the matrix can grow quite big so assigning is too slow.
Returns:
residual Lambda(x).

getState

public State getState()

setScale

public boolean setScale(int scale)
Set Scale. The scale is starting at 0 and increased as long as this function returns true.

Parameters:
scale -

getSecondaryResidual

public double getSecondaryResidual()
compare these secondary residualsafter each scale and only accept the changes of that scale if the secondary residual decreased


isDisplacementBigEnough

public boolean isDisplacementBigEnough(DoubleVector stateVectorDelta)

getPredictionMeasureCovariance

public JSci.maths.DoubleSquareMatrix getPredictionMeasureCovariance(int matrixDimension)