Message Boards Message Boards

GROUPS:

Calculate an inverse Laplace transform?

Posted 1 month ago
352 Views
|
3 Replies
|
1 Total Likes
|

Hello, I need an inverse Laplace transform of the expression: Log[s+a]/Sqrt[s] where s is the Laplace variable and a is a nonnegative real constant. I recall that the older version (5) of MATHEMATICA returned some formula containing a generalized hypergeometric series but the formula was clearly wrong (did not agree with the numerically inverted transform) and also it was problematic to obtain the values of the series for arguments larger than about 100. I would be happy to get the result in terms of more widely known and computable functions, if possible. Is MATHEMATICA currently able to derive this result? Lesław

3 Replies

We can express Log[s+a] by series:

SeriesCoefficient[Log[s + a], {a, 0, n}]

We can check:

FullSimplify[Log[s] + Sum[((-1)^(1 + n) s^-n)/n*a^n, {n, 1, Infinity}], Assumptions -> {a > 0, s > 0}]
(*Log[a + s]*)

Then InverseLaplaceTransform is:

  InverseLaplaceTransform[(Log[s] + ((-1)^(1 + n) s^-n)/n*a^n)/Sqrt[s], s, t]
  (*((-1)^(1 + n) a^n t^(-(1/2) + n))/(
   n Gamma[1/2 + n]) + (-Log[t] + PolyGamma[0, 1/2])/(
   Sqrt[\[Pi]] Sqrt[t])*)

and

   Sum[((-1)^(1 + n) a^n t^(-(1/2) + n))/(
   n Gamma[1/2 + n]), {n, 1, Infinity}] + (-Log[t] + 
   PolyGamma[0, 1/2])/(Sqrt[\[Pi]] Sqrt[t])
   (*(2 a Sqrt[t]
      HypergeometricPFQ[{1, 1}, {3/2, 2}, -a t])/Sqrt[\[Pi]] + (-Log[t] +
      PolyGamma[0, 1/2])/(Sqrt[\[Pi]] Sqrt[t])*)

$$\mathcal{L}_s^{-1}\left[\frac{\log (s+a)}{\sqrt{s}}\right](t)=\frac{2 a t \, _2F_2\left(1,1;\frac{3}{2},2;-a t\right)-\log (t)+\psi ^{(0)}\left(\frac{1}{2}\right)}{\sqrt{\pi } \sqrt{t}}$$

Regards M.I.

Thank you. The result seems close to the formula returned by MATHEMATICA 5, except for a different constant PolyGamma[0,1/2]. But, there was also a problem how to compute HypergeometricPFQ[{1, 1}, {3/2, 2}, -a t] for at larger than about 100 (some error messages were returned and also the function could not be properly plotted). I need very accurate values (with relative errors not bigger than 10^-20 of this hypergeometric function for "at" as large as 10^12 or bigger. Ideally, I would be happy to know an asymptotic expansion and find a calculation algorithm that can be implemented outside MATHEMATICA (in C++). Is there any source where such an information can be found? The straightforward summation of the series written above does not work properly, apparently due to a loss of significant digits in subtraction, especially for large "at". There might also be a limited series convergence radius. This is also probably the reason why MATHEMATICA has a difficulty with returning correct values for large "at".

Typically, increasing $MaxExtraPrecision will resolve the problem:

 $Version
 (*"12.0.0 for Microsoft Windows (64-bit) (April 6, 2019)"*)

 Block[{$MaxExtraPrecision = Infinity}, 
   N[HypergeometricPFQ[{1, 1}, {3/2, 2}, -10^12], 
    20]] // AbsoluteTiming

(*Calculating time is very very long *)

Better is asymptotic expansion hypergeometric function calculating time is very short: An example:

  Block[{$MaxExtraPrecision = Infinity}, 
  N[HypergeometricPFQ[{1, 1}, {3/2, 2}, -10^4], 50]]
  (*0.00055869001971234905256956762831658880400079883301504*)

  sol = Series[
     HypergeometricPFQ[{1, 1}, {3/2, 2}, -a*t], {a, Infinity, 20}] // 
    Normal;
  Block[{$MaxExtraPrecision = Infinity}, 
   N[sol /. a -> 10^4 /. t -> 1, 50]]
   (*0.00055869001971234905256956762831658880400079883301504 + 
    0.*10^-4349 I*)

For *at =10^12:**

  Block[{$MaxExtraPrecision = Infinity}, 
   N[sol /. a -> 10^12 /. t -> 1, 50]]
  (*1.4797265570974735843828436707105563028890688734102*10^-11 + 
   4.9626916249394098003201139691172499219204358091276*10^-434294481922 \
  I*)

Regards M.I.

Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract