com.lgc.wsh.opt
Class ScalarSolver

java.lang.Object
  extended by com.lgc.wsh.opt.ScalarSolver

public class ScalarSolver
extends java.lang.Object

Search a single variable for a value that minimizes a function


Nested Class Summary
static interface ScalarSolver.Function
          Implement a function of one variable to be minimized
 
Constructor Summary
ScalarSolver(ScalarSolver.Function function)
          Constructor
 
Method Summary
 double solve(double scalarMin, double scalarMax, double okError, double okFraction, int numberIterations, Monitor monitor)
          Minimize a function of scalar and return the optimum value.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ScalarSolver

public ScalarSolver(ScalarSolver.Function function)
Constructor

Parameters:
function - Objective function to be minimized.
Method Detail

solve

public double solve(double scalarMin,
                    double scalarMax,
                    double okError,
                    double okFraction,
                    int numberIterations,
                    Monitor monitor)
Minimize a function of scalar and return the optimum value.

Parameters:
scalarMin - The minimum value allowed for the argument scalar.
scalarMax - The maximum value allowed for the argument scalar.
okError - The unknown error in scalar should be less than this fraction of the range: dscalar/(scalarMax-scalarMin) <= okError, where dscalar is the error bound on the returned value of scalar.
okFraction - The error in scalar should be less than this fraction of the minimum possible range for scalar: dscalar <= okFraction*(scalar-scalarMin), where dscalar is the error bound on the returned value of scalar.
numberIterations - The maximum number of iterations if greater than 6. The optimization performs at least 6 iterations -- the minimum necessary for a genuinely parabolic function. I recommend at least 20.
monitor - For reporting progress. Ignored if null.
Returns:
The optimum value minimizing the function.