<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE article  PUBLIC "-//NLM//DTD Journal Publishing DTD v3.0 20080202//EN" "http://dtd.nlm.nih.gov/publishing/3.0/journalpublishing3.dtd"><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" dtd-version="3.0" xml:lang="en" article-type="research article"><front><journal-meta><journal-id journal-id-type="publisher-id">AM</journal-id><journal-title-group><journal-title>Applied Mathematics</journal-title></journal-title-group><issn pub-type="epub">2152-7385</issn><publisher><publisher-name>Scientific Research Publishing</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.4236/am.2022.135027</article-id><article-id pub-id-type="publisher-id">AM-117248</article-id><article-categories><subj-group subj-group-type="heading"><subject>Articles</subject></subj-group><subj-group subj-group-type="Discipline-v2"><subject>Physics&amp;Mathematics</subject></subj-group></article-categories><title-group><article-title>
 
 
  The Numerical Inversion of the Laplace Transform in a Multi-Precision Environment
 
</article-title></title-group><contrib-group><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Colin</surname><given-names>L. Defreitas</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref><xref ref-type="corresp" rid="cor1"><sup>*</sup></xref></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Steve</surname><given-names>J. Kane</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref></contrib></contrib-group><aff id="aff1"><addr-line>School of Physics Astronomy and Mathematics, University of Hertfordshire, Hertfordshire, UK</addr-line></aff><pub-date pub-type="epub"><day>19</day><month>05</month><year>2022</year></pub-date><volume>13</volume><issue>05</issue><fpage>401</fpage><lpage>418</lpage><history><date date-type="received"><day>4,</day>	<month>May</month>	<year>2022</year></date><date date-type="rev-recd"><day>20,</day>	<month>May</month>	<year>2022</year>	</date><date date-type="accepted"><day>23,</day>	<month>May</month>	<year>2022</year></date></history><permissions><copyright-statement>&#169; Copyright  2014 by authors and Scientific Research Publishing Inc. </copyright-statement><copyright-year>2014</copyright-year><license><license-p>This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/</license-p></license></permissions><abstract><p>
 
 
  This paper examines the performance of five algorithms for numerically inverting the Laplace transform, in standard, 16-digit and multi-precision environments. The algorithms are taken from three of the four main classes of numerical methods used to invert the Laplace transform. Because the numerical inversion of the Laplace transform is a perturbed problem, rounding errors which are generated in numerical approximations can adversely affect the accurate reconstruction of the inverse transform. This paper demonstrates that working in a multi-precision environment can substantially reduce these errors and the resulting perturbations exist in transforming the data from the s-space into the time domain and in so doing overcome the main drawback of numerically inverting the Laplace transform. Our main finding is that both the Talbot and the accelerated Gaver functionals perform considerably better in a multi-precision environment increasing the advantages of using Laplace transform methods over time-stepping procedures in solving diffusion and more generally parabolic partial differential equations.
 
</p></abstract><kwd-group><kwd>Laplace Transform</kwd><kwd> Perturbation</kwd><kwd> Numerical Inversion</kwd><kwd> Multi-Precision</kwd><kwd> Stehfest</kwd><kwd> Talbot</kwd></kwd-group></article-meta></front><body><sec id="s1"><title>1. Introduction</title><p>This paper examines the performance of five algorithms for numerically inverting the Laplace transform, in standard 16-digit and multi-precision environments. The algorithms, whose derivations are outlined in Section 5, are taken from three of the four main classes of numerical methods used to invert the Laplace transform [<xref ref-type="bibr" rid="scirp.117248-ref1">1</xref>].</p><p>The Abate-Valko [<xref ref-type="bibr" rid="scirp.117248-ref1">1</xref>] and Logan schemes [<xref ref-type="bibr" rid="scirp.117248-ref2">2</xref>] belong to the class of inversion algorithms which deform the Bromwich contour [<xref ref-type="bibr" rid="scirp.117248-ref3">3</xref>]. They are closely related versions of this approach as they both use Talbot’s method for deformation of the contour [<xref ref-type="bibr" rid="scirp.117248-ref4">4</xref>]. Logan, however, chooses an exponential transform while Abate-Valko extends the original Talbot formulation expressing the contour in trigonometric form.</p><p>The Stehfest and Salzer-Gaver algorithms [<xref ref-type="bibr" rid="scirp.117248-ref5">5</xref>], are again two closely related schemes based on the acceleration of the Gaver functional [<xref ref-type="bibr" rid="scirp.117248-ref6">6</xref>]. Stehfest applied a modified Salzer acceleration scheme [<xref ref-type="bibr" rid="scirp.117248-ref7">7</xref>] onto the Gaver functional simplifying this result to yield one of the most widely used algorithms for inverting the Laplace transform. We find, however, that when we implement a direct application of the Salzer acceleration scheme onto the Gaver functional, (Salzer-Gaver), with Stehfest’s modifications, we do not obtain the same results as those produced by the Stehfest scheme. We conclude that Stehfest’s simplification process is at least in part responsible for the differences in performance of these two versions.</p><p>Finally, we examine the Fourier series method [<xref ref-type="bibr" rid="scirp.117248-ref8">8</xref>], which expresses the inversion integral as a Fourier series and then uses the trapezium rule to evaluate the integral numerically. The Fourier series method differs from the other four algorithms as no acceleration scheme is used to force convergence. As such, this is only used in a standard 16 digit precision environment and is compared with the four other schemes using standard precision.</p></sec><sec id="s2"><title>2. The Laplace Transform</title><p>The Laplace transform is an integral transform defined as follows:</p><p>Let f ( t ) be defined for t ≥ 0 , then the Laplace transform of f ( t ) is given by,</p><p>L { f ( t ) } = ∫ 0 ∞     f ( t ) e − s t d t (1)</p><p>Thus L { f ( t ) } is a function of s denoted as F ( s ) . The Laplace transform can be shown to exist for any function which can be integrated over any finite interval 0 &lt; t &lt; l for l &gt; 0 , and for which f ( t ) is of exponential order, i.e.</p><p>| f ( t ) | &lt; M e a t (2)</p><p>as t → ∞ , where M &gt; 0 is a finite real number and a is a small real positive number.</p><p>Analytically the inverse Laplace transform is usually obtained using the techniques of complex contour integration with the resulting set of standard transforms presented in tables [<xref ref-type="bibr" rid="scirp.117248-ref9">9</xref>].</p><p>However, using the Laplace transform can generate data in the Laplace domain which is not easily invertible to the real domain by analytical means. Thus numerical inversion techniques have to be used to convert the data from the s-space to the time domain.</p></sec><sec id="s3"><title>3. The Inverse Laplace Transform, Perturbation and Multi-Precision</title><p>The recovery of the function f ( t ) is via the inverse Laplace transform which is most commonly defined via the Bromwich contour integral,</p><p>L − 1 { F ( s ) } = f ( t ) = 1 2 π i ∫ α − i ∞ α + i ∞     f ( s ) e s t d s (3)</p><p>such that α ∈ R . The inversion integral is widely known to be highly perturbed [<xref ref-type="bibr" rid="scirp.117248-ref10">10</xref>] [<xref ref-type="bibr" rid="scirp.117248-ref11">11</xref>] [<xref ref-type="bibr" rid="scirp.117248-ref12">12</xref>]. This is due to the e s t term in the integral which amplifies small changes in the input data. Hence all numerical schemes are vulnerable to this perturbation and this has to be taken into account when using the various algorithms to invert the Laplace transform. This suggests that working in a multi-precision environment can act to reduce errors and the resulting perturbations which exist in the transforming the data from the s-space into the time domain.</p><p>As Abate-Valko noted [<xref ref-type="bibr" rid="scirp.117248-ref1">1</xref>], “In the traditional development of the inversion methods, most of the effort was directed at controlling round-off errors. This is because the process is numerically unstable in a fixed-precision, computing environment. The problem is that as the user tries to increase the accuracy there comes a point where the round off error causes the error to increase dramatically”.</p><p>In fact Abate-Valko got further and made the claim that “for our purposes, we add the proviso that values of the transform can be computed to any desired precision as a function of the complex variable”.</p><p>This suggests that working in a multi-precision environment can act to reduce errors and the resulting perturbations which exist in transforming the data from the s-space into the time domain.</p></sec><sec id="s4"><title>4. The Algorithms</title><p>Large parts of this section are taken from our earlier work [<xref ref-type="bibr" rid="scirp.117248-ref13">13</xref>]. This is necessary to provide sufficient background on the derivation of the algorithms and their performance. However, we extend this work to include comments on Salzer acceleration and the subsequent Salzer Gaver scheme’s derivation and compare this to the Stehfest inversion scheme.</p><p>However this has been extended to include analysis of the Salzer acceleration scheme on the Gaver functional. We also comp There are over 100 algorithms available for inverting the Laplace Transform with numerous comparative studies, examples include, Duffy [<xref ref-type="bibr" rid="scirp.117248-ref14">14</xref>], Narayanan and Beskos [<xref ref-type="bibr" rid="scirp.117248-ref15">15</xref>], Cohen [<xref ref-type="bibr" rid="scirp.117248-ref10">10</xref>] and perhaps the most comprehensive by Davies and Martin [<xref ref-type="bibr" rid="scirp.117248-ref16">16</xref>]. However for the purposes of this investigation we apply our tests using “Those algorithms that have passed the test of time” [<xref ref-type="bibr" rid="scirp.117248-ref1">1</xref>]. These fall into four groups,</p><p>1) Fourier series expansion.</p><p>2) Combination of Gaver Functionals.</p><p>3) Laguerre function expansion.</p><p>4) Deformation of the Bromwich contour.</p><sec id="s4_1"><title>4.1. The Fourier Series Method</title><p>In their survey of algorithms for inverting the Laplace transform, Davies and Martin [<xref ref-type="bibr" rid="scirp.117248-ref16">16</xref>] note that the Fourier series method without accelerated convergence gives good accuracy on a wide variety of functions. Since the Laplace Transform is closely related to the Fourier transform it is not surprising that inversion methods based on a Fourier series expansion would yield accurate results. In fact the two sided Laplace transform can be derived from the Fourier transform in the following way. We can define the Fourier transform as</p><p>F { f ( t ) } = ∫ − ∞ ∞     f ( t ) e − 2 π i ν t d t (4)</p><p>Then letting v = 2 π ν we have</p><p>F { f ( t ) } = ∫ − ∞ ∞     f ( t ) e − i v t d t (5)</p><p>This Fourier transform exists provided f ( t ) is an absolutely integrable function, i.e.</p><p>∫ − ∞ ∞ | f ( t ) | d t &lt; ∞ (6)</p><p>As many functions do not satisfy condition (6), f ( t ) is multiplied by the exponential dampening factor e − u t thus</p><p>F { f ( t ) e − u t } = ∫ − ∞ ∞     f ( t ) e − i v t e − u t d t (7)</p><p>and letting s = u + i v we obtain the two sided Laplace Transform of f ( t ) as</p><p>F { f ( t ) e − u t } = L { f ( t ) } = ∫ − ∞ ∞     e − s t f ( t ) d t (8)</p><p>Le Page [<xref ref-type="bibr" rid="scirp.117248-ref17">17</xref>] notes that the integral given by (8) can be written in two parts as follows:</p><p>∫ − ∞ ∞     e − s t f ( t ) d t = ∫ − ∞ 0     e − s t f ( t ) d t + ∫ 0 ∞     e − s t f ( t ) d t (9)</p><p>The second term on the RHS in the above expression is referred to as the one sided Laplace transform or simply the Laplace transform. Thus, s is defined as a complex variable in the definition of the Laplace transform.</p><p>As before the inverse Laplace transform is given as:</p><p>f ( t ) = 1 2 π i ∫ u − i ∞ u + i ∞     e s t F ( s ) d s (10)</p><p>With s = u + i v in (10) this leads to the result</p><p>f ( t ) = 2 e u t π ∫ 0 ∞ [ Re { F ( u + i v ) } cos ( v t ) − Im { F ( u + i v ) } sin ( v t ) ] d v (11)</p><p>[<xref ref-type="bibr" rid="scirp.117248-ref8">8</xref>], which can be replaced by the cosine transform pair</p><p>Re { F ( u + i v ) } = ∫ 0 ∞     e − u t f ( t ) cos ( v t ) d t (12)</p><p>f ( t ) = 2 e u t π ∫ 0 ∞ Re { F ( u + i v ) } cos ( v t ) d v (13)</p><p>or by the sine transform pair</p><p>Re { F ( u + i v ) } = − ∫ 0 ∞     e − u t f ( t ) sin ( v t ) d t (14)</p><p>f ( t ) = − 2 e u t π ∫ 0 ∞ Im { F ( u + i v ) } sin ( v t ) d v (15)</p><p>Dubner and Abate [<xref ref-type="bibr" rid="scirp.117248-ref18">18</xref>] applied a trapezoid rule to (13) resulting in the Fourier series approximation,</p><p>f ( t ) ≈ 2 e u t T [ 1 2 F ( u ) + ∑ k = 1 ∞ Re { F ( u + k π i T ) } cos ( k π t T ) ] (16)</p><p>where f ( t ) is expanded in the interval 0 ≤ t &lt; T . For faster computation Simon et al. [<xref ref-type="bibr" rid="scirp.117248-ref19">19</xref>] proposed the following version of (16).</p><p>f ( t ) ≈ e u t t [ 1 2 F ( u ) + ∑ k = 1 ∞ Re { F ( u + k π i t ) } ( − 1 ) k ] (17)</p><p>This series can be summed much faster than (16) as there are no cosines to compute [<xref ref-type="bibr" rid="scirp.117248-ref20">20</xref>]. This algorithm is relatively easy to implement with u being the only real varying parameter.</p><p>However, as Crump [<xref ref-type="bibr" rid="scirp.117248-ref8">8</xref>] points out, for the expression in (17) the transform F ( s ) must now be computed for a different set of s-values for each distinct t. Since this type of application occurs often in practice in which the numerical computations of F ( s ) is itself quite time consuming this may not be an economical inversion algorithm to use. These drawbacks to some extent can be overcome by using the fast Fourier transform techniques in [<xref ref-type="bibr" rid="scirp.117248-ref20">20</xref>] [<xref ref-type="bibr" rid="scirp.117248-ref21">21</xref>].</p><p>Crump [<xref ref-type="bibr" rid="scirp.117248-ref8">8</xref>] also extends this method to one with faster convergence by making use of the already computed imaginary parts. There are several other acceleration schemes for example, those outlined by Cohen [<xref ref-type="bibr" rid="scirp.117248-ref10">10</xref>], however these acceleration methods in general require the introduction of new parameters which for the purposes of this investigation we wish to avoid.</p></sec><sec id="s4_2"><title>4.2. The Stehfest Algorithm</title><p>Davies and Martin [<xref ref-type="bibr" rid="scirp.117248-ref16">16</xref>] cite the Stehfest [<xref ref-type="bibr" rid="scirp.117248-ref5">5</xref>] algorithm as providing accurate results on a wide variety of test functions. Since that time, this algorithm has become widely used for inverting the Laplace Transform, being favoured due its reported accuracy and ease of implementation.</p><p>Here we give a brief overview of the evolution of the algorithm from a probability distribution function to the Gaver functional whose asymptotic expansion leads to an acceleration scheme which yields the algorithm in its most widely used form.</p><p>Gaver [<xref ref-type="bibr" rid="scirp.117248-ref6">6</xref>] investigated a method for obtaining numerical information on the time dependent behavior of stochastic processes which often arise in queuing theory. The investigation involved examining the properties of the three parameter class of density functions namely</p><p>p n , m ( a , t ) = ( n + m ) ! n ! ( m − 1 ) ! ( 1 − e − a t ) n a e − m a t (18)</p><p>with n , m ∈ ℕ .</p><p>After the binomial expansion of the term ( 1 − e − a t ) n , Gaver went on to find the expectancy E [ f ( T n , m ) ] , where T n , m is the random variable with density (18). From this Gaver was able to express the inverse Laplace transform in terms of the functional</p><p>f n , m ( t ) = ln 2 t ( n + m ) ! n ! ( m − 1 ) ! ∑ j = 0 n ( n k ) ( − 1 ) k F ( ( k + m ) ln 2 t ) (19)</p><p>with certain conditions on n and m, Gaver makes n = m and Expresses (19) as</p><p>f n ( t ) = ln 2 t ( 2 n ) ! n ! ( n − 1 ) ! ∑ k = 0 n ( n k ) ( − 1 ) k F ( ( k + n ) ln 2 t ) (20)</p><p>While the expression in (20) can be used to successfully invert the Laplace transform for a large class of functions its rate of convergence is slow [<xref ref-type="bibr" rid="scirp.117248-ref9">9</xref>] [<xref ref-type="bibr" rid="scirp.117248-ref10">10</xref>]. However Gaver [<xref ref-type="bibr" rid="scirp.117248-ref6">6</xref>] has shown that (20), with t = ln 2 a has the asymptotic expansion</p><p>f n ( t ) ≈ f ( ln 2 a ) + α 1 n + α 2 n 2 + α 3 n 3 + ⋯ (21)</p><p>where the α j ’s are constant coefficients in the asymptotic series. Hence (21) in the limit converges to</p><p>f n ( t ) n → ∞ = f ( ln 2 a )</p><p>For the conditions on m and n and justification for the substitution for a referred to above see Gaver [<xref ref-type="bibr" rid="scirp.117248-ref6">6</xref>]. This asymptotic expansion provides scope for applying various acceleration techniques enabling a more viable application of the basic algorithm.</p><p>Much of the literature alludes to the fact that a Salzer [<xref ref-type="bibr" rid="scirp.117248-ref7">7</xref>] acceleration scheme is used on the Gaver functional in (20) which results in the Stehfest algorithm. In fact Stehfest’s approach was a little more subtle than a direct application of the Salzer acceleration.</p><sec id="s4_2_1"><title>4.2.1. Using Salzer Acceleration</title><p>The Salzer acceleration scheme makes use of the “Toeplitz limit theorem” [<xref ref-type="bibr" rid="scirp.117248-ref7">7</xref>], “this concerns the convergence of a transformation of a sequence ζ s where the ( n + 1 ) th member of the transformed sequence is a weighted mean of the first ( n + 1 ) terms”</p><p>S &#175; n = ∑ k = 0 n     μ n k ⋅ S k (22)</p><p>Here S &#175; n is the transformed sequence and S k the original sequence which for our purposes = f n ( t ) in (20). The Salzer means are given by</p><p>μ n k = ( − 1 ) n + k ( 1 + k ) n n ! ( n k ) (23)</p><p>For the sake of compatibility with (22) we make the change k → i and n → k in (20). With this change of variables we also write</p><p>( 2 k ) ! k ! ( k − 1 ) ! = k ( 2 k ) ! k ! k !</p><p>This allows the sum to be taken from k = 0 to n without ( 0 − 1 ) ! in the denominator of (20). So with Salzer acceleration we can express the Salzer-Gaver algorithm as</p><p>f n ( t ) = ln 2 t ∑ k = 0 n ( − 1 ) n + k ( k + 1 ) n k ! ( n − k ) ! k ( 2 k ) ! k ! k ! ∑ i = 0 k k ! i ! ( k − i ) ! ( − 1 ) i F { ( k + i ) ln 2 t } (24)</p></sec><sec id="s4_2_2"><title>4.2.2. Stehfest’s Acceleration Scheme</title><p>For the purposes of following Stehfest’s derivation it will be convenient to rewrite (20) as</p><p>f n ( t ) = F n = ( 2 n ) ! a n ! ( n − 1 ) ! ∑ k = 0 n ( n k ) ( − 1 ) k F ( ( k + n ) a ) (25)</p><p>Stehfest [<xref ref-type="bibr" rid="scirp.117248-ref5">5</xref>] begins by supposing we have N values for F [ ( k + n ) a ] with F ( a ) , F ( 2 a ) , F ( 3 a ) , ⋯ F ( N a ) for N even. Using (25) we can then determine N 2 values F 1 , F 2 , ⋯ , F N / 2 . Now each of these N 2 values satisfy the asymptotic series in (21) with the same coefficients.</p><p>As Stehfest [<xref ref-type="bibr" rid="scirp.117248-ref5">5</xref>] points out, the α<sub>j</sub>’s are the same for each of the above expansions and by using a suitable linear combination the first ( N 2 − 1 ) error terms in (21) can be eliminated. That is</p><p>f ( ln 2 a ) = ∑ n = 1 N 2     a n F ( n 2 + i − 1 ) + O ( 1 N N 2 ) (26)</p><p>which may be achieved by selecting the coefficients to satisfy</p><p>∑ n = 1 N 2     a n 1 ( N 2 + 1 − n ) k = δ k , 0 ,       k = 1 , ⋯ , N / 2 − 1 (27)</p><p>which produce the same coefficients as the Salzer acceleration scheme used in (22). In fact for any n, Stehfest generates the required coefficients using what is in effect a modified Salzer acceleration scheme giving</p><p>a n = ( − 1 ) n − 1 ( N 2 ) ! ( N 2 n ) n { ( N 2 + 1 − n ) N 2 − 1 } (28)</p><p>Finally, Stehfest substitutes these results into (26) and gets the inversion formula</p><p>f ( t ) ≈ ln 2 t ∑ j = 1 N     A j F ( j ln 2 t ) (29)</p><p>for N even and</p><p>A j = ( − 1 ) N 2 + j = ∑ k = ⌊ j + 1 2 ⌋ min ( j , N 2 ) k N 2 ( 2 k ) ! ( N 2 − k ) ! k ! ( k − 1 ) ! ( j − k ) ! ( 2 k − j ) ! (30)</p><p>However, a direct application of the modified Salzer acceleration scheme in (28) onto the Gaver functional in (25) does not produce the same results for the expression in (30) so they are not exactly equal to each other.</p><p>To show this we consider the function sin ( t ) whose Laplace transform is</p><p>1 s 2 + 1</p><p>The eight weights produced by the Salzer acceleration for n = 8 are exactly the same for n = 18 in Stehfest’s modified Salzer acceleration scheme in (28).</p><p>However, <xref ref-type="table" rid="table1">Table 1</xref> shows that for sin ( t ) with these same weights, the Salzer-Gaver scheme produces different results when compared to Stehfest’s scheme in (30). We believe this is due to Stehfest’s simplification of the Salzer-Gaver scheme to the expression in (30).</p><p>This simplification was necessary because as we show in our results in Section 6, Stehfest’s final expression in (30) is faster and works better in standard double precision. As the algorithm was developed in 1970, this would be far more efficient when taking into consideration the computing power available at the time. Again as we show in Section 6, a direct application of a Salzer acceleration scheme onto the Gaver functional is only advantageous in a multi-precision environment.</p></sec></sec><sec id="s4_3"><title>4.3. The Talbot Algorithm</title><p>Equations (4) to (8) showed that the Laplace transform can be seen as a Fourier transform of the function</p><p>e − u t f ( t ) ,     t &gt; 0 (31)</p><p>i.e.</p><p>F { e − u t f ( t ) } = L { f ( t ) } = F ( s ) (32)</p><table-wrap id="table1" ><label><xref ref-type="table" rid="table1">Table 1</xref></label><caption><title> Salzer-Gaver stehfest for sin ( t ) </title></caption><table><tbody><thead><tr><th align="center" valign="middle" >t</th><th align="center" valign="middle" >Stehfest</th><th align="center" valign="middle" >Salzer-Gaver</th></tr></thead><tr><td align="center" valign="middle" >5</td><td align="center" valign="middle" >0.89</td><td align="center" valign="middle" >1.02</td></tr><tr><td align="center" valign="middle" >10</td><td align="center" valign="middle" >0.08</td><td align="center" valign="middle" >0.18</td></tr><tr><td align="center" valign="middle" >15</td><td align="center" valign="middle" >0.002</td><td align="center" valign="middle" >0.03</td></tr><tr><td align="center" valign="middle" >20</td><td align="center" valign="middle" >0.03</td><td align="center" valign="middle" >0.02</td></tr><tr><td align="center" valign="middle" >25</td><td align="center" valign="middle" >0.001</td><td align="center" valign="middle" >0.004</td></tr><tr><td align="center" valign="middle" >30</td><td align="center" valign="middle" >0.001</td><td align="center" valign="middle" >0.004</td></tr></tbody></table></table-wrap><p>Hence the Fourier transform inversion formula can be applied to recover the function thus:</p><p>F − 1 { F ( s ) } = e − u t f ( t ) = 1 2 π ∫ − ∞ ∞     F ( s ) e i v t d v (33)</p><p>as s = u + i v we have that d s = i d v and so</p><p>f ( t ) = 1 2 π i ∫ u − i ∞ u + i ∞     F ( s ) e s t d s (34)</p><p>This result provides a direct means of obtaining the inverse Laplace transform. In practice the integral in (34) is evaluated using a contour</p><p>1 2 π i ∫ B     e s t F ( s ) d s (35)</p><p>with B here denoting the Bromwich contour [<xref ref-type="bibr" rid="scirp.117248-ref3">3</xref>]. The contour is chosen so that it encloses all the possible singularities of F ( s ) . The idea of the contour is introduced so that the Cauchy residue theorem can be used to evaluate the integral.</p><p>However, when f ( t ) is to be calculated using numerical quadrature it may be more appropriate to devise a new contour. To ensure that (35) is integrable we may wish to control the growth of the magnitude of the integrand e s t by moving the contour to the left and so giving the real part of s a large negative component [<xref ref-type="bibr" rid="scirp.117248-ref1">1</xref>] [<xref ref-type="bibr" rid="scirp.117248-ref22">22</xref>].</p><p>However, the deformed contour must not be allowed to pass through any singularities of F ( s ) . This is to ensure that the transform is analytic in the region to the right of B.</p><sec id="s4_3_1"><title>4.3.1. Derivation of the Fixed Talbot Contour</title><p>In the derivation that follows [<xref ref-type="bibr" rid="scirp.117248-ref1">1</xref>] and [<xref ref-type="bibr" rid="scirp.117248-ref22">22</xref>] are used as the primary basis for extending the explanation of the derivation of the Talbot algorithm for inverting the Laplace Transform.</p><p>Abate-Valko [<xref ref-type="bibr" rid="scirp.117248-ref1">1</xref>] began with the Bromwich inversion integral along the Bromwich contour B with the transform</p><p>F ( s ) = 1 s α ,     α &gt; 0 (36)</p><p>So f ( t ) can be expressed as</p><p>f ( t ) = 1 2 π i ∫ B     e t ( s − a ln s ) d s (37)</p><p>with a = α t in (37). As Abate-Valko [<xref ref-type="bibr" rid="scirp.117248-ref1">1</xref>] indicated, numerically evaluating the</p><p>integral in (37) is difficult due to the oscillatory nature of the integrand.</p><p>However, this evaluation can be achieved by deforming the contour B into a path of constant phase thus eliminating the oscillations in the imaginary component. These paths of constant phase are also paths of steepest decent for the real part of the integrand [<xref ref-type="bibr" rid="scirp.117248-ref1">1</xref>] [<xref ref-type="bibr" rid="scirp.117248-ref22">22</xref>] [<xref ref-type="bibr" rid="scirp.117248-ref23">23</xref>].</p><p>There are in general a number of contours for which the imaginary component remains constant so we choose one on which the real part attains a maximum on the interior (a saddle point) and this occurs at g ′ ( s ) = 0 at some point on the contour. At these saddle points the Im { g ( s ) } = 0 [<xref ref-type="bibr" rid="scirp.117248-ref17">17</xref>]. Where</p><p>g ( s ) = s − a ln s (38)</p><p>in (37). Thus we have</p><p>g ′ ( s ) = 1 − a s (39)</p><p>So the stationary point occurs when s = a .</p><p>With s = u + i v we have</p><p>Im { u + i v − a ln ( u + i v ) } = 0 (40)</p><p>Expressing u + i v as R e i θ we have</p><p>Im { ( u − a ln R ) + i ( v − a θ ) } = 0 (41)</p><p>then</p><p>v = a θ (42)</p><p>and as</p><p>tan ( θ ) = v u (43)</p><p>Then</p><p>u = a θ cot ( θ ) (44)</p><p>[<xref ref-type="bibr" rid="scirp.117248-ref1">1</xref>].</p><p>With v = a θ then s can be parameterized to (44) Talbots contour</p><p>s ( θ ) = a θ ( cot ( θ ) + i ) ,       − π &lt; θ &lt; + π (45)</p><p>[<xref ref-type="bibr" rid="scirp.117248-ref4">4</xref>].</p></sec><sec id="s4_3_2"><title>4.3.2. Conformal Mapping of the Talbot Contour</title><p>While the above parametrization can be used as a basis for inverting the Laplace transform we proceed with the algorithm’s development via a convenient conformal mapping as follows.</p><p>cot θ = i ( e i θ + e − i θ ) e i θ − e − i θ (46)</p><p>Then</p><p>θ cot θ + i θ = 2 i θ 1 − e − 2 i θ (47)</p><p>with z = 2 i θ (47) is equal to</p><p>z 1 − e − z (48)</p><p>Hence (45) becomes,</p><p>a z 1 − e − z (49)</p><p>The function</p><p>s ( z ) = a z 1 − e − z (50)</p><p>maps the closed interval M = [ − 2 π i ,2 π i ] on the imaginary z-plane onto the curve L in the s plane giving the integral,</p><p>f ( t ) = 1 2 π i ∫ L     F ( s ) e s t d s (51)</p><p>For the details of this transformation one can refer the study of Logan [<xref ref-type="bibr" rid="scirp.117248-ref2">2</xref>].</p><p>Next we follow the procedure as adopted by Logan [<xref ref-type="bibr" rid="scirp.117248-ref2">2</xref>] for numerically integrating (51). With the change of variable (51) becomes</p><p>f ( t ) = 1 2 π i ∫ M     F ( s ( z ) ) e s ( z ) t s ′ ( z ) d z (52)</p><p>where</p><p>s ′ ( z ) = − a ( z e − z + e − z − 1 ) ( e − z − 1 ) 2 (53)</p><p>For convenience we write,</p><p>f ( t ) = 1 2 π i ∫ M     I ( z , t ) d z (54)</p><p>where</p><p>I ( z , t ) = F ( s ( z ) ) e s ( z ) t s ′ ( z ) (55)</p><p>The integral in (54) is then rotated by π 2 so the interval of integration is now real and becomes [ − 2 π ,2 π ] and then we use the trapezoid rule with n odd and w = − i z to obtain</p><p>f ( t ) ≅ 1 n { I ( 2 π i ) + T ( − 2 π i ) + 2 ∑ j = 1 n − 1     I ( i w j ) } (56)</p><p>where</p><p>w j = 2 π ( 2 j n − 1 ) (57)</p><p>and we note that I ( 2 π i ) = I ( − 2 π i ) = 0 [<xref ref-type="bibr" rid="scirp.117248-ref2">2</xref>].</p></sec><sec id="s4_3_3"><title>4.3.3. Valko</title><p>Abate-Valko [<xref ref-type="bibr" rid="scirp.117248-ref1">1</xref>] deformed the Bromwich contour using the Talbot path which has the form,</p><p>s ( h ) = r h ( cot ( h ) + i ) ,       − π &lt; h &lt; π (58)</p><p>Which is the same as (47) with a = r and h = θ</p><p>So we have</p><p>s ′ ( h ) = i r ( 1 + i r ( h ) ) (59)</p><p>where,</p><p>r ( h ) = h + ( h cot ( h ) − 1 ) cot ( h ) (60)</p><p>Then from (52) we find,</p><p>f ( t ) = r π ∫ 0 π Re [ e t s ( h ) F ( s ( h ) ) ( 1 + i r ( h ) ) ] d h (61)</p><p>They then approximate the value of the integral in (63) by using the trapezoidal rule with step size π m and h k = k π m ,</p><p>f ( t , M ) = r m [ 1 2 F ( r ) exp ( r t ) + ∑ k = 1 M − 1 Re [ e t s ( h k ) F ( s ( h k ) ) ( 1 + i r ( h k ) ) ] ] (62)</p><p>Based on numerical experiments, Abate-Valko then fixed the parameterr to the value,</p><p>r = 2 M 5 t . (63)</p><p>[<xref ref-type="bibr" rid="scirp.117248-ref1">1</xref>]. We also use this value for a in Logan’s transformation.</p></sec></sec></sec><sec id="s5"><title>5. Results</title><p>We tested the five algorithms on the functions listed in <xref ref-type="table" rid="table2">Table 2</xref> and <xref ref-type="table" rid="table3">Table 3</xref></p><table-wrap id="table2" ><label><xref ref-type="table" rid="table2">Table 2</xref></label><caption><title> Test functions</title></caption><table><tbody><thead><tr><th align="center" valign="middle" >Function No.</th><th align="center" valign="middle" >f ( s )</th><th align="center" valign="middle" >f ( t )</th></tr></thead><tr><td align="center" valign="middle" >1</td><td align="center" valign="middle" >1 1 + s 2</td><td align="center" valign="middle" >sin ( t )</td></tr><tr><td align="center" valign="middle" >2</td><td align="center" valign="middle" >1 ( s + 1 ) 2</td><td align="center" valign="middle" >t e − t</td></tr><tr><td align="center" valign="middle" >3</td><td align="center" valign="middle" >1 s 2</td><td align="center" valign="middle" >t</td></tr><tr><td align="center" valign="middle" >4</td><td align="center" valign="middle" >1 s</td><td align="center" valign="middle" >1 π t</td></tr><tr><td align="center" valign="middle" >5</td><td align="center" valign="middle" >ln s s</td><td align="center" valign="middle" >− ( ln t + γ )</td></tr><tr><td align="center" valign="middle" >6</td><td align="center" valign="middle" >1 s</td><td align="center" valign="middle" >1</td></tr><tr><td align="center" valign="middle" >7</td><td align="center" valign="middle" >1 s 2 + 1</td><td align="center" valign="middle" >J ( 0, t )</td></tr><tr><td align="center" valign="middle" >8</td><td align="center" valign="middle" >e s K ( 1, s ) s</td><td align="center" valign="middle" >t ( t + 2 )</td></tr><tr><td align="center" valign="middle" >9</td><td align="center" valign="middle" >1 s + 0.5</td><td align="center" valign="middle" >e − t 2</td></tr><tr><td align="center" valign="middle" >10</td><td align="center" valign="middle" >1 ( s + 0.2 ) 2 + 1</td><td align="center" valign="middle" >e − 0.2 t sin ( t )</td></tr><tr><td align="center" valign="middle" >11</td><td align="center" valign="middle" >arctan ( 1 s )</td><td align="center" valign="middle" >sin ( t ) t</td></tr></tbody></table></table-wrap><table-wrap id="table3" ><label><xref ref-type="table" rid="table3">Table 3</xref></label><caption><title> Test functions continued</title></caption><table><tbody><thead><tr><th align="center" valign="middle" >Function No.</th><th align="center" valign="middle" >f ( s )</th><th align="center" valign="middle" >f ( t )</th></tr></thead><tr><td align="center" valign="middle" >12</td><td align="center" valign="middle" >1 s + s + 1</td><td align="center" valign="middle" >1 − e − t 2 π t 3</td></tr><tr><td align="center" valign="middle" >13</td><td align="center" valign="middle" >1 s ( 1 + s )</td><td align="center" valign="middle" >e t erfc ( t )</td></tr><tr><td align="center" valign="middle" >14</td><td align="center" valign="middle" >e − 2 s</td><td align="center" valign="middle" >e − 1 t π t 3</td></tr><tr><td align="center" valign="middle" >15</td><td align="center" valign="middle" >e − 1 4 s s 3 2</td><td align="center" valign="middle" >2 sin ( t ) π</td></tr><tr><td align="center" valign="middle" >16</td><td align="center" valign="middle" >log ( 1 + 1 s )</td><td align="center" valign="middle" >1 − e − t t</td></tr><tr><td align="center" valign="middle" >17</td><td align="center" valign="middle" >arccos ( s − 1 ) s ( s − 2 )</td><td align="center" valign="middle" >e t K ( 0, t )</td></tr><tr><td align="center" valign="middle" >18</td><td align="center" valign="middle" >e − 1 s s</td><td align="center" valign="middle" >cos ( 2 t ) π t</td></tr><tr><td align="center" valign="middle" >19</td><td align="center" valign="middle" >1 s + s 2 + 1</td><td align="center" valign="middle" >2 sin ( t ) 2 t 3 2 π</td></tr></tbody></table></table-wrap><p>below. Functions 1 - 11 and 18 are taken from the 16 functions tested by Davies and Martin [<xref ref-type="bibr" rid="scirp.117248-ref16">16</xref>]. The remaining functions are selected from those tested by Abate-Valko [<xref ref-type="bibr" rid="scirp.117248-ref1">1</xref>].</p><p>The first set of tests were carried out using 16 digits double precision. These results are shown in <xref ref-type="table" rid="table4">Table 4</xref>. The Fourier, Logan and Abate-Valko schemes were run with weights M = 50 , M = 100 and M = 200 , however for brevity we include only the result for M = 200 .</p><p>For the Stehfest and the Salzer-Gaver algorithms best results were obtained with weights of M = 16 and M = 8 respectively. This is in keeping with Stehfest’s observations on the instability of this method as M increases above an optimal level [<xref ref-type="bibr" rid="scirp.117248-ref5">5</xref>].</p><p>In multi-precision, the number of precision digits N for Abate-Valko were set equal to N = M [<xref ref-type="bibr" rid="scirp.117248-ref1">1</xref>] and for the Slazer-Gaver, and Stehfest schemes, best results were obtained when the number of precision digits was set equal to N = 2 M .</p><p>L = ∑ i = 1 30 [ f ( t i ) − f ˜ ( t i ) ] 2 30 (64)</p><p>And</p><table-wrap id="table4" ><label><xref ref-type="table" rid="table4">Table 4</xref></label><caption><title> Standard double precision</title></caption><table><tbody><thead><tr><th align="center" valign="middle"  rowspan="2"  >Function</th><th align="center" valign="middle"  colspan="2"  >Fourier</th><th align="center" valign="middle"  colspan="2"  >Logan</th><th align="center" valign="middle"  colspan="2"  >Valko</th><th align="center" valign="middle"  colspan="2"  >Stehfest</th><th align="center" valign="middle"  colspan="2"  >Salzer-Gaver</th></tr></thead><tr><td align="center" valign="middle" >L</td><td align="center" valign="middle" >L<sub>e</sub></td><td align="center" valign="middle" >L</td><td align="center" valign="middle" >L<sub>e</sub></td><td align="center" valign="middle" >L</td><td align="center" valign="middle" >L<sub>e</sub></td><td align="center" valign="middle" >L</td><td align="center" valign="middle" >L<sub>e</sub></td><td align="center" valign="middle" >L</td><td align="center" valign="middle" >L<sub>e</sub></td></tr><tr><td align="center" valign="middle" >1</td><td align="center" valign="middle" >1.5 (−4)</td><td align="center" valign="middle" >2.8 (−4)</td><td align="center" valign="middle" >3.7 (−9)</td><td align="center" valign="middle" >1.2 (−11)</td><td align="center" valign="middle" >3.0 (−11)</td><td align="center" valign="middle" >9.4 (−14)</td><td align="center" valign="middle" >1.4 (−3)</td><td align="center" valign="middle" >2.6 (−5)</td><td align="center" valign="middle" >2.0 (−2)</td><td align="center" valign="middle" >9.1 (−4)</td></tr><tr><td align="center" valign="middle" >2</td><td align="center" valign="middle" >6.1 (−4)</td><td align="center" valign="middle" >1.4 (−4)</td><td align="center" valign="middle" >1.8 (−9)</td><td align="center" valign="middle" >2.7 (−10)</td><td align="center" valign="middle" >1.0 (−11)</td><td align="center" valign="middle" >3.9 (−14)</td><td align="center" valign="middle" >8.9 (−6)</td><td align="center" valign="middle" >8.9 (−6)</td><td align="center" valign="middle" >2.8 (−6)</td><td align="center" valign="middle" >3.2 (−6)</td></tr><tr><td align="center" valign="middle" >3</td><td align="center" valign="middle" >1.2 (−3)</td><td align="center" valign="middle" >1.2 (−3)</td><td align="center" valign="middle" >7.5 (−9)</td><td align="center" valign="middle" >2.3 (−11)</td><td align="center" valign="middle" >4.4 (−11)</td><td align="center" valign="middle" >1.4 (−13)</td><td align="center" valign="middle" >7.0 (−8)</td><td align="center" valign="middle" >7.1 (−8)</td><td align="center" valign="middle" >1.1 (−8)</td><td align="center" valign="middle" >1.1 (−8)</td></tr><tr><td align="center" valign="middle" >4</td><td align="center" valign="middle" >7.3 (−2)</td><td align="center" valign="middle" >8.4 (1.0)</td><td align="center" valign="middle" >7.4 (−9)</td><td align="center" valign="middle" >2.3 (−11)</td><td align="center" valign="middle" >4.8 (−11)</td><td align="center" valign="middle" >1.7 (−13)</td><td align="center" valign="middle" >5.4 (−8)</td><td align="center" valign="middle" >6.2 (−7)</td><td align="center" valign="middle" >2.8 (−6)</td><td align="center" valign="middle" >3.2 (−6)</td></tr><tr><td align="center" valign="middle" >5</td><td align="center" valign="middle" >6.8 (−2)</td><td align="center" valign="middle" >6.9 (−2)</td><td align="center" valign="middle" >4.1 (−11)</td><td align="center" valign="middle" >1.2 (−11)</td><td align="center" valign="middle" >6.4 (−12)</td><td align="center" valign="middle" >2.2 (−14)</td><td align="center" valign="middle" >2.2 (−8)</td><td align="center" valign="middle" >1.4 (−7)</td><td align="center" valign="middle" >2.3 (−5)</td><td align="center" valign="middle" >8.5 (−5)</td></tr><tr><td align="center" valign="middle" >6</td><td align="center" valign="middle" >6.1 (−4)</td><td align="center" valign="middle" >6.1 (−4)</td><td align="center" valign="middle" >7.5 (−9)</td><td align="center" valign="middle" >2.3 (−11)</td><td align="center" valign="middle" >6.5 (−11)</td><td align="center" valign="middle" >2.1 (−13)</td><td align="center" valign="middle" >0.0 (0)</td><td align="center" valign="middle" >0.0 (−)</td><td align="center" valign="middle" >8.7 (−15)</td><td align="center" valign="middle" >4.8 (−14)</td></tr><tr><td align="center" valign="middle" >7</td><td align="center" valign="middle" >2.8 (−4)</td><td align="center" valign="middle" >3.4 (−4)</td><td align="center" valign="middle" >Fail</td><td align="center" valign="middle" >Fail</td><td align="center" valign="middle" >Fail</td><td align="center" valign="middle" >Fail</td><td align="center" valign="middle" >1.9 (−2)</td><td align="center" valign="middle" >6.7 (−3)</td><td align="center" valign="middle" >1.7 (−2)</td><td align="center" valign="middle" >5.1 (−3)</td></tr><tr><td align="center" valign="middle" >8</td><td align="center" valign="middle" >Fail</td><td align="center" valign="middle" >Fail</td><td align="center" valign="middle" >1.2 (−8)</td><td align="center" valign="middle" >3.8 (−11)</td><td align="center" valign="middle" >8.1 (−11)</td><td align="center" valign="middle" >2.7 (−13)</td><td align="center" valign="middle" >9.2 (−8)</td><td align="center" valign="middle" >1.2 (−7)</td><td align="center" valign="middle" >6.3 (−4)</td><td align="center" valign="middle" >6.3 (−4)</td></tr><tr><td align="center" valign="middle" >9</td><td align="center" valign="middle" >5.7 (−4)</td><td align="center" valign="middle" >4.7 (−4)</td><td align="center" valign="middle" >4.6 (−9)</td><td align="center" valign="middle" >1.6 (−11)</td><td align="center" valign="middle" >3.3 (−11)</td><td align="center" valign="middle" >1.2 (−13)</td><td align="center" valign="middle" >1.2 (−6)</td><td align="center" valign="middle" >4.7 (−6)</td><td align="center" valign="middle" >1.9 (−8)</td><td align="center" valign="middle" >2.8 (−7)</td></tr><tr><td align="center" valign="middle" >10</td><td align="center" valign="middle" >6.1 (−4)</td><td align="center" valign="middle" >1.9 (−4)</td><td align="center" valign="middle" >3.1 (−9)</td><td align="center" valign="middle" >9.5 (−12)</td><td align="center" valign="middle" >3.0 (−11)</td><td align="center" valign="middle" >9.7 (−14)</td><td align="center" valign="middle" >9.2 (−3)</td><td align="center" valign="middle" >4.8 (−3)</td><td align="center" valign="middle" >5.2 (−4)</td><td align="center" valign="middle" >2.9 (−5)</td></tr><tr><td align="center" valign="middle" >11</td><td align="center" valign="middle" >2.8 (−4)</td><td align="center" valign="middle" >3.8 (−4)</td><td align="center" valign="middle" >5.9 (−9)</td><td align="center" valign="middle" >1.8 (−11)</td><td align="center" valign="middle" >3.4 (−11)</td><td align="center" valign="middle" >1.2 (−13)</td><td align="center" valign="middle" >7.4 (−3)</td><td align="center" valign="middle" >2.7 (−3)</td><td align="center" valign="middle" >6.5 (−3)</td><td align="center" valign="middle" >1.9 (−3)</td></tr></tbody></table></table-wrap><p>L e = ∑ i = 1 30 [ f ( t i ) − f ˜ ( t 1 ) ] 2 e − t i ∑ i = 1 30 e − t i (65)</p><p>where f ( t ) is the analytical solution and f ˜ ( t ) is the numerical solution. Hence L is the root-mean-square error and L e is the same as L but weighted by the factor e − t [<xref ref-type="bibr" rid="scirp.117248-ref14">14</xref>].</p><p>All computations were done using a 64-bit operating system with an Intel(R) Core(TM) i7-855ou CPU processor. The algorithms were implemented in Maple 2018 using the Maple’s digits command to set the required precision.</p><sec id="s5_1"><title>5.1. Standard Double Precision</title><p><xref ref-type="table" rid="table4">Table 4</xref> and <xref ref-type="table" rid="table5">Table 5</xref> show that when compared with the other four algorithms, the Fourier series method performs with the least accuracy on all the functions tested. It also fails to reconstruct functions 8, 15, 17 and 18, with poor results for functions 4, 5 and 12.</p><p>However, for the functions which it successfully reconstructs it does so with a RMS accuracy of between L= 3.6(−5) and 1.2(−2). We believe that this scheme will improve greatly when an acceleration scheme is applied. This is an issue we intend to investigate in our future work.</p><p>With the exception of function 7, J 0 ( t ) , Logan’s algorithm successfully inverts all the functions given in <xref ref-type="table" rid="table2">Table 2</xref> and <xref ref-type="table" rid="table3">Table 3</xref> with very good accuracy. We found that in SDP best results are obtained by equating a = 1 in (50). <xref ref-type="table" rid="table3">Table 3</xref> and <xref ref-type="table" rid="table4">Table 4</xref> show that for these functions the RMS error varies between 3.6(−8) to 8.4(−12).</p><p>Except for function 7 the J 0 ( t ) , the Abate-Valko scheme successfully inverts all the functions in <xref ref-type="table" rid="table3">Table 3</xref> and <xref ref-type="table" rid="table4">Table 4</xref>. Moreover, it does so with greater</p><table-wrap id="table5" ><label><xref ref-type="table" rid="table5">Table 5</xref></label><caption><title> Standard double precision continued</title></caption><table><tbody><thead><tr><th align="center" valign="middle"  rowspan="2"  >Function</th><th align="center" valign="middle"  colspan="2"  >Fourier</th><th align="center" valign="middle"  colspan="2"  >Logan</th><th align="center" valign="middle"  colspan="2"  >Valko</th><th align="center" valign="middle"  colspan="2"  >Stehfest</th><th align="center" valign="middle"  colspan="2"  >Salzer-Gaver</th></tr></thead><tr><td align="center" valign="middle" >L</td><td align="center" valign="middle" >L<sub>e</sub></td><td align="center" valign="middle" >L</td><td align="center" valign="middle" >L<sub>e</sub></td><td align="center" valign="middle" >L</td><td align="center" valign="middle" >L<sub>e</sub></td><td align="center" valign="middle" >L</td><td align="center" valign="middle" >L<sub>e</sub></td><td align="center" valign="middle" >L</td><td align="center" valign="middle" >L<sub>e</sub></td></tr><tr><td align="center" valign="middle" >12</td><td align="center" valign="middle" >2.0 (−1)</td><td align="center" valign="middle" >4.2 (−1)</td><td align="center" valign="middle" >3.1 (−9)</td><td align="center" valign="middle" >9.5 (−12)</td><td align="center" valign="middle" >1.6 (−11)</td><td align="center" valign="middle" >6.2 (−14)</td><td align="center" valign="middle" >6.2 (−8)</td><td align="center" valign="middle" >2.0 (−8)</td><td align="center" valign="middle" >8.2 (−8)</td><td align="center" valign="middle" >1.4 (−6)</td></tr><tr><td align="center" valign="middle" >13</td><td align="center" valign="middle" >3.1 (−3)</td><td align="center" valign="middle" >1.6 (−3)</td><td align="center" valign="middle" >3.7 (−9)</td><td align="center" valign="middle" >1.2 (−11)</td><td align="center" valign="middle" >2.7 (−11)</td><td align="center" valign="middle" >8.9 (−14)</td><td align="center" valign="middle" >8.6 (−7)</td><td align="center" valign="middle" >4.0 (−7)</td><td align="center" valign="middle" >3.3 (−7)</td><td align="center" valign="middle" >3.7 (−7)</td></tr><tr><td align="center" valign="middle" >14</td><td align="center" valign="middle" >6.2 (−5)</td><td align="center" valign="middle" >3.6 (−5)</td><td align="center" valign="middle" >3.6 (−8)</td><td align="center" valign="middle" >1.2 (−7)</td><td align="center" valign="middle" >6.2 (−12)</td><td align="center" valign="middle" >1.3 (−13)</td><td align="center" valign="middle" >1.3 (−6)</td><td align="center" valign="middle" >1.7 (−5)</td><td align="center" valign="middle" >1.6 (−6)</td><td align="center" valign="middle" >2.2 (−5)</td></tr><tr><td align="center" valign="middle" >15</td><td align="center" valign="middle" >Fail</td><td align="center" valign="middle" >Fail</td><td align="center" valign="middle" >3.3 (−9)</td><td align="center" valign="middle" >1.0 (−11)</td><td align="center" valign="middle" >3.9 (−11)</td><td align="center" valign="middle" >1.2 (−13)</td><td align="center" valign="middle" >5.7 (−7)</td><td align="center" valign="middle" >1.0 (−7)</td><td align="center" valign="middle" >7.9 (−6)</td><td align="center" valign="middle" >1.9 (−5)</td></tr><tr><td align="center" valign="middle" >16</td><td align="center" valign="middle" >5.8 (−4)</td><td align="center" valign="middle" >4.3 (−4)</td><td align="center" valign="middle" >5.2 (−9)</td><td align="center" valign="middle" >1.6 (−11)</td><td align="center" valign="middle" >2.5 (−12)</td><td align="center" valign="middle" >9.1 (−14)</td><td align="center" valign="middle" >2.2 (−8)</td><td align="center" valign="middle" >1.4 (−7)</td><td align="center" valign="middle" >4.9 (−7)</td><td align="center" valign="middle" >8.8 (−6)</td></tr><tr><td align="center" valign="middle" >17</td><td align="center" valign="middle" >Fail</td><td align="center" valign="middle" >Fail</td><td align="center" valign="middle" >1.2 (−8)</td><td align="center" valign="middle" >3.9 (−11)</td><td align="center" valign="middle" >7.3 (−11)</td><td align="center" valign="middle" >2.5 (−13)</td><td align="center" valign="middle" >6.0 (−8)</td><td align="center" valign="middle" >3.0 (−6)</td><td align="center" valign="middle" >2.6 (−6)</td><td align="center" valign="middle" >1.1 (−5)</td></tr><tr><td align="center" valign="middle" >18</td><td align="center" valign="middle" >Fail</td><td align="center" valign="middle" >Fail</td><td align="center" valign="middle" >2.7 (−9)</td><td align="center" valign="middle" >8.4 (−12)</td><td align="center" valign="middle" >1.7 (−11)</td><td align="center" valign="middle" >6.3 (−14)</td><td align="center" valign="middle" >2.9 (−5)</td><td align="center" valign="middle" >1.6 (−6)</td><td align="center" valign="middle" >5.9 (−6)</td><td align="center" valign="middle" >3.4 (−6)</td></tr></tbody></table></table-wrap><table-wrap id="table6" ><label><xref ref-type="table" rid="table6">Table 6</xref></label><caption><title> Multi-Precision N = 200</title></caption><table><tbody><thead><tr><th align="center" valign="middle"  rowspan="2"  >Function</th><th align="center" valign="middle"  colspan="2"  >Logan</th><th align="center" valign="middle"  colspan="2"  >Valko</th><th align="center" valign="middle"  colspan="2"  >Stehfest</th><th align="center" valign="middle"  colspan="2"  >Salzer-Gaver</th></tr></thead><tr><td align="center" valign="middle" >L</td><td align="center" valign="middle" >L<sub>e</sub></td><td align="center" valign="middle" >L</td><td align="center" valign="middle" >L<sub>e</sub></td><td align="center" valign="middle" >L</td><td align="center" valign="middle" >L<sub>e</sub></td><td align="center" valign="middle" >L</td><td align="center" valign="middle" >L<sub>e</sub></td></tr><tr><td align="center" valign="middle" >1</td><td align="center" valign="middle" >6.2 (−63)</td><td align="center" valign="middle" >1.1 (−63)</td><td align="center" valign="middle" >6.9 (−110)</td><td align="center" valign="middle" >1.3 (−110)</td><td align="center" valign="middle" >6.1 (−41)</td><td align="center" valign="middle" >8.5 (−43)</td><td align="center" valign="middle" >7.6 (−124)</td><td align="center" valign="middle" >1.0 (−125)</td></tr><tr><td align="center" valign="middle" >2</td><td align="center" valign="middle" >7.5 (−63)</td><td align="center" valign="middle" >1.2 (−63)</td><td align="center" valign="middle" >6.0 (−110)</td><td align="center" valign="middle" >1.2 (−110)</td><td align="center" valign="middle" >7.1 (−77)</td><td align="center" valign="middle" >9.7 (−79)</td><td align="center" valign="middle" >1.4 (−184)</td><td align="center" valign="middle" >2.0 (−184)</td></tr><tr><td align="center" valign="middle" >3</td><td align="center" valign="middle" >7.5 (−63)</td><td align="center" valign="middle" >1.2 (−63)</td><td align="center" valign="middle" >6.9 (−110)</td><td align="center" valign="middle" >1.3 (−110)</td><td align="center" valign="middle" >5.0 (−92)</td><td align="center" valign="middle" >5.0 (−92)</td><td align="center" valign="middle" >3.9 (−184)</td><td align="center" valign="middle" >3.9 (−184)</td></tr><tr><td align="center" valign="middle" >4</td><td align="center" valign="middle" >1.2 (−60)</td><td align="center" valign="middle" >2.5 (−60)</td><td align="center" valign="middle" >3.3 (−107)</td><td align="center" valign="middle" >6.9 (−107)</td><td align="center" valign="middle" >6.0 (−94)</td><td align="center" valign="middle" >7.0 (−93)</td><td align="center" valign="middle" >5.2 (−132)</td><td align="center" valign="middle" >6.0 (−132))</td></tr><tr><td align="center" valign="middle" >5</td><td align="center" valign="middle" >1.1 (−60)</td><td align="center" valign="middle" >1.7 (−60)</td><td align="center" valign="middle" >2.0 (−118)</td><td align="center" valign="middle" >2.8 (−118)</td><td align="center" valign="middle" >4.8 (−93)</td><td align="center" valign="middle" >2.6 (−92)</td><td align="center" valign="middle" >1.1 (−293)</td><td align="center" valign="middle" >2.0 (−292)</td></tr><tr><td align="center" valign="middle" >6</td><td align="center" valign="middle" >3.6 (−61)</td><td align="center" valign="middle" >3.6 (−61)</td><td align="center" valign="middle" >4.5 (−108)</td><td align="center" valign="middle" >4.5 (−108)</td><td align="center" valign="middle" >0.0 (0)</td><td align="center" valign="middle" >0.0 (0)</td><td align="center" valign="middle" >2.0 (−293)</td><td align="center" valign="middle" >1.1 (−292)</td></tr><tr><td align="center" valign="middle" >8</td><td align="center" valign="middle" >8.3 (−62)</td><td align="center" valign="middle" >3.4 (−62)</td><td align="center" valign="middle" >3.6 (−119)</td><td align="center" valign="middle" >1.5 (−119)</td><td align="center" valign="middle" >2.0 (−72)</td><td align="center" valign="middle" >7.4 (−74)</td><td align="center" valign="middle" >3.8 (−133)</td><td align="center" valign="middle" >1.1 (−132)</td></tr><tr><td align="center" valign="middle" >9</td><td align="center" valign="middle" >3.6 (−61)</td><td align="center" valign="middle" >3.6 (−61)</td><td align="center" valign="middle" >4.5 (−108)</td><td align="center" valign="middle" >4.5 (−108)</td><td align="center" valign="middle" >2.5 (−94)</td><td align="center" valign="middle" >3.5 (−93)</td><td align="center" valign="middle" >6.0 (−182)</td><td align="center" valign="middle" >2.1 (−184)</td></tr><tr><td align="center" valign="middle" >10</td><td align="center" valign="middle" >6.5 (−63)</td><td align="center" valign="middle" >1.1 (−63)</td><td align="center" valign="middle" >6.8 (−110)</td><td align="center" valign="middle" >1.2 (−110)</td><td align="center" valign="middle" >1.1 (−45)</td><td align="center" valign="middle" >1.5 (−47)</td><td align="center" valign="middle" >1.1 (−128)</td><td align="center" valign="middle" >1.5 (−130)</td></tr><tr><td align="center" valign="middle" >11</td><td align="center" valign="middle" >3.6 (−61)</td><td align="center" valign="middle" >3.6 (−61)</td><td align="center" valign="middle" >4.5 (−108)</td><td align="center" valign="middle" >4.5 (−108)</td><td align="center" valign="middle" >1.2 (−42)</td><td align="center" valign="middle" >1.6 (−44)</td><td align="center" valign="middle" >3.1 (−126)</td><td align="center" valign="middle" >4.2 (−128)</td></tr></tbody></table></table-wrap><table-wrap id="table7" ><label><xref ref-type="table" rid="table7">Table 7</xref></label><caption><title> Multi-Precision continued N = 200</title></caption><table><tbody><thead><tr><th align="center" valign="middle"  rowspan="2"  >Function</th><th align="center" valign="middle"  colspan="2"  >Logan</th><th align="center" valign="middle"  colspan="2"  >Valko</th><th align="center" valign="middle"  colspan="2"  >Stehfest</th><th align="center" valign="middle"  colspan="2"  >Salzer-Gaver</th></tr></thead><tr><td align="center" valign="middle" >L</td><td align="center" valign="middle" >L<sub>e</sub></td><td align="center" valign="middle" >L</td><td align="center" valign="middle" >L<sub>e</sub></td><td align="center" valign="middle" >L</td><td align="center" valign="middle" >L<sub>e</sub></td><td align="center" valign="middle" >L</td><td align="center" valign="middle" >L<sub>e</sub></td></tr><tr><td align="center" valign="middle" >12</td><td align="center" valign="middle" >5.9 (−61)</td><td align="center" valign="middle" >1.3 (−60)</td><td align="center" valign="middle" >6.9 (−110)</td><td align="center" valign="middle" >1.3 (−110)</td><td align="center" valign="middle" >6.1 (−41)</td><td align="center" valign="middle" >8.5 (−43)</td><td align="center" valign="middle" >3.4 (−132)</td><td align="center" valign="middle" >4.4 (−131)</td></tr><tr><td align="center" valign="middle" >13</td><td align="center" valign="middle" >3.0 (−61)</td><td align="center" valign="middle" >3.4 (−61)</td><td align="center" valign="middle" >6.0 (−110)</td><td align="center" valign="middle" >1.2 (−110)</td><td align="center" valign="middle" >7.1 (−77)</td><td align="center" valign="middle" >9.7 (−79)</td><td align="center" valign="middle" >1.6 (−133)</td><td align="center" valign="middle" >2.9 (−133)</td></tr><tr><td align="center" valign="middle" >14</td><td align="center" valign="middle" >7.4 (−63)</td><td align="center" valign="middle" >2.0 (−64)</td><td align="center" valign="middle" >6.9 (−110)</td><td align="center" valign="middle" >1.3 (−110)</td><td align="center" valign="middle" >5.0 (−92)</td><td align="center" valign="middle" >5.0 (−92)</td><td align="center" valign="middle" >3.4 (−102)</td><td align="center" valign="middle" >6.5 (−101)</td></tr><tr><td align="center" valign="middle" >15</td><td align="center" valign="middle" >6.7 (−62)</td><td align="center" valign="middle" >2.7 (−62)</td><td align="center" valign="middle" >3.3 (−107)</td><td align="center" valign="middle" >6.9 (−107)</td><td align="center" valign="middle" >6.0 (−94)</td><td align="center" valign="middle" >7.0 (−93)</td><td align="center" valign="middle" >1.3 (−133)</td><td align="center" valign="middle" >2.6 (−133))</td></tr><tr><td align="center" valign="middle" >16</td><td align="center" valign="middle" >3.6 (−61)</td><td align="center" valign="middle" >3.6 (−61)</td><td align="center" valign="middle" >2.0 (−118)</td><td align="center" valign="middle" >2.8 (−118)</td><td align="center" valign="middle" >4.8 (−93)</td><td align="center" valign="middle" >2.6 (−92)</td><td align="center" valign="middle" >2.5 (−131)</td><td align="center" valign="middle" >3.3 (−130)</td></tr><tr><td align="center" valign="middle" >17</td><td align="center" valign="middle" >1.4 (−60)</td><td align="center" valign="middle" >2.0 (−60)</td><td align="center" valign="middle" >2.3 (−107)</td><td align="center" valign="middle" >3.1 (−107)</td><td align="center" valign="middle" >0.0 (0)</td><td align="center" valign="middle" >0.0 (0)</td><td align="center" valign="middle" >8.5 (−131)</td><td align="center" valign="middle" >3.5 (−132)</td></tr><tr><td align="center" valign="middle" >18</td><td align="center" valign="middle" >1.1 (−60)</td><td align="center" valign="middle" >2.5 (−60)</td><td align="center" valign="middle" >3.2 (−107)</td><td align="center" valign="middle" >6.9 (−107)</td><td align="center" valign="middle" >1.4 (−41)</td><td align="center" valign="middle" >1.9 (−43)</td><td align="center" valign="middle" >6.3 (−132)</td><td align="center" valign="middle" >6.8 (−131)</td></tr><tr><td align="center" valign="middle" >19</td><td align="center" valign="middle" >8.3 (−62)</td><td align="center" valign="middle" >3.4 (−62)</td><td align="center" valign="middle" >3.6 (−119)</td><td align="center" valign="middle" >1.5 (−119)</td><td align="center" valign="middle" >2.0 (−72)</td><td align="center" valign="middle" >7.4 (−74)</td><td align="center" valign="middle" >3.8 (−133)</td><td align="center" valign="middle" >1.1 (−132)</td></tr></tbody></table></table-wrap><p>accuracy than the Logan scheme. The tables show that the RMS error varied between 6.5(−11) and 6.2(−12).</p><p><xref ref-type="table" rid="table3">Table 3</xref> and <xref ref-type="table" rid="table4">Table 4</xref> show that the Stehfest algorithm shows poor accuracy when inverting functions 1, 7, 10 and 11. For these functions the RMS error varies between 2.01(−2) to 9.2(−3). Its poor performance is due to the fact that the Stehfest algorithm has difficulty inverting functions of a cyclic nature [<xref ref-type="bibr" rid="scirp.117248-ref5">5</xref>]. However, it inverts the remaining functions with good accuracy with a RMS error of between 0 to 2.9(−5). <xref ref-type="table" rid="table3">Table 3</xref> and <xref ref-type="table" rid="table4">Table 4</xref> shows that the Salzer-Gaver algorithm shows poor accuracy for functions 1, 7, 10 and 11. These are the very same functions that the Stehfest algorithm has problems inverting. Again this is due to the difficulties it encounters when inverting cyclic functions. It inverts the remaining functions with less accuracy than the Stehfest with an RMS error varying between 10(−15) to 10(−5).</p></sec><sec id="s5_2"><title>5.2. Multi Precision</title><p>With the exception of function 7, the Logan and Abate-Valko algorithms successfully inverted the remaining functions to a high degree of accuracy, see <xref ref-type="table" rid="table6">Table 6</xref> and <xref ref-type="table" rid="table7">Table 7</xref>. Duffy [<xref ref-type="bibr" rid="scirp.117248-ref14">14</xref>] also remarks that when using the Talbot contour he had difficulties accurately inverting the Bessel function. This may related to the combination of the singularity on the imaginary axis and the branching nature of the square root function.</p><p>Abate-Valko [<xref ref-type="bibr" rid="scirp.117248-ref1">1</xref>] stated that they were able to overcome this by increasing the weights and hence the precision as a function of t. However, we were unable to replicate their results for this function.</p><p>Overall, the Abate-Valko scheme showed far greater accuracy than Logan’s across all the functions tested. However, Logan’s algorithm was still able to produce highly accurate results with RMS errors varying between 10(−60) to 10(−63). Moreover, <xref ref-type="table" rid="table8">Table 8</xref> shows that Logan’s scheme was able to perform the inversion of these functions with shorter elapsed times.</p><p>The Stehfset and Salzer-Gaver algorithms were able to invert all the functions to a high degree of accuracy. The Salzer-Gaver scheme was in general about twice as accurate as the Stehfest algorithm which, was less accurate than Abate-Valko’s scheme. Nevertheless, the Stehfest scheme inverted the functions</p><table-wrap id="table8" ><label><xref ref-type="table" rid="table8">Table 8</xref></label><caption><title> Elapsed time τ for t = 100 </title></caption><table><tbody><thead><tr><th align="center" valign="middle"  rowspan="2"  >Function</th><th align="center" valign="middle" >Logan</th><th align="center" valign="middle" >Valko</th><th align="center" valign="middle" >Stehfest</th><th align="center" valign="middle" >Salzer-Gaver</th></tr></thead><tr><td align="center" valign="middle" >τ</td><td align="center" valign="middle" >τ</td><td align="center" valign="middle" >τ</td><td align="center" valign="middle" >τ</td></tr><tr><td align="center" valign="middle" >2</td><td align="center" valign="middle" >0.89</td><td align="center" valign="middle" >1.44</td><td align="center" valign="middle" >0.43</td><td align="center" valign="middle" >2.37</td></tr><tr><td align="center" valign="middle" >8</td><td align="center" valign="middle" >0.55</td><td align="center" valign="middle" >0.88</td><td align="center" valign="middle" >0.41</td><td align="center" valign="middle" >3.06</td></tr><tr><td align="center" valign="middle" >11</td><td align="center" valign="middle" >0.94</td><td align="center" valign="middle" >3.87</td><td align="center" valign="middle" >1.74</td><td align="center" valign="middle" >2.56</td></tr><tr><td align="center" valign="middle" >13</td><td align="center" valign="middle" >0.72</td><td align="center" valign="middle" >0.94</td><td align="center" valign="middle" >0.41</td><td align="center" valign="middle" >0.99</td></tr><tr><td align="center" valign="middle" >18</td><td align="center" valign="middle" >0.56</td><td align="center" valign="middle" >1.05</td><td align="center" valign="middle" >0.52</td><td align="center" valign="middle" >1.27</td></tr></tbody></table></table-wrap><p>well within any generally desired accuracy with the RMS error varying from 0.0 to 10(−41). Moreover, as <xref ref-type="table" rid="table8">Table 8</xref> shows it in terms of the elapsed time it was the fastest of all the algorithms for the most part twice as fast as the Abate-Valko scheme which in turn was at least twice as fast as the Salzer-Gaver scheme.</p></sec></sec><sec id="s6"><title>6. Conclusions</title><p>In standard-double-precision, the Abate-Valko algorithm provides the best results for the numerical reconstructions for the functions tested in this paper. The Fourier algorithm had the worst performance of the five algorithms tested. Both the Stehfest and Salzer-Gaver algorithms had difficulty reconstructing functions of a cyclic nature. None of the algorithms was able to invert the J 0 ( t ) function accurately.</p><p>In multi-precision, the Stehfest and the Salzer-Gaver schemes inverted all the functions with high accuracy. The Logan and Abate-Valko schemes were only able to invert the J 0 ( t ) with limited accuracy. However they were both able to reconstruct all the other functions with a high degree of accuracy. The most accurate algorithm in multi-precision was the Salzer-Gaver scheme. However, as <xref ref-type="table" rid="table8">Table 8</xref> shows it also had the longest elapsed times. On the other hand, the Stehfest algorithm had the shortest elapsed times for the selected functions in <xref ref-type="table" rid="table8">Table 8</xref>. The algorithms that used the Abate-Valko were the most accurate, but Logan could reconstruct the functions with shorter elapsed times. Therefore we conclude that when working in standard-precision Valko’s algorithm performed best. However, in multi-precision, the Stehfest algorithm is best as it inverted all the functions with a high degree of accuracy and the shortest elapsed times.</p></sec><sec id="s7"><title>Conflicts of Interest</title><p>The authors declare no conflicts of interest regarding the publication of this paper.</p></sec><sec id="s8"><title>Cite this paper</title><p>Defreitas, C.L. and Kane, S.J. (2022) The Numerical Inversion of the Laplace Transform in a Multi-Precision Environment. Applied Mathematics, 13, 401-418. https://doi.org/10.4236/am.2022.135027</p></sec></body><back><ref-list><title>References</title><ref id="scirp.117248-ref1"><label>1</label><mixed-citation publication-type="other" xlink:type="simple">Abate, J. and Valkó, P.P. (2004) Multi-Precision Laplace Transform Inversion. International Journal for Numerical Methods in Engineering, 60, 979-993. https://doi.org/10.1002/nme.995</mixed-citation></ref><ref id="scirp.117248-ref2"><label>2</label><mixed-citation publication-type="other" xlink:type="simple">Logan, J.D. (2013) Transport Modeling in Hydrogeochemical Systems, Volume 15. Springer Science &amp; Business Media, Berlin.</mixed-citation></ref><ref id="scirp.117248-ref3"><label>3</label><mixed-citation publication-type="other" xlink:type="simple">Spiegel, M.R. (1965) Schaum’s Outline of Theory and Problems of Laplace Transforms. McGraw-Hill, New York.</mixed-citation></ref><ref id="scirp.117248-ref4"><label>4</label><mixed-citation publication-type="other" xlink:type="simple">Talbot, A. (1979) The Accurate Numerical Inversion of Laplace Transforms. IMA Journal of Applied Mathematics, 23, 97-120. https://doi.org/10.1093/imamat/23.1.97</mixed-citation></ref><ref id="scirp.117248-ref5"><label>5</label><mixed-citation publication-type="other" xlink:type="simple">Stehfest, H. (1970) Algorithm 368: Numerical Inversion of Laplace Transforms [D5]. Communications of the ACM, 13, 47-49. https://doi.org/10.1145/361953.361969</mixed-citation></ref><ref id="scirp.117248-ref6"><label>6</label><mixed-citation publication-type="other" xlink:type="simple">Gaver Jr., D.P. (1966) Observing Stochastic Processes, and Approximate Transform Inversion. Operations Research, 14, 444-459. https://doi.org/10.1287/opre.14.3.444</mixed-citation></ref><ref id="scirp.117248-ref7"><label>7</label><mixed-citation publication-type="other" xlink:type="simple">Wimp, J. (1981) Sequence Transformations and Their Applications. Academic Press, Cambridge.</mixed-citation></ref><ref id="scirp.117248-ref8"><label>8</label><mixed-citation publication-type="other" xlink:type="simple">Crump, K.S. (1976) Numerical Inversion of Laplace Transforms Using a Fourier Series Approximation. Journal of the ACM (JACM), 23, 89-96. https://doi.org/10.1145/321921.321931</mixed-citation></ref><ref id="scirp.117248-ref9"><label>9</label><mixed-citation publication-type="other" xlink:type="simple">Davies, A. and Crann, D. (2004) A Handbook of Essential Mathematical Formulae. University of Hertfordshire Press, Hatfield.</mixed-citation></ref><ref id="scirp.117248-ref10"><label>10</label><mixed-citation publication-type="other" xlink:type="simple">Cohen, A.M. (2007) Numerical Methods for Laplace Transform Inversion, Volume 5. Springer Science &amp; Business Media, Berlin.</mixed-citation></ref><ref id="scirp.117248-ref11"><label>11</label><mixed-citation publication-type="other" xlink:type="simple">Epstein, C.L. and Schotland, J. (2008) The Bad Truth about Laplace’s Transform. SIAM Review, 50, 504-520. https://doi.org/10.1137/060657273</mixed-citation></ref><ref id="scirp.117248-ref12"><label>12</label><mixed-citation publication-type="other" xlink:type="simple">Kuhlman, K.L. (2012) Comparison of Inverse Laplace Transform Algorithms for Laplace-Space Numerical Approaches. Technical Report, Sandia National Laboratories, Albuquerque.</mixed-citation></ref><ref id="scirp.117248-ref13"><label>13</label><mixed-citation publication-type="other" xlink:type="simple">Defreitas, C.L. and Kane, S.J. (2018) The Noise Handling Properties of the Talbot Algorithm for Numerically Inverting the Laplace Transform. Journal of Algorithms &amp; Computational Technology, 13, 1-14. https://doi.org/10.1177/1748301818797069</mixed-citation></ref><ref id="scirp.117248-ref14"><label>14</label><mixed-citation publication-type="other" xlink:type="simple">Duffy, D.G. (1993) On the Numerical Inversion of Laplace Transforms: Comparison of Three New Methods on Characteristic Problems from Applications. ACM Transactions on Mathematical Software (TOMS), 19, 333-359. https://doi.org/10.1145/155743.155788</mixed-citation></ref><ref id="scirp.117248-ref15"><label>15</label><mixed-citation publication-type="other" xlink:type="simple">Narayanan, G.V. and Beskos, D.E. (1982) Numerical Operational Methods for Timedependent Linear Problems. International Journal for Numerical Methods in Engineering, 18, 1829-1854. https://doi.org/10.1002/nme.1620181207</mixed-citation></ref><ref id="scirp.117248-ref16"><label>16</label><mixed-citation publication-type="other" xlink:type="simple">Davies, B. and Martin, B. (1979) Numerical Inversion of the Laplace Transform: A Survey and Comparison of Methods. Journal of Computational Physics, 33, 1-32. https://doi.org/10.1016/0021-9991(79)90025-1</mixed-citation></ref><ref id="scirp.117248-ref17"><label>17</label><mixed-citation publication-type="other" xlink:type="simple">Le Page, W.R. (1980) Complex Variables and the Laplace Transform for Engineers. Courier Corporation, North Chelmsford, MA.</mixed-citation></ref><ref id="scirp.117248-ref18"><label>18</label><mixed-citation publication-type="other" xlink:type="simple">Dubner, H. and Abate, J. (1968) Numerical Inversion of Laplace Transforms by Relating Them to the Finite Fourier Cosine Transform. Journal of the ACM (JACM), 15, 115-123. https://doi.org/10.1145/321439.321446</mixed-citation></ref><ref id="scirp.117248-ref19"><label>19</label><mixed-citation publication-type="other" xlink:type="simple">Simon, R.M., Stroot, M.T. and Weiss, G.H. (1972) Numerical Inversion of Laplace Transforms with Application to Percentage Labeled Mitoses Experiments. Computers and Biomedical Research, 5, 596-607. https://doi.org/10.1016/0010-4809(72)90039-0</mixed-citation></ref><ref id="scirp.117248-ref20"><label>20</label><mixed-citation publication-type="other" xlink:type="simple">Cooley, J.W. and Tukey, J.W. (1965) An Algorithm for the Machine Calculation of Complex Fourier Series. Mathematics of Computation, 19, 297-301. https://doi.org/10.1090/S0025-5718-1965-0178586-1</mixed-citation></ref><ref id="scirp.117248-ref21"><label>21</label><mixed-citation publication-type="other" xlink:type="simple">Cooley, J.W., Lewis, P.A.W. and Welch, P.D. (1970) The Fast Fourier Transform Algorithm: Programming Considerations in the Calculation of Sine, Cosine and Laplace Transforms. Journal of Sound and Vibration, 12, 315-337. https://doi.org/10.1016/0022-460X(70)90075-1</mixed-citation></ref><ref id="scirp.117248-ref22"><label>22</label><mixed-citation publication-type="other" xlink:type="simple">Murli, A. and Rizzardi, M. (1990) Algorithm 682: Talbot’s Method of the Laplace Inversion Problems. ACM Transactions on Mathematical Software (TOMS), 16, 158-168. https://doi.org/10.1145/78928.78932</mixed-citation></ref><ref id="scirp.117248-ref23"><label>23</label><mixed-citation publication-type="other" xlink:type="simple">Bender, C.M. and Orszag, S.A. (2013) Advanced Mathematical Methods for Scientists and Engineers I: Asymptotic Methods and Perturbation Theory. Springer Science &amp; Business Media, Berlin.</mixed-citation></ref></ref-list></back></article>