|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object edu.jhu.bme.smile.commons.optimize.LevenbergMarquardt
public class LevenbergMarquardt
This optimizer uses the Levenberg Marquardt method in order to find the minimum of a function. You can choose an initial starting point to start the optimization from. Code adapted from http://www.mathworks.com/matlabcentral/fx_files/22778/1/content/optimization/seeMe.htm
Constructor Summary | |
---|---|
LevenbergMarquardt()
Default constructor for LM. |
|
LevenbergMarquardt(int maxIter)
Constructor to let you set the maximum number of iterations. |
Method Summary | |
---|---|
double[] |
getExtrema()
Gets the extrema that was found. |
int |
getIterations()
Gets the number of iterations done. |
java.util.ArrayList<double[][]> |
getLog()
Gets the logged data |
void |
initialize(OptimizableNDContinuousDifferentiable function)
Initializes the optimizer with a differentiable ND function. |
void |
initialize(OptimizableNDContinuousDifferentiable function,
double[] init)
Initializes the optimizer with a differentiable ND function. |
void |
logData(boolean turnOn,
int maxSteps)
Turns on logging for each iteration of the optimization. |
boolean |
optimize(boolean findMinima)
Optimizes the function. |
void |
setGamma(double lamInit,
double lamMax)
Sets the initial and maximum lambda values. |
java.lang.String |
statusMessage()
Gets the status message. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public LevenbergMarquardt()
public LevenbergMarquardt(int maxIter)
maxIter
- maximum number of iterationsMethod Detail |
---|
public void logData(boolean turnOn, int maxSteps)
turnOn
- true if logging, false if notmaxSteps
- maximum number of steps to logpublic java.util.ArrayList<double[][]> getLog()
public double[] getExtrema()
getExtrema
in interface OptimizerNDContinuousDifferentiable
public int getIterations()
getIterations
in interface OptimizerNDContinuousDifferentiable
public void setGamma(double lamInit, double lamMax)
lamInit
- initial lambda valuelamMax
- maximum lambda valuepublic void initialize(OptimizableNDContinuousDifferentiable function, double[] init)
function
- function to minimizeinit
- starting pointpublic void initialize(OptimizableNDContinuousDifferentiable function)
initialize
in interface OptimizerNDContinuousDifferentiable
function
- function to optimizepublic boolean optimize(boolean findMinima)
optimize
in interface OptimizerNDContinuousDifferentiable
findMinima
- true if minimizing, false if maximizing
public java.lang.String statusMessage()
statusMessage
in interface OptimizerNDContinuousDifferentiable
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |