Inverse Laplace Transform of $F(s)=\frac{1}{\sqrt{s} \coth(\sqrt{s})-1}$.

290 Views Asked by At

I try to find the inverse laplace transform of the function $\displaystyle F(s)=\frac{1}{\sqrt{s} \coth(\sqrt{s})-1}$. I check numerically that this function has no root in the right half complex plane and I used the folowing path. I found that the integral subpath $C_3+C_5$ is equal to $0$. However I am not able to compute the integrals on sub-path $C_2+C_6$ and $C_4$. Could you help me please. Thank you.

Path considered

1

There are 1 best solutions below

0
On

The poles of $F(s)$ are determined by the zeros of its denominator: You will need to solve the transcendental equation $\tanh\sqrt{s}=\sqrt{s}$ numerically. There are infinitely many solutions on the negative $s$-axis as $\tanh\sqrt{s}$ is periodic there. See Sec. IV of arxiv1802.02777 for a related, slighlty more complicated Laplace inversion.

Edit:

We want to determine $f(t)=\mathcal{L}^{-1}\left\{F(s)\right\}$ where $$F(s)=\frac{1}{\sqrt{s}\coth\sqrt{s}-1}.$$ For this, we need to compute the following Bromwich integral $$f(t)=\frac{1}{2\pi i}\int_{S-i\infty}^{S+i\infty}F(s)e^{st}ds,$$ with $S$ such that $F(s)$ has no poles right of $S$. This integral can be written, with the residue theorem, as $$f(t)=\sum_n e^{s_n t} \mathrm{Res}(F,s_n),$$ where $n$ sums over all poles of $F(s)$.

Poles

The poles of $F(s)$ correspond to the zeros of $\sqrt{s}\coth\sqrt{s}-1$, that is, to the solutions to $$\tanh\sqrt{s}=\sqrt{s}.$$

Let's consider the solutions to the above transcendental equation.

  1. For $s>0$, there are no solutions.

  2. $s=0$ is a solution. This pole of $F(s)$ sets the late-time value of $f(t)$.

  3. For $s<0$, I insert $i m=\sqrt{s}$, with $m$ real and positive, and find $\cos (m)=\sin (m)/m$. This new transcendental equation has solutions $m_n$ at $\pi n<m_n<\pi(n+1)$ for $n\ge1$, see the figure. For large $n$, the solutions are close to $m_n\approx (n+1/2)\pi$.

enter image description here

Generated with:

import numpy as np
import matplotlib.pyplot as plt
from scipy import optimize

def g(m):
    return np.sin(m)/m-np.cos(m)

def Root(j):
    return optimize.newton(g, (j+1/2)*np.pi)

roots=[Root(j) for j in range(1,4)]
#print(roots,[(j+1/2)*np.pi for j in range(1,5)])

x=np.linspace(0.01,3.6*np.pi,100)

fig, ax = plt.subplots()
ax.plot(x,np.sin(x)/x,'b',label='sin$(m)/m$')
ax.plot(x,np.cos(x),'r',label='$cos(m)$')
ax.plot([i for i in roots],[np.cos(i) for i in roots],'kx',lw=0)
ax.set(xlabel=r'$m$') 
ax.set_xticks([0., .5*np.pi, np.pi, 1.5*np.pi, 2*np.pi, 2.5*np.pi, 3*np.pi, 3.5*np.pi])
ax.set_xticklabels(labels=["$0$", r"$\frac{1}{2}\pi$",r"$\pi$", r"$\frac{3}{2}\pi$", r"$2\pi$", r"$\frac{5}{2}\pi$", r"$2\pi$", r"$\frac{7}{2}\pi$"])
ax.legend()

Residues

  1. To determine $\mathrm{Res}(F,s=0)$, note that \begin{align} \lim_{s\to 0}\sqrt{s}\coth\sqrt{s}-1&=1+\frac{s}{3}+O(s^2)-1\\ \end{align} Hence, $\mathrm{Res}(F,s=0)=3$.

  2. To determine $\mathrm{Res}(F,s_n=-m_n^2)$, note that \begin{align} \lim_{s\to s_n}g(s)=\frac{d g}{ds}\bigg|_{s=s_n}(s-s_n), \end{align} where we used $g(s_n)=0$ and where \begin{align} \frac{d }{ds}\sqrt{s}\coth\sqrt{s}-1&=\frac{1}{2}\left(\frac{\coth\sqrt{s}}{\sqrt{s}}-\coth^2\sqrt{s}+1\right)\\ \frac{d g}{ds}\bigg|_{s=s_n}&=\frac{1}{2} \end{align} where I used $\coth\sqrt{s_n}=1/\sqrt{s_n}$. Hence, $\mathrm{Res}(F,s=s_n)=2$.

Semi-analytical solution

Combining the above results, I find the following semi-analytic solution $$f(t)=3+2\sum_{n=1} e^{s_n t}, $$ with $s_n=-m_n^2$ determined numerically from $\cos m=\sin(m)/m$. In the figure below you see the above semi-analytic solution with lines. I truncated the sum, which clearly diverges for $t\to0$, at $n=50$ (black) and $n=100$. The dots represent a numerical inversion using the Talbot algorithm.

enter image description here

generated with:

def f(t,r):
    g=0
    for j in range(1,r):
        g+=  np.exp(-Root(j)**2*t)
    return 3+2*g

from mpmath import mp
mp.dps = 25
def F(s):
    den = mp.sqrt(s)*mp.coth(mp.sqrt(s))-1
    return 1/den

fp = lambda s: F(s)

t = np.logspace(-5,0,200)
t2 = np.logspace(-5,0,20)

fig, ax = plt.subplots()
ax.plot(t,[f(i,50)for i in t],   'k',lw=2,label='semi-analytical, 50 terms')
ax.plot(t,[f(i,100)for i in t],  'r--',lw=2,label='100 terms')
ax.plot(t2,[mp.invertlaplace(fp,i,method='talbot') for i in t2],'k',lw=0,marker='o',label='numerical')
ax.set_xscale('log')
ax.set_yscale('log')
ax.set(xlabel=r'$t$', ylabel=r'$f(t)$') 
ax.legend()