Class AlgorithmMultiExponentialFitting

  • All Implemented Interfaces:
    java.awt.event.ActionListener, java.awt.event.WindowListener, java.lang.Runnable, java.util.EventListener

    public class AlgorithmMultiExponentialFitting
    extends AlgorithmBase
    • Field Detail

      • nintmx

        private int nintmx
        This is a port of the Fortran program discrete.for version 2B (December, 1990) written by Stephen Provencher, PhD. The README.txt file has: DISCLAIMER: This software and its documentation are free and come "as is" with absolutely no guarantee and no support. Applications: Analysis of multi-exponential decay data. Running in hundreds of laboratories on a wide variety of computers. Methods: Fully automatic: no starting estimates needed for the number of exponentials or for their parameters; Modified Gauss-Newton least squares, with intensive searches from many starting points to find the global optimum; Methods in the references below are used to get starting estimates and to speed up the analysis: References: I) S.W. Provencher: A Fourier Method for the Analysis of Exponential Decay Curves, Biophysical Journal, Vol. 16, pp. 27-41 (1976). II)S.W. Provencher: An eigenfunction expansion method for the analysis of exponential decay curves. J. Chem. Phys. 64, pp. 2772-2777. (1976). III)S.W. Provencher & R.H. Vogel: Information loss with transform methods in system identification: A new set of transforms with high information content. Math. Biosci. 50, pp. 251-262 (1980). IV)S.W. Provencher & R.H. Vogel: Regularization techniques for inverse problems in molecular biology in: Numerical Treatment of Inverse Problems in Differential and Integral Equations, eds. P. Deuflhard & E. Hairer (Birkhauser, Boston, 1983), pp. 304-319. This program is used for the automatic analysis of multicomponent exponential decay for up to 9 components. Download the Users Manual and other essential documentation from http://S-provencher.com. The data is represented by y[k] = sum from j = 0 to nlambda of alpha[j]*exp(-lambda[j] * t[k]), k = 1, 2, ..., n, with nlambda varied from 1 to nlammx with nlammx
        • mlammx

          private int mlammx
        • convrg

          private double convrg
        • ngrid2

          private int[] ngrid2
        • minter

          private int minter
        • sigmap

          private double[] sigmap
        • precis

          private double precis
        • nlammx

          private int nlammx
        • iwt

          private int iwt
        • mtry

          private int mtry
        • regint

          private boolean regint
        • nobase

          private boolean nobase
        • nonneg

          private boolean nonneg
        • showDebug

          private boolean showDebug
        • pry

          private boolean pry
        • prprel

          private boolean prprel
        • prfinl

          private boolean prfinl
        • plotrs

          private boolean plotrs
        • repeat

          private boolean repeat
        • fatalProblem

          private boolean fatalProblem
        • n

          private int n
        • t

          private double[] t
        • nint

          private int nint
        • tstart

          private double[] tstart
        • tend

          private double[] tend
        • nt

          private int[] nt
        • y

          private double[] y
        • sqrtw

          private double[] sqrtw
        • ylyfit

          private double[] ylyfit
        • e

          private double[][] e
        • gse

          private double[][] gse
        • deltat

          private double[] deltat
        • evarCalled

          private int evarCalled
        • varfCalled

          private int varfCalled
        • trbase

          private double[] trbase
        • gf

          private double[][] gf
        • dgfl

          private double[][] dgfl
        • dgridf

          private double dgridf
        • gfstl

          private double gfstl
        • fhat

          private double[] fhat
        • varmin

          private double varmin
        • sumwty

          private double sumwty
        • sumwt

          private double sumwt
        • zero

          private double[] zero
        • dgride

          private double dgride
        • gestl

          private double gestl
        • var

          private double[] var
        • palpha

          private double[] palpha
        • plam

          private double[] plam
        • se

          private double[][] se
        • plmtry

          private double[] plmtry
        • deltap

          private double[] deltap
        • dfcapl

          private double[][] dfcapl
        • sfde

          private double[] sfde
        • adub

          private double[][] adub
        • ddse

          private double[][] ddse
        • dtoler

          private double[] dtoler
        • f

          private double[][] f
        • df

          private double[][] df
        • delta

          private double delta
        • fhatmx

          private double fhatmx
        • lamst

          private double[] lamst
        • lamf

          private double[][][] lamf
        • lamnmx

          private double[][] lamnmx
        • sigyy

          private double sigyy
        • enphi

          private double enphi
        • pcerr

          private double[] pcerr
        • vgrid2

          private double[] vgrid2
        • jgeadd

          private int jgeadd
        • nbinom

          private int[][] nbinom
        • nvgrid

          private int[] nvgrid
        • nperg2

          private int[] nperg2
        • mdima

          private int mdima
        • ibase

          private int ibase
        • iwtsgn

          private int iwtsgn
        • nf

          private int nf
        • iter

          private int iter
        • jlamp1

          private int jlamp1
        • nftry

          private int[] nftry
        • failed

          private boolean failed
        • wted

          private boolean wted
        • ffail

          private boolean[][] ffail
        • pivalp

          private boolean[] pivalp
        • params

          private double[] params
        • chiSquared

          private double chiSquared
        • status

          private int status
        • Constructor Detail

          • AlgorithmMultiExponentialFitting

            public AlgorithmMultiExponentialFitting​(int nlammx,
                                                    int iwt,
                                                    int mtry,
                                                    boolean regint,
                                                    boolean nobase,
                                                    boolean nonneg,
                                                    boolean showDebug,
                                                    boolean pry,
                                                    boolean prprel,
                                                    boolean prfinl,
                                                    boolean plotrs,
                                                    boolean repeat,
                                                    int n,
                                                    double[] t,
                                                    int nint,
                                                    double[] tstart,
                                                    double[] tend,
                                                    int[] nt,
                                                    double[] y,
                                                    double[] sqrtw)
          • AlgorithmMultiExponentialFitting

            public AlgorithmMultiExponentialFitting()
        • Method Detail

          • selfTest

            public void selfTest()
          • finalize

            public void finalize()
            Prepares this class for destruction.
            Overrides:
            finalize in class AlgorithmBase
          • getParameters

            public double[] getParameters()
          • getChiSquared

            public double getChiSquared()
          • getStatus

            public int getStatus()
          • weight

            private void weight​(boolean finalVar)
          • lstsqr

            private void lstsqr​(double[] lamst,
                                int jlam,
                                boolean rawdat,
                                int n,
                                int nlin,
                                int routineCalled,
                                int itype,
                                boolean split,
                                boolean inter,
                                boolean prlsq)
          • pivot

            private void pivot​(double[][] adub,
                               int mdima,
                               int np,
                               boolean onlyin,
                               boolean invert,
                               boolean constr,
                               double pmin,
                               double pmax,
                               double[] p,
                               double[] dtoler,
                               double[] deltap,
                               boolean[] allpiv,
                               double[] qg,
                               boolean[] piv,
                               int jlam,
                               double[] qmax,
                               int[] ierror)
          • pivot1

            private void pivot1​(double[][] adub,
                                int mdima,
                                int npp,
                                int lpiv)
          • evar

            private void evar​(double[] q,
                              int jlam,
                              double[] var,
                              boolean invert,
                              boolean[] allpiv,
                              double[] ylydum,
                              int nlin,
                              double varg,
                              int ntry,
                              boolean inter,
                              int[] ierror)
          • varf

            private void varf​(double[] q,
                              int jlam,
                              double[] var,
                              boolean invert,
                              boolean[] allpiv,
                              double[] ylyfit,
                              int nlin,
                              double varg,
                              int ntry,
                              boolean intdum,
                              int[] ierror)
          • anlerr

            private void anlerr​(int jlam,
                                int nlin,
                                int itype,
                                boolean inter,
                                boolean prlsq)
          • etheor

            private void etheor​(double plambd,
                                boolean invert,
                                boolean wted,
                                double[] se,
                                double[] dse,
                                double[] ddse,
                                double[] sye,
                                boolean doe,
                                boolean doye)
          • expsma

            private double expsma​(double s)
          • fanlyz

            private void fanlyz()
          • yanlyz

            private void yanlyz()
          • fisher

            private double fisher​(double fs,
                                  int nu1,
                                  int nu2)
          • residu

            private void residu​(int jlam,
                                boolean plot,
                                double[] puncor,
                                double[][][] asave)