4

I have a general question. I want to know what algorithm (The name of this numerical method) is already used to calculate a numerical Inverse Laplace in Mathematica. I used the function InverseLaplaceTransform and it calculated the solution numerically, but I don't know which numerical method I used to get the answer. I tried to find a description of the algorithm or a name for this method, but I was not successful. There are some methods like DeHoog or Stehfest or Talbot.

xzczd
  • 65,995
  • 9
  • 163
  • 468
Ali AlCapone
  • 141
  • 6
  • 6
    They're mentioned in Options->Method section of the document of InverseLaplaceTransform. – xzczd Aug 19 '22 at 15:28

1 Answers1

4

In version 12.3 the built in help files do not seem show what possible methods are available for InverseLaplaceTransform. However version 13.1 and the online help files here show the possible methods are
{"Stehfest", "Piessens", "Talbot", "Durbin", "Crump", "Papoulis", "Weeks"}
but do not say which one is used when automatic is specified.

A related question suggests we can use Trace[..., TraceInternal -> True] to gain some insight. But when I try this with InverseLaplaceTransform, a search of the lengthy output does not find any of the methods listed above.

The last comment to the related question seems to indicate it may not be possible to determine which method is used when automatic is selected: enter image description here

On more thing to try, you could specify each method individually and see which of the results match your previous result and what the timing was. Of course, if they all return the same answer in the same time (within the timing resolution) you wont know.

For example, in the case below, "Talbot" seems to have been used for automatic.

{#, Timing[
     InverseLaplaceTransform[1/(Sqrt[s + 1] + s), s, 5.3, 
      Method -> #]]} & /@ {Automatic, "Stehfest", "Piessens", 
   "Talbot", "Durbin", "Crump", "Papoulis", "Weeks"} // ColumnForm
(*{
 {{Automatic, {0.015625, 0.02096}}},
 {{"Stehfest", {0., 0.02096}}},
 {{"Piessens", {0.0625, 0.02096 - 3.31308*10^-17 I}}},
 {{"Talbot", {0.015625, 0.02096}}},
 {{"Durbin", {0.171875, 0.0205214}}},
 {{"Crump", {0.03125, 0.0233592}}},
 {{"Papoulis", {0., 0.0208867}}},
 {{"Weeks", {2.14063, 0.0209602}}}
}*)
Rudy Potter
  • 2,553
  • 8
  • 20