Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

inverse_laplace of a fraction whose denominator has real roots (or complex)

Hi, this is the simplest and very important method of Laplace inversion . It can be applied to any Laplace transform (LT), by starting with a Pade approximation of the LT, then partial fractions and inversion. For some reason, a program I had written last year stopped working

def Ruin(Fx, rho, x, u):#assumes rational survival function Fx, i.e. a hyperexponential density
    var('s')
    L_F=laplace(Fx,x,s) 
    m1=L_F(s=0) #some algebraic manipulations known as Pollaczek-Khinchine formula
    fe=L_F/m1
    Fe=factor((1-fe)/s)
    L_rui=rho*Fe/(1-rho*fe)
    C=ComplexField(53);
    dec=Frac(C['s'])(L_rui).partial_fraction_decomposition();
    n=len(dec)
    par=[inverse_laplace(dec[1][i],s,u) for i in [0..n]];
    rui=sum(par)
    return rui,  L_rui, fe

It's pretty easy to repair the program when roots are rational -- see question "partial_fraction_decomposition" with possibly "complex roots", again. For nonrational roots, I proposed there the following test case

var('s,u')
R.<s> = PolynomialRing(QQbar) 
F = R.fraction_field()
L=3/4*(19*s^2 + 156*s + 284)/(19*s^3 + 174*s^2 + 422*s + 228)
whole,LL=L.partial_fraction_decomposition()
show(LL[0])
inverse_laplace(LL[0],s,u)

Thanks in advance :)