From: north@nosc.mil Subject: Re: Exponential analysis? Date: Thu, 28 Jan 1999 22:19:24 GMT Newsgroups: sci.math.num-analysis Keywords: Fitting a function to sums of exponentials In <1999Jan28.153224.4889@nosc.mil>, north@ writes: >I have Provencher's Fortran computer code called 'Discrete' which I'd be glad >to email to anyone. This code automagically determines the number of >decays and their time constants and strengths with no initial guessing required. Since I posted this I have had several requests for the code so I decided to do a web search and found Stephen Provencher's site from which you may download the code directly. To those whom I sent the code you should also get it from his site directly since it is the double precision version and mine is only single precision. His web address is http://www.mpibpc.gwdg.de/~sproven/ Mark ============================================================================== From: ajung@informatik.uni-rostock.de (Andreas Jung) Subject: Re: Exponential analysis? Date: 29 Jan 1999 12:56:24 +0100 Newsgroups: sci.math.num-analysis Vadim Tarassov (vadim@pci.unizh.ch) wrote: : Today I've visited a seminar where one guy has mentioned "exponential : analysis". He said that it is similar to Fuorier analysis (was he : talking about Lapalce trasnform?). In many problems of chemical physics : you need to find out how many exponential decays you've got in your : experimental signal. Once I have tried to make Laplace transformation : but I've got in troubles (don't really remember what is the sort of). : But anyway, this guy could manage to separate three (!!!!) exponential : decays and to obtain their rates, which seems to be really great. You could eventually use a variant of the "Adaptive Approximation" algorithm (by Prof. N.J. Lehmann) for this purpose. Assume there is given a function f together with sufficiently many derivatives f', f'', ... In order to get an approximation of the form f ~ c[1]*exp(b[1]*x) + ... + c[n]*exp(b[n]*x), (1) take a homogeneous differential equation with constant coefficients Ly = y^(n) + a[n-1]*y^(n-1) + ... + a[0]*y (2) where the coefficients a[0],...,a[n-1] are still open. The ansatz ||Lf|| -> min (3) with an appropriate norm ||*|| leads, if the norm is canonically given by a scalar product <*,*>, to a linear least squares problem for finding the "best" values of a[0],...,a[n-1]. So all you have to do to get a[0],...,a[n-1] is to calculate about n^2 scalar products (integrals, for instance) and to solve an n*n linear equation system for a[0],...,a[n-1]. Apply these values to (2), solve (2) and combine the solution base of (2) linearly so that f is best fit. If you know that f is a linear combination of, say, four exponentials, then choose n=4 and do the above procedure. (3) should result in a minimum of exactly or (due to rounding errors) nearly zero. If you don't know n, but you know that some such n _exists_, then do the above procedure for n=1,2,3,... until (3) results in min=0, or the matrix of the equation system behaves very well, or whatever criterion you consider useful. A main difficulty will perhaps arise if you have only a sample of f, but you know nothing about its derivatives. Well, you could try to approximate f by a (chebychev) polynomial p of very high degree, in the hope that the derivatives of f will be suffiently well described by p, and to minimize ||Lp|| rather than ||Lf|| in step (3). Since p is only a temporary item, its high degree wouldn't affect the "beauty" of the final result. Greetings, Andreas Jung. -- Andreas Gisbert Jung DL9AAI Tel:0381/498-3364 Fax:0381/498-3366 Theoretische Informatik mailto:ajung@informatik.uni-rostock.de Universitaet Rostock http://www.informatik.uni-rostock.de/~ajung/ PGP fingerprint = 8A 0B 05 CA EE AB 7B 01 D9 07 6A D0 84 38 BB 82 ============================================================================== From: Vadim Tarassov Subject: Re: Laplace transform Date: Tue, 16 Mar 1999 19:06:05 +0100 Newsgroups: sci.math.num-analysis Hello, I remember that I have asked already similar question. I have saved the answers, you can find them below. Regards, Vadim. _____From Peter Spellucci___________________ I assume, as you, that "exponential analysis" means fitting data by an "ansatz" a0+\sum_{i=1}^n \{ a_i exp(b_i x) \} for some reasonable n. n=3 is not that great. the main problem is finding reasonable initial values for the exponents. there seems to have been some progress . a paper of Joeran Peterson and Kenneth Holmstroem from the Applied Optimization and modeling group of Maelardalen university, sweden, shows also good results for some cases with n=4. (email: goran.petersson@mdh.se) then there remains a nonlinear least squares problem in separable form, for which a lot of algorithms already exist, so in netlib. the laplace transform which you mentioned is indeed numerically intricate (since it is a not well posed problem). nevertheless there also exist successful numerical approaches, some in netlib/toms (http://www.netlib.org). hope this helps peter ____From Andreas Jung _____________________________ You could eventually use a variant of the "Adaptive Approximation" algorithm (by Prof. N.J. Lehmann) for this purpose. [remainder of letter shown above was quoted. --djr] ____________From north@nosc.mil (Mark)______________ References: S.W. Provencher, J. Chem. Phys., 64, 2772 (1976) S.W. Provencher, Biophysical Journal, 16, 27 (1976) D.G. Gardner, G.Laush and W.W. Meinke, J. Chem. Phys., 31, 978 (1959) I have Provencher's Fortran computer code called 'Discrete' which I'd be glad to email to anyone. This code automagically determines the number of decays and their time constants and strengths with no initial guessing required. Mark In <1999Jan28.153224.4889@nosc.mil>, north@ writes: >I have Provencher's Fortran computer code called 'Discrete' which I'd be glad >to email to anyone. This code automagically determines the number of >decays and their time constants and strengths with no initial guessing required. Since I posted this I have had several requests for the code so I decided to do a web search and found Stephen Provencher's site from which you may download the code directly. To those whom I sent the code you should also get it from his site directly since it is the double precision version and mine is only single precision. His web address is http://www.mpibpc.gwdg.de/~sproven/ Mark Patrick Martin wrote: > Hi, > I'm looking for a numerical approximation of Laplace transform to detect > the number of components in a multiexponential function decay as well as > their parameters. > Thanks for your help > Regards