Package gov.nih.mipav.model.algorithms
Class FitLorentz
- java.lang.Object
-
- gov.nih.mipav.model.algorithms.NLConstrainedEngine
-
- gov.nih.mipav.model.algorithms.NLFittedFunction
-
- gov.nih.mipav.model.algorithms.FitLorentz
-
public class FitLorentz extends NLFittedFunction
FitLorentz -fits an array of points to a lorentz distribution, thresholding techniques come from ViewJFrameGraph, no need to implement here- Version:
- 1.0
- Author:
- senseneyj
- See Also:
NLConstrainedEngine
-
-
Field Summary
Fields Modifier and Type Field Description private double
amp
Amplitude parameterprivate int
dataEnd
Location in xSeries where Gaussian data endsprivate int
dataStart
Location in xSeries where Gaussian data startsprivate double
gamma
half width at half maximumprivate int
iters
Iterations performedprivate double
xMedian
Statistical median-
Fields inherited from class gov.nih.mipav.model.algorithms.NLFittedFunction
chisq, EPSILON, MAX_ITR, MIN_ITR, xSeries, yDataFitted, ySeries
-
Fields inherited from class gov.nih.mipav.model.algorithms.NLConstrainedEngine
a, absoluteConvergence, analyticalJacobian, bl, bounds, bu, ctrlMat, dyda, gues, internalScaling, jacobian, maxIterations, nPts, outputMes, param, parameterConvergence, relativeConvergence, residuals, secondAllowed, stdv, tolerance
-
-
Constructor Summary
Constructors Constructor Description FitLorentz()
FitLorentz - test constructor, builds and test function.FitLorentz(int nPoints, double[] xData, double[] yData)
FitLorentz.FitLorentz(int nPoints, float[] xData, float[] yData)
Constructs new fit lorentz distribution.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private double[]
applyKernel()
Apply small Gaussian kernel to smooth out data.protected void
calculateChiSq()
Calculates chi squaredprotected void
calculateFittedY()
Calculates yDataFittedvoid
displayResults()
Display results of displaying lorentz fitting parameters.private double
dLdA(double x)
Partial derivative of Lorentz distribution with respect to A.private double
dLdgamma(double x)
Partial derivative of Lorentz distribution with respect to gamma.private double
dLdxMedian(double x)
Partial derivative of Lorentz distribution with respect to xMedian.void
driver()
Starts the analysis.private void
estimateInitial()
void
fitToFunction(double[] a, double[] residuals, double[][] covarMat)
fitToFunction communicates with 3 protected variables param, nPts, and ctrlMat ctrlMat is used as a wrapper for ctrl or lctrl.protected Jama.Matrix
generateJacobian()
Jacobian used for non-linear least squares fitting.protected Jama.Matrix
generateResiduals()
Calculates the residuals for a given function, not implemented since some functions might prefer to only use a subset of data points, or not use yDataFitted if working during an iterationprivate double
lorentz(double x)
Lorentz distribution evaluated at a point with given parameters-
Methods inherited from class gov.nih.mipav.model.algorithms.NLFittedFunction
getChisq, getFittedY, getMedian
-
Methods inherited from class gov.nih.mipav.model.algorithms.NLConstrainedEngine
dumpTestResults, fitToTestFunction, getChiSquared, getExitStatus, getIterations, getParameters, getResiduals, statusMessage
-
-
-
-
Field Detail
-
dataStart
private int dataStart
Location in xSeries where Gaussian data starts
-
dataEnd
private int dataEnd
Location in xSeries where Gaussian data ends
-
amp
private double amp
Amplitude parameter
-
xMedian
private double xMedian
Statistical median
-
gamma
private double gamma
half width at half maximum
-
iters
private int iters
Iterations performed
-
-
Constructor Detail
-
FitLorentz
public FitLorentz()
FitLorentz - test constructor, builds and test function.
-
FitLorentz
public FitLorentz(int nPoints, double[] xData, double[] yData)
FitLorentz.- Parameters:
nPoints
- number of points in the functionxData
- values along x-axisyData
- values along y-axis
-
FitLorentz
public FitLorentz(int nPoints, float[] xData, float[] yData)
Constructs new fit lorentz distribution.- Parameters:
nPoints
- Number of points in the functionxData
- values along x-axisyData
- values along y-axis
-
-
Method Detail
-
applyKernel
private double[] applyKernel()
Apply small Gaussian kernel to smooth out data. Note should not be called if doing data comparison.
-
estimateInitial
private void estimateInitial()
-
driver
public void driver()
Starts the analysis.- Overrides:
driver
in classNLConstrainedEngine
-
calculateChiSq
protected void calculateChiSq()
Description copied from class:NLFittedFunction
Calculates chi squared- Specified by:
calculateChiSq
in classNLFittedFunction
-
calculateFittedY
protected void calculateFittedY()
Description copied from class:NLFittedFunction
Calculates yDataFitted- Specified by:
calculateFittedY
in classNLFittedFunction
-
displayResults
public void displayResults()
Display results of displaying lorentz fitting parameters.- Specified by:
displayResults
in classNLFittedFunction
-
fitToFunction
public void fitToFunction(double[] a, double[] residuals, double[][] covarMat)
Description copied from class:NLConstrainedEngine
fitToFunction communicates with 3 protected variables param, nPts, and ctrlMat ctrlMat is used as a wrapper for ctrl or lctrl. Evaluates the residuals or the Jacobian at a certain a[]- Specified by:
fitToFunction
in classNLConstrainedEngine
- Parameters:
a
- DOCUMENT ME!residuals
- DOCUMENT ME!covarMat
- DOCUMENT ME!
-
lorentz
private double lorentz(double x)
Lorentz distribution evaluated at a point with given parameters
-
dLdA
private double dLdA(double x)
Partial derivative of Lorentz distribution with respect to A.
-
dLdxMedian
private double dLdxMedian(double x)
Partial derivative of Lorentz distribution with respect to xMedian.
-
dLdgamma
private double dLdgamma(double x)
Partial derivative of Lorentz distribution with respect to gamma.
-
generateJacobian
protected Jama.Matrix generateJacobian()
Jacobian used for non-linear least squares fitting.
-
generateResiduals
protected Jama.Matrix generateResiduals()
Description copied from class:NLFittedFunction
Calculates the residuals for a given function, not implemented since some functions might prefer to only use a subset of data points, or not use yDataFitted if working during an iteration- Specified by:
generateResiduals
in classNLFittedFunction
- Returns:
-
-