
public class LevenbergMarquardtMethod extends Object
| Modifier and Type | Field and Description | 
|---|---|
private double[][] | 
alpha
Working space for alphas 
 | 
private double[] | 
beta  | 
private double | 
chisq
Chi-Squared information for parameters 
 | 
private double[][] | 
covmat
Working space for covariance matrix 
 | 
private double[] | 
deltaparams  | 
private boolean[] | 
dofit
Which parameters to fit 
 | 
FittingFunction | 
func
Function to fit to 
 | 
private double | 
lambda
Lambda (refinement step size) 
 | 
int | 
maxruns
Maximum number of iterations in run() 
 | 
int | 
maxsmall
Maximum number of small improvements (stopping condition) 
 | 
private int | 
numfit
Number of parameters to fit 
 | 
private int | 
numparams
Number of parameters 
 | 
private double[] | 
params
Parameters to use in fitting 
 | 
private double[] | 
paramstry
More working buffers 
 | 
private double[] | 
s  | 
double | 
small
"Small value" condition for stopping 
 | 
private double[] | 
x
Data to fit the function to 
 | 
private double[] | 
y  | 
| Constructor and Description | 
|---|
LevenbergMarquardtMethod(FittingFunction func,
                        double[] params,
                        boolean[] dofit,
                        double[] x,
                        double[] y,
                        double[] s)
Function fitting using Levenberg-Marquardt Method. 
 | 
| Modifier and Type | Method and Description | 
|---|---|
double | 
getChiSq()
Get current ChiSquared (squared error sum) 
 | 
double[][] | 
getCovmat()
Get the final covariance matrix. 
 | 
double[] | 
getParams()
Get current parameters. 
 | 
void | 
iterate()
Perform an iteration of the approximation loop. 
 | 
void | 
run()
Iterate until convergence, at most 100 times. 
 | 
private double | 
simulateParameters(double[] curparams)
Compute new chisquared error
 
 This function also modifies the alpha and beta matrixes! 
 | 
public FittingFunction func
private double[] x
private double[] y
private double[] s
private int numparams
private double[] params
private double chisq
private int numfit
private boolean[] dofit
private double[][] covmat
private double[][] alpha
private double lambda
private double[] paramstry
private double[] beta
private double[] deltaparams
public int maxruns
public int maxsmall
public double small
public LevenbergMarquardtMethod(FittingFunction func, double[] params, boolean[] dofit, double[] x, double[] y, double[] s)
func - Function to fit tox - Measurement pointsy - Actual function valuess - Confidence / Variance in measurement dataparams - Initial parametersdofit - Flags on which parameters to optimizeprivate double simulateParameters(double[] curparams)
curparams - Parameters to use in computation.public void iterate()
public double[][] getCovmat()
public double[] getParams()
public double getChiSq()
public void run()