I would like to know if somebody can provide me a way to calculate
the inverse Laplace transform (numeric) of discrete set of
experimental point.
In fact, I know it can be done for the Fourier transform (with the
"ifft" function) and I would like to get the same but for inverse
Laplace transform.
Can anyone help with this, it would be of a GREAT help for me.
Thans in advance.
Lucien.
There is a small body of literature on this, much of it by Ward
Whitt and his co-authors. See
http://www.columbia.edu/~ww2040/B.html
for a list. If your experimental points are not regularly
spaced, you might need to interpolate so the inversion routine
can get regular samples. I don't think there's yet any
general-purpose Matlab code to do the inversion, unfortunately.
Andrew
--
Andrew Ross
Industrial and Systems Engineering (www.lehigh.edu/~inime/)
Lehigh University
Bethlehem, Pennsylvania, USA
remove all digits <=4 from my e-mail address to reply
Hello Andrew,
Thanks a lot for your help. I have downloaded two papers on Laplace
inversion methods.
I will check them to see if I can write a matlab code (though job for
me as I am not an expert of matlab at all !).
Anyway, I find it quite odd that it is not included in Matlab because
the definition of both Laplace and Fourier transforms are very
similar (if I am not wrong) ...
Thanks again !
If anyone else has got other informations/advices, please let me
know.
Lucien.
David Wilson.
% INVLAP numerical inverse Laplace transform
%
% f = invlap(F, t, alpha, tol, P1,P2,P3,P4,P5,P6,P7,P8,P9);
%
% F laplace-space function (string refering to an m-file),
% must have form F(s, P1,..,P9), where s is the Laplace parameter,
% and return column vector as result
% t column vector of times for which real-space function values are
% sought
% alpha largest pole of F (default zero)
% tol numerical tolerance of approaching pole (default 1e-9)
% P1-P9 optional parameters to be passed on to F
% f vector of real-space values f(t)
%
% example: identity function in Laplace space:
% function F = identity(s); % save these two lines
% F = 1./(s.^2); % ... as "identity.m"
% invlap('identity', [1;2;3]) % gives [1;2;3]
%
% algorithm: de Hoog et al's quotient difference method with accelerated
% convergence for the continued fraction expansion
% [de Hoog, F. R., Knight, J. H., and Stokes, A. N. (1982). An improved
% method for numerical inversion of Laplace transforms. S.I.A.M. J. Sci.
% and Stat. Comput., 3, 357-366.]
% Modification: The time vector is split in segments of equal magnitude
% which are inverted individually. This gives a better overall accuracy.
% details: de Hoog et al's algorithm f4 with modifications (T->2*T and
% introduction of tol). Corrected error in formulation of z.
%
% Copyright: Karl Hollenbeck
% Department of Hydrodynamics and Water Resources
% Technical University of Denmark, DK-2800 Lyngby
% email: ka...@isv16.isva.dtu.dk
% 22 Nov 1996, MATLAB 5 version 27 Jun 1997 updated 1 Oct 1998
% IF YOU PUBLISH WORK BENEFITING FROM THIS M-FILE, PLEASE CITE IT AS:
% Hollenbeck, K. J. (1998) INVLAP.M: A matlab function for numerical
% inversion of Laplace transforms by the de Hoog algorithm,
% http://www.isva.dtu.dk/staff/karl/invlap.htm
"Lucien Hardy" <lha...@chm.ulaval.ca> wrote in message
news:eebed...@WebX.raydaftYaTP...
Lucien,
I have sent you a paper with Matlab code in it. It is rather stable,
from my experience. Hope it helps.
Regards,
Jinsong
I have got several answers which look very helpful, so this message
is just intended to thank everyone who helped (in order of answering)
: Andrew, Jinsong, Peter and also Paul and Robyn.
Hoping it will solve my problem, thanks to them ! :-)
Lucien.
P.S. If other people want to add anything else, just keep answering
to this topic !
Hello David,
By "experimental points", I mean that the set of data points which
for I need to calculate the inverse Laplace transform is obtained
experimentally. More precisely it is a file containing two columns of
data, one for the abscissa and the other for the measured signal
itself.
Note that,in that particular case, the abscissa are "time", I know it
should be frequency as in common case but in that particular case it
is time.
I hope it does not matter as I see it to be regarded as a matter of
"convention".
Regards.
Lucien.
What do you intend the "inverse" Laplace transform of a time history to
represent?
> What do you intend the "inverse" Laplace transform of a time
> history to
> represent?
>
According to a reference I have found, my signal should be of the
following form :
H(t)=int[-oo;+oo]{f(k)exp(-kt)dk}=L{f(k)}
(int : integral, L: Laplace transform)
So by inverting H(t) (in terms of Laplace transform), I should get
what I am looking for : f(k).
That's it, I hope my answer is correct ...
> What do you intend the "inverse" Laplace transform of a time
> history to
> represent?
>
According to a reference I have found, my signal H(t) should be of
the following form :
H(t)=int[-oo;+oo]{f(k)exp(-kt)dk}=L{f(k)}
(int : integral, L: Laplace transform)
So by inverting H(t) (in terms of Laplace transform) as stated in
this ref., I should get what I am looking for : f(k).