contour integral

Green’s function for the 3D wave equation.

October 22, 2025 math and physics play , , , , , , , ,

[Click here for a PDF version of this and related posts]

We’ve now evaluated the 1D Green’s function and 2D Green’s function for the wave equation.

For the sake of completeness, now let’s evaluate the Green’s function for the 3D wave equation operator. Again with \( \Br = \Bx – \Bx’, \tau = t – t’ \) we want the \( \epsilon \rightarrow 0 \) limit of
\begin{equation}\label{eqn:waveEquationGreens:1480}
G_\epsilon(\Br, \tau)
=
\inv{\lr{2 \pi}^4} \int d^3 \Bk d\omega \frac{e^{j \Bk \cdot \Br + j \omega \tau}}{(\omega/c – j \epsilon/c)^2 – \Bk^2}.
\end{equation}
For \(\epsilon > 0 \) this will presumably give us the retarded solution, with advanced for \( \epsilon < 0 \). We are using the nice pole displacement that leaves both poles on the same side of the upper or lower half plane, depending on the sign of \( \epsilon \). Let’s only do the \( \epsilon > 0 \) case by hand. Evaluating the \( \omega \) integral first with an upper half plane contour, we have
\begin{equation}\label{eqn:waveEquationGreens:1500}
\begin{aligned}
G_\epsilon(\Br, \tau)
&=
\frac{c^2}{\lr{2 \pi}^4} \int d^3 \Bk e^{j \Bk \cdot \Br}
\frac{e^{j \omega \tau}}{
\lr{\omega – \lr{ j \epsilon – \Abs{\Bk} c}}
\lr{\omega – \lr{ j \epsilon + \Abs{\Bk} c}}
} \\
&=
\frac{j c^2}{\lr{2 \pi}^3} \Theta(\tau) \int d^3 \Bk e^{j \Bk \cdot \Br}
\lr{
\evalbar{\frac{e^{j \omega \tau}}{\omega – \lr{ j \epsilon – \Abs{\Bk} c}}}{\omega = j \epsilon + \Abs{\Bk} c}
+
\evalbar{\frac{e^{j \omega \tau}}{\omega – \lr{ j \epsilon + \Abs{\Bk} c}}}{\omega = j \epsilon – \Abs{\Bk} c}
} \\
&=
\frac{j c^2}{\lr{2 \pi}^3} \Theta(\tau) e^{-\epsilon \tau} \int d^3 \Bk e^{j \Bk \cdot \Br}
\lr{
\frac{e^{j \Abs{\Bk} c \tau}}{2 \Abs{\Bk} c}

\frac{e^{-j \Abs{\Bk} c \tau}}{2 \Abs{\Bk} c}
} \\
&=
-\frac{c}{\lr{2 \pi}^3} \Theta(\tau) e^{-\epsilon \tau} \int \frac{d^3 \Bk}{\Abs{\Bk}} e^{j \Bk \cdot \Br}
\sin\lr{ \Abs{\Bk} c \tau }.
\end{aligned}
\end{equation}
We can evaluate the \( \epsilon \rightarrow 0 \) limit, and switch to spherical coordinates in k-space. Let \( \Br = r \Be_3 \)
\begin{equation}\label{eqn:waveEquationGreens:1520}
G(\Br, \tau)
=
-\frac{c}{\lr{2 \pi}^3} \Theta(\tau)
\int_{k = 0}^\infty \frac{k^2 dk}{k}
\int_{\phi = 0}^{2 \pi} d\phi
\int_{\theta = 0}^{\pi} \sin\theta d\theta
e^{j k r \cos\theta} \sin\lr{ k c \tau }.
\end{equation}
With \( u = \cos\theta \), this gives
\begin{equation}\label{eqn:waveEquationGreens:1540}
\begin{aligned}
G(\Br, \tau)
&=
\frac{c}{\lr{2 \pi}^2} \Theta(\tau)
\int_{k = 0}^\infty k dk \sin\lr{ k c \tau }
\int_{u = -1}^{1} du
e^{j k r u} \\
&=
\frac{c}{\lr{2 \pi}^2} \Theta(\tau)
\int_{k = 0}^\infty k dk \sin\lr{ k c \tau }
\lr{ \frac{e^{-j k r }}{j k r} – \frac{e^{j k r }}{j k r} } \\
&=
-\frac{c}{2 \pi^2 r} \Theta(\tau) \int_{k = 0}^\infty dk \sin\lr{ k c \tau } \sin\lr{ k r} \\
&=
-\frac{c}{4 \pi^2 r} \Theta(\tau) \int_{k = 0}^\infty dk
\lr{
\cos\lr{ k( c \tau – r ) }

\cos\lr{ k( c \tau + r ) }
} \\
&=
-\frac{c}{8 \pi^2 r} \Theta(\tau) \int_{k = -\infty}^\infty dk
\lr{
\cos\lr{ k( c \tau – r ) }

\cos\lr{ k( c \tau + r ) }
} \\
&=
-\frac{c}{8 \pi^2 r} \Theta(\tau) \int_{-\infty}^\infty dk
\lr{
e^{ j k( c \tau – r ) } – e^{ j k( c \tau + r ) }
} \\
&=
-\frac{c}{4 \pi r} \Theta(\tau)
\lr{
\delta( c \tau – r )

\delta( c \tau + r )
} \\
&=
-\frac{1}{4 \pi r} \Theta(\tau)
\lr{
\delta( \tau – r/c )

\delta( \tau + r/c )
}.
\end{aligned}
\end{equation}
Observe that the second delta function only has a value when \( \tau = -r/c \), but \( \Theta(-r/c) = 0 \). Similarly, the first delta function only has a value for \( \tau = r/c \ge 0 \), where the Heaviside step function is unity. That means we can simplify this to just
\begin{equation}\label{eqn:waveEquationGreens:1560}
\boxed{
G(\Br, \tau) = -\frac{1}{4 \pi \Abs{\Br}} \delta( \tau – \Abs{\Br}/c ),
}
\end{equation}
as expected.

Again, sort of sadly, we can skip all the fun and evaluate most of this in Mathematica. It needs only minor hand-holding to extract the delta function semantics. The retarded derivation is shown in fig. 1, and the advanced derivation in fig. 2.

fig. 1. Retarded 3D Green’s function for the wave equation.

fig. 2. Advanced 3D Green’s function for the wave equation.

Derivation of the 2D Green’s function for the wave equation operator.

October 22, 2025 math and physics play , , , , , , ,

[Click here for a PDF version of this post]

While it was difficult to attempt to verify the 2D Green’s function, it actually turns out to be fairly easy to derive it, provided we pick an alternate pole displacement from the 1D evaluation to make our lives easier.

With \( \Br = \Bx – \Bx’ \), and \( \tau = t – t’ \), and \( \epsilon > 0 \), we can form
\begin{equation}\label{eqn:waveEquationGreens:1340}
G_\epsilon(\Br, \tau) = \frac{c^2}{\lr{2 \pi}^3} \int d^2 \Bk d\omega \frac{ e^{j \Bk \cdot \Br + j \omega \tau}}{\lr{\omega -j \epsilon}^2 – \Bk^2 c^2 }
\end{equation}
This pole displacement has the nice property that both poles live in the upper half plane, so for \( \tau > 0 \), we have
\begin{equation}\label{eqn:waveEquationGreens:1360}
\begin{aligned}
G_\epsilon(\Br, \tau)
&= \frac{c^2}{\lr{2 \pi}^3} \int d^2 \Bk d\omega \frac{ e^{j \Bk \cdot \Br + j \omega \tau}}{
\lr{\omega -\lr{ \Abs{\Bk} c – j \epsilon}}
\lr{\omega -\lr{ -\Abs{\Bk} c – j \epsilon}}
} \\
&=
\Theta(\tau) \frac{c^2 j}{\lr{2 \pi}^2} \int d^2 \Bk e^{j \Bk \cdot \Br}
\lr{
\evalbar{
\frac{e^{ j \omega \tau}}{ \lr{\omega -\lr{ -\Abs{\Bk} c – j \epsilon}} }
}
{\omega = \Abs{\Bk} c – j \epsilon}
+
\evalbar{
\frac{e^{ j \omega \tau}}{ \lr{\omega -\lr{ \Abs{\Bk} c – j \epsilon}} }
}
{\omega = -\Abs{\Bk} c – j \epsilon}
}
\\
&=
\Theta(\tau) \frac{c^2 j}{\lr{2 \pi}^2} \int d^2 \Bk e^{j \Bk \cdot \Br} e^{ -j \epsilon \tau }
\lr{
\frac{e^{ j \Abs{\Bk} c \tau}}{ 2 \Abs{\Bk} c }
+
\frac{e^{ -j \Abs{\Bk} c \tau}}{ -2 \Abs{\Bk} c }
} \\
&=
\Theta(\tau) \frac{j^2 c}{\lr{2 \pi}^2} \int_{k=0}^\infty k dk \int_{\phi=0}^{2 \pi} d\phi e^{j k\Abs{\Br} \cos\phi } e^{ -j \epsilon \tau } \frac{\sin\lr{ k c \tau }}{k}.
\end{aligned}
\end{equation}
We’ve now successfully removed the singularity, and can evaluate the \(\epsilon \rightarrow 0 \) limit. We may also evaluate the \( \phi \) integral, remembering that
\begin{equation}\label{eqn:waveEquationGreens:1380}
\int_0^{2 \pi} e^{j \Abs{a} \cos\phi} d\phi = 2 \pi J_0(\Abs{a}),
\end{equation}
to find
\begin{equation}\label{eqn:waveEquationGreens:1400}
G(\Br, \tau) = -\Theta(\tau) \frac{c}{2 \pi} \int_{k=0}^\infty dk J_0(k\Abs{\Br}) \sin\lr{ k c \tau }.
\end{equation}
This integral yields easily to Mathematica, and we find
\begin{equation}\label{eqn:waveEquationGreens:1420}
G(\Br, \tau) = -\Theta(\tau) \frac{c}{2 \pi} \frac{\Theta(c \tau – \Abs{\Br})}{\sqrt{(c\tau)^2 – \Br^2}}.
\end{equation}
However, since \( \Theta(c \tau – \Abs{\Br}) = 1 \) only for \( \tau > \Abs{\Br}/c \), the \( \Theta(\tau) \) factor is redundant, and we find
\begin{equation}\label{eqn:waveEquationGreens:1440}
\boxed{
G(\Br, \tau) = – \frac{1}{2 \pi} \frac{\Theta(c \tau – \Abs{\Br})}{\sqrt{\tau^2 – \Br^2/c^2}},
}
\end{equation}
which matches the retarded Green’s function claimed by Grok.

Repeating this analysis for \( \tau < 0, \epsilon < 0 \), we find
\begin{equation}\label{eqn:waveEquationGreens:1460}
G(\Br, \tau) = -\Theta(-\tau) \frac{c}{2 \pi} \frac{\Theta(-c \tau – \Abs{\Br})}{\sqrt{(c\tau)^2 – \Br^2}},
\end{equation}
which we also see matches the Grok result for the advanced Green’s function. Both of these computations can be trivially performed in Mathematica following the same steps (taking all the fun from the story.) The advanced integral evaluation is shown in fig. 1 as an example.

fig. 1. Advanced 2D Green’s function for wave equation operator.

Correcting the errors: Green’s functions for the 1D Helmholtz and Laplacian operators.

September 28, 2025 math and physics play , , , , , , , , , , , , , , , ,

[Click here for a PDF version of this post, and others in this series]

The following recent posts explored 1D Green’s functions for the Helmholtz and Laplacian operators.  There was a sign error (wrong residue sign for a negatively oriented contour) that I made near the beginning that caused a lot of trouble.  Having found the error, I’ve now reworked all that exploratory content into a more coherent form.  That reworked content can be found in today’s blog post below (or in the PDF above, which includes all of this, plus the 2D and 3D derivations.)

Part 1. Green’s functions for the Helmholtz (wave equation) operator in various dimensions.

 

A trilogy in five+ parts: Confirming an error in the derived 1D Helmholtz Green’s function.

 

A trilogy in six+ parts: 1D Laplacian Green’s function

A trilogy in 7+ parts: A better check of the 1D Helmholtz Green’s function.

 

 

Helmholtz Green’s function in 1D.

Evaluating the integral.

For the one dimensional case, we want to evaluate
\begin{equation}\label{eqn:helmholtzGreensV2:200}
G(r) = -\inv{2 \pi} \int \inv{p^2 – k^2} e^{j p r} dp,
\end{equation}
an integral which is unfortunately non-convergent. Since we are dealing with delta functions, it is not surprising that we have convergence problems. The technique used in the book is to displace the pole slightly by a small imaginary amount, and then take the limit.

That is
\begin{equation}\label{eqn:helmholtzGreensV2:220}
G(r) = \lim_{\epsilon \rightarrow 0} G_\epsilon(r),
\end{equation}
where
\begin{equation}\label{eqn:helmholtzGreensV2:240}
\begin{aligned}
G_\epsilon(r)
&= -\inv{2 \pi} \int_{-\infty}^\infty \inv{p^2 – \lr{k + j \epsilon}^2} e^{j p r} dp \\
&= -\inv{2 \pi} \int_{-\infty}^\infty \frac{e^{j p r}}{\lr{ p – k -j \epsilon}\lr{p + k + j \epsilon}} dp.
\end{aligned}
\end{equation}
Our contours, for \( \epsilon > 0 \), are illustrated in fig 1.

fig 1. Contours for 3D Green’s function evaluation

For \( r > 0 \) we can use an upper half plane infinite semicircular contour integral, with \( R \rightarrow \infty \).

The residue calculation for this contour gives
\begin{equation}\label{eqn:helmholtzGreensV2:260}
\begin{aligned}
G_\epsilon(r)
&= -\frac{(+2 \pi j)}{2 \pi} \evalbar{\frac{e^{j p r}}{p + k + j \epsilon} }{p = k + j \epsilon} \\
&= -j \frac{e^{j \lr{k + j \epsilon} r}}{2\lr{k + j \epsilon}} \\
&= -j \frac{e^{j k r} e^{-\epsilon r}}{2\lr{k + j \epsilon}} \\
&\rightarrow -\frac{j}{2k} e^{j k r}.
\end{aligned}
\end{equation}

For \( r < 0 \) we use the lower half plane infinite semicircular contour For this contour, we find \begin{equation}\label{eqn:helmholtzGreensV2:280} \begin{aligned} G_\epsilon(r) &= -\frac{2 \pi j}{(-2 \pi)} \evalbar{\frac{e^{j p r}}{p – k – j \epsilon} }{p = -k – j \epsilon} \\ &= -j \frac{e^{-j \lr{k + j \epsilon} r}}{2\lr{k + j \epsilon}} \\ &= -j \frac{e^{-j k r} e^{\epsilon r}}{2\lr{k + j \epsilon}} \\ &\rightarrow -\frac{j}{2k} e^{-j k r}. \end{aligned} \end{equation} Combining both results, our Green’s function, after a positive pole displacement \( \epsilon > 0 \), is
\begin{equation}\label{eqn:helmholtzGreensV2:300}
G(r) = \frac{1}{2 j k} e^{j k \Abs{r}}.
\end{equation}

Similarly, should we pick \( \epsilon < 0 \), the same sort of calculation yields an incoming wave solution \begin{equation}\label{eqn:helmholtzGreensV2:2240} G(r) = -\frac{1}{2 j k} e^{-j k \Abs{r}}. \end{equation} Allowing for either, we have Green’s functions for both the incoming and outgoing wave cases \begin{equation}\label{eqn:helmholtzGreensV2:2260} \boxed{ G_{\pm}(x – x’) = \pm \frac{1}{2 j k} e^{ \pm j k \Abs{x – x’}}. } \end{equation} With two Green’s functions, we can also make a linear combination. Specifically \begin{equation}\label{eqn:helmholtzGreensV2:2280} \begin{aligned} G(r) &= \inv{2}\lr{ G_{+}(r) + G_{-}(r) } \\ &= \inv{4 j k}\lr{ e^{ j k \Abs{r}} – e^{ – j k \Abs{r}} } \\ &= \inv{2 k} \sin\lr{ k \Abs{r} } \end{aligned} \end{equation} This real valued Green’s function is plotted in fig. 2.

fig. 2. Green’s function for 1D Helmholtz operator.

The convolution is now fully specified, providing a specific solution to the non-homogeneous equation \begin{equation}\label{eqn:helmholtzGreensV2:400} U(x) = \inv{2k} \int_{-\infty}^\infty \sin( k\Abs{r} ) V(x + r) dr. \end{equation}

The general solution may also include any solutions to the homogeneous Helmholtz equation \begin{equation}\label{eqn:helmholtzGreensV2:2300} U(x) = A e^{j k x} + B e^{-j k x} + \inv{2k} \int_{-\infty}^\infty \sin( k\Abs{r} ) V(x + r) dr. \end{equation}

A strictly causal solution.

We can split the convolution kernel a “causal” part, where only the spatially-“past” values of \( V \) contribute, and an “acausal” part \begin{equation}\label{eqn:helmholtzGreensV2:2320} U(x) = \inv{2k} \int_{-\infty}^0 \sin( k\Abs{r} ) V(x + r) dr + \inv{2k} \int_{0}^\infty \sin( k\Abs{r} ) V(x + r) dr. \end{equation} In a sense, we are averaging causal and acausal portions of the convolution. Suppose that we form a convolution with a built in cut-off, so that values of \( V(x’), x’ > x \) do not contribute to \( U(x) \). That is
\begin{equation}\label{eqn:helmholtzGreensV2:440}
f(x) = \int_{-\infty}^x \frac{\sin\lr{k \lr{x – x’}}}{k} V(x’) dx’.
\end{equation}
Here the one-half factor has been dropped, since we are no longer performing a QFT like average of causal and acausal terms.

Intuition suggests this should be a solution to the Helmholtz equation, but let’s test that guess. We start with the identity
\begin{equation}\label{eqn:helmholtzGreensV2:460}
\frac{d}{dx} \int_a^x g(x, x’) dx’
=
\evalbar{g(x, x’) }{x’ = x} + \int_a^x \frac{\partial g(x,x’)}{dx} dx’.
\end{equation}
Taking the first derivative of \( f(x) \), we find
\begin{equation}\label{eqn:helmholtzGreensV2:480}
\begin{aligned}
\frac{df}{dx}
&= \evalbar{ \frac{\sin\lr{k \lr{x – x’}}}{k} V(x’) }{x’ = x} + k \int_{-\infty}^x \frac{\cos\lr{k \lr{x – x’}}}{k} V(x’) dx’ \\
&= k \int_{-\infty}^x \frac{\cos\lr{k \lr{x – x’}}}{k} V(x’) dx’,
\end{aligned}
\end{equation}
where we have, somewhat lazily, treated the infinite limit as a constant. Effectively, this requires that the forcing function \( V(x) \) is zero at \( -\infty \). Taking the second derivative, we have
\begin{equation}\label{eqn:helmholtzGreensV2:500}
\begin{aligned}
\frac{d^2f}{dx^2}
&=
\evalbar{ k \frac{\cos\lr{k \lr{x – x’}}}{k} V(x’) }{x’ = x} – k^2 \int_{-\infty}^x \frac{\sin\lr{k \lr{x – x’}}}{k} V(x’) dx’ \\
&= V(x) – k^2 f(x),
\end{aligned}
\end{equation}
or
\begin{equation}\label{eqn:helmholtzGreensV2:520}
\frac{d^2}{dx^2} f(x) + k^2 f(x) = V(x).
\end{equation}
This verifies that \ref{eqn:helmholtzGreensV2:440} is also a specific solution to the wave equation, as expected and desired.

It appears that the general solution is likely of the following form
\begin{equation}\label{eqn:helmholtzGreensV2:380b}
U(x) =
A’ \cos\lr{ k x } +
B’ \sin\lr{ k x }
+\alpha \int_{-\infty}^x \frac{\sin\lr{k \lr{x – x’}}}{k} V(x’) dx’
+(1-\alpha)\int_x^\infty \frac{\sin\lr{k \lr{x – x’}}}{k} V(x’) dx’,
\end{equation}
with \( \alpha \in [0,1] \).

It’s pretty cool that we can completely solve the 1D forced wave equation, for any forcing function, from first principles. Yes, I took liberties that would make a mathematician cringe, but we are telling a story, and leaving the footnotes to somebody else.

Verification of the 1D Helmholtz Green’s function.

Let’s show that the outgoing Green’s function has the desired delta function semantics. That is
\begin{equation}\label{eqn:helmholtzGreensV2:2060}
\lr{ \spacegrad^2 + k^2 } G(x, x’) = \delta(x – x’),
\end{equation}
where
\begin{equation}\label{eqn:helmholtzGreensV2:2080}
G(x, x’) = \frac{e^{j k \Abs{x – x’}}}{2 j k}.
\end{equation}
Making a \( r = x – x’ \) change of variables gives
\begin{equation}\label{eqn:helmholtzGreensV2:2120}
\spacegrad^2 e^{j k \Abs{x – x’}} = \frac{d^2}{dr^2} e^{j k \Abs{r}}
\end{equation}

The function \( \Abs{r} \) formally has no derivative at the origin, but we may use the physics trick, rewriting the absolute in terms of the Heaviside theta function
\begin{equation}\label{eqn:helmholtzGreensV2:2340}
\Abs{r} = r \Theta(r) – r \Theta(-r).
\end{equation}
We then use the delta function identification for the derivative
\begin{equation}\label{eqn:helmholtzGreensV2:2360}
\Theta'(r) = \delta(r).
\end{equation}
In particular
\begin{equation}\label{eqn:helmholtzGreensV2:2380}
\begin{aligned}
\frac{d}{dr} \Abs{r}
&= \Theta(r) – \Theta(-r) + r \delta(r) – (-1)\delta(-r) \\
&= \Theta(r) – \Theta(-r) + 2 r \delta(r),
\end{aligned}
\end{equation}
using the symmetric property of the delta function \( \delta(-r) = \delta(r) \). The delta function contribution to this derivative is actually zero, as seen when we operate with \( r \delta(r) \) against a test function
\begin{equation}\label{eqn:helmholtzGreensV2:2400}
\begin{aligned}
\int r \delta(r) f(r) dr
&=
\evalbar{r f(r)}{r = 0} \\
&= 0.
\end{aligned}
\end{equation}
We’ve now found that
\begin{equation}\label{eqn:helmholtzGreensV2:2420}
\frac{d}{dr} \Abs{r} = \Theta(r) – \Theta(-r) = \mathrm{sgn}(r),
\end{equation}
the sign function. The derivative of the sign function is
\begin{equation}\label{eqn:helmholtzGreensV2:2440}
\begin{aligned}
\mathrm{sgn}'(r)
&= \lr{ \Theta(r) – \Theta(-r) }’ \\
&= \delta(r) -(-1)\delta(-r) \\
&= 2 \delta(r).
\end{aligned}
\end{equation}

The derivatives are
\begin{equation}\label{eqn:helmholtzGreensV2:2140}
\begin{aligned}
\frac{d}{dr} e^{j k \Abs{r} }
&=
j k e^{j k \Abs{r} } \frac{d\Abs{r}}{dr} \\
&=
j k e^{j k \Abs{r} } \mathrm{sgn}(r).
\end{aligned}
\end{equation}
and
\begin{equation}\label{eqn:helmholtzGreensV2:2160}
\frac{d^2}{dr^2} e{j k \Abs{r}}
=
\lr{ j k \mathrm{sgn}(r) }^2 e^{j k \Abs{r} } + 2 j k e^{j k \Abs{r} } \delta(r).
\end{equation}

We can identify \( e^{j k \Abs{r} } \delta(r) = \delta(r) \), just as we identified \( r \delta(r) = 0 \), by application to a test function. That is
\begin{equation}\label{eqn:helmholtzGreensV2:2180}
\begin{aligned}
\int e^{j k \Abs{r} } \delta(r) f(r) dr
&=
\evalbar{e^{j k \Abs{r} } f(r)}{r = 0} \\
&=
f(0) \\
&=
\int \delta(r) f(r) dr.
\end{aligned}
\end{equation}
With that identification
\begin{equation}\label{eqn:helmholtzGreensV2:2200}
\spacegrad^2 e^{j k \Abs{r} } = -k^2 e^{j k \Abs{r} } + 2 j k \delta(r),
\end{equation}
or
\begin{equation}\label{eqn:helmholtzGreensV2:2220}
\boxed{
\lr{ \spacegrad^2 + k^2 } \frac{e^{j k \Abs{x – x’} }}{2 j k} = \delta(x – x’).
}
\end{equation}

Verifying the Green’s function with convolution.

Avoiding the physics tricks, we may use a limiting argument to validate our Green’s function.

We first want to show that at points \( x’ \ne x \) the Helmholtz operator applied to the Green’s function is zero:
\begin{equation}\label{eqn:helmholtzGreensV2:1220}
\lr{ \spacegrad^2 + k^2} G(x,x’) = 0,
\end{equation}
Since we are avoiding the origin
\begin{equation}\label{eqn:helmholtzGreensV2:1240}
\lr{ k^2 + \frac{d^2}{dx^2} } e^{j k \Abs{x – x’}}.
\end{equation}
We expect that this will be zero. Making a change of variables \( r = x’ – x \), we want to evaluate
\begin{equation}\label{eqn:helmholtzGreensV2:1260}
\lr{ k^2 + \frac{d^2}{dr^2} } e^{j k \Abs{r}},
\end{equation}
assuming that we are omitting a neighbourhood around \( r = 0 \) where the absolute value causes trouble. For \( r > 0 \)
\begin{equation}\label{eqn:helmholtzGreensV2:1280}
\begin{aligned}
\frac{d}{dr} e^{j k \Abs{r}}
&= \frac{d}{dr} e^{j k r} \\
&= j k e^{j k r},
\end{aligned}
\end{equation}
and
\begin{equation}\label{eqn:helmholtzGreensV2:1300}
\begin{aligned}
\frac{d^2}{dr^2} e^{j k \Abs{r}}
&= \frac{d}{dr} j k e^{j k r} \\
&= (j k)^2 e^{j k r}.
\end{aligned}
\end{equation}
Similarly, for \( r < 0 \), we have
\begin{equation}\label{eqn:helmholtzGreensV2:1320}
\frac{d^2}{dr^2} e^{j k \Abs{r}} = (-jk)^2 e^{j k \Abs{r}}.
\end{equation}
In both cases, provided we are in a neighbourhood that omits \( r \ne 0 \), we have
\begin{equation}\label{eqn:helmholtzGreensV2:1340}
\lr{ k^2 + \frac{d^2}{dr^2} } e^{j k \Abs{r}} = 0,
\end{equation}
as desired.

The takeaway is that we have
\begin{equation}\label{eqn:helmholtzGreensV2:1360}
\begin{aligned}
\lr{ \spacegrad^2 + k^2 }\int_{-\infty}^\infty G(x, x’) V(x’) dx’
&=
\int_{\Abs{x’ – x} \le \epsilon} V(x’) \lr{ \frac{d^2}{d{x’}^2} + k^2 } G(x, x’) dx’ \\
&=
\int_{-\epsilon}^\epsilon V(x + r) \lr{ \frac{d^2}{dr^2} + k^2 } G(r) dr \\
\end{aligned}
\end{equation}
for some arbitrarily small value of \( \epsilon \). Observe that after bringing the operator into the integral, we also made a change of variables, first to \( x’ \) for the Laplacian, and then to \( r = x’ – x \).

We’d like the 1D equivalent of Green’s theorem to reduce this, so let’s work that out first.
\begin{equation}\label{eqn:helmholtzGreensV2:1380}
\begin{aligned}
\int dx\, v \frac{d^2 u}{dx^2} – \int dx\, u \frac{d^2 v}{dx^2}
&=
\int dx\,
\lr{
\frac{d}{dx} \lr{
v \frac{du}{dx}
}
– \frac{dv}{dx} \frac{du}{dx}
}

\int dx\,
\lr{
\frac{d}{dx} \lr{
u \frac{dv}{dx}
}

\frac{du}{dx} \frac{dv}{dx}
}
\\
&=
\int dx\,
\frac{d}{dx}
\lr{
v \frac{du}{dx}
}

\int dx\,
\frac{d}{dx} \lr{
u \frac{dv}{dx}
}
\\
&=
v \frac{du}{dx}

u \frac{dv}{dx},
\end{aligned}
\end{equation}
so
\begin{equation}\label{eqn:helmholtzGreensV2:1400}
\boxed{
\int_a^b dx\, v \frac{d^2 u}{dx^2}
=
\int_a^b dx\, u \frac{d^2 v}{dx^2}
+
\evalrange{v \frac{du}{dx}}{a}{b}

\evalrange{u \frac{dv}{dx}}{a}{b}.
}
\end{equation}

This gives us
\begin{equation}\label{eqn:helmholtzGreensV2:1420}
\begin{aligned}
\lr{ \spacegrad^2 + k^2 }\int_{\Abs{x’- x} \le \epsilon} e^{j k \Abs{x – x’}} V(x’) dx’
&=
\int_{-\epsilon}^\epsilon e^{j k \Abs{r}} \lr{ k^2 + \frac{d^2}{dr^2} } V(x + r) dr \\
&\quad +
\evalrange{ V(x + r) \frac{d}{dr} e^{j k \Abs{r}} }{-\epsilon}{\epsilon}

\evalrange{ e^{j k \Abs{r}} \frac{d}{dr} V(x+r) }{-\epsilon}{\epsilon}.
\end{aligned}
\end{equation}
If we can assume that \( V \) and it’s first and second derivatives are all continuous over this small interval, then the first integral is approximately
\begin{equation}\label{eqn:helmholtzGreensV2:1440}
\begin{aligned}
\int_{-\epsilon}^\epsilon e^{j k \Abs{r}} \lr{ k^2 + \frac{d^2}{dr^2} } V(x + r) dr
&\sim
\lr{ \lr{ k^2 + \frac{d^2}{dr^2} } V(x + r) }
\int_{-\epsilon}^\epsilon e^{j k \Abs{r}} dr \\
&=
\frac{2 j}{k} \lr{ 1 – e^{ j k \epsilon} }
\lr{ \lr{ k^2 + \frac{d^2}{dr^2} } V(x + r) } \\
&\rightarrow 0.
\end{aligned}
\end{equation}
Similarly, with \( dV/dr \) continuity condition, that last term is also zero. We are left, for \( \epsilon \) sufficiently small, we are left with
\begin{equation}\label{eqn:helmholtzGreensV2:1460}
\lr{ \spacegrad^2 + k^2 }\int_{\Abs{x’- x} \le \epsilon} e^{j k \Abs{x – x’}} V(x’) dx’
=
V(x)
\evalrange{ \frac{d}{dr} e^{j k \Abs{r}} }{-\epsilon}{\epsilon}.
\end{equation}
Because we are evaluating this derivative only at points \( r = \pm \epsilon \ne 0 \), that derivative is
\begin{equation}\label{eqn:helmholtzGreensV2:2460}
\frac{d}{dr} e^{j k \Abs{r}}
=
j k e^{j k \Abs{r}} \mathrm{sgn}(r),
\end{equation}
leaving us with
\begin{equation}\label{eqn:helmholtzGreensV2:2480}
\begin{aligned}
\evalrange{ \frac{d}{dr} e^{j k \Abs{r}} }{-\epsilon}{\epsilon}
&=
j k e^{j k \Abs{\epsilon}} \mathrm{sgn}(\epsilon) – j k e^{j k \Abs{-\epsilon}} \mathrm{sgn}(-\epsilon) \\
&=
j k e^{j k \Abs{\epsilon}} \lr{ 1 – (-1) } \\
2 j k e^{j k \Abs{\epsilon}}.
\end{aligned}
\end{equation}
or
\begin{equation}\label{eqn:helmholtzGreensV2:2500}
\lr{ \spacegrad^2 + k^2 }\int_{-\infty}^\infty e^{j k \Abs{x – x’} } V(x’) dx’
=
2 j k e^{j k \Abs{\epsilon}} V(x).
\end{equation}
Taking limits and dividing through by \( 2 j k \) proves the result.

1D Laplacian Green’s function.

Having blundered our way to what appears to be the correct Green’s function for the 1D Helmholtz operator, let’s further validate that by deriving the Green’s function for the 1D Laplacian. We should also be able to verify that it has the correct delta function semantics.

Expansion in series and taking the limit.

Expanding the Helmholtz Green’s function in series around \( k \Abs{r} \) we have
\begin{equation}\label{eqn:helmholtzGreensV2:1780}
\begin{aligned}
G(r)
&= -\frac{j}{2k} \lr{ 1 + j k \Abs{r} + O((k \Abs{r})^2) } \\
&= -\frac{j}{2} \lr{ \inv{k} + j \Abs{r} + \inv{k} O((k \Abs{r})^2) } \\
\end{aligned}
\end{equation}
This means that to first order in \( k \), we have
\begin{equation}\label{eqn:helmholtzGreensV2:1800}
G(r) + \frac{j}{2k} = \frac{\Abs{r}}{2}.
\end{equation}
As before, we are free to add constant terms to the Green’s function for the Laplacian, and we conclude that the 1D Green’s function for the Laplacian is
\begin{equation}\label{eqn:helmholtzGreensV2:1820}
\boxed{
G(r) = \frac{\Abs{r}}{2}.
}
\end{equation}

Alternatively, we may use the real sine form of the Green’s function, which has a nice expansion around \( k = 0 \), and arrive at the same result.

Observe that
\begin{equation}\label{eqn:helmholtzGreensV2:2520}
\frac{d^2}{dr^2} \frac{\Abs{r}}{2} =
\frac{d}{dr} \frac{\mathrm{sgn}(r)}{2} =
\delta(r),
\end{equation}
which verifies that this is a valid Green’s function for the 1D Laplacian.

Verifying the Green’s function with convolution.

We can also operate on the convolution with the Laplacian, to verify correctness. We are interested in evaluating
\begin{equation}\label{eqn:helmholtzGreensV2:1840}
\spacegrad^2 \int \frac{\Abs{x – x’}}{2} V(x’) dx’ = \int V(x + r) \frac{d^2}{dr^2} \frac{\Abs{r}}{2} dr.
\end{equation}
If all goes well, this should evaluate to \( V(x) \), indicating that \( \spacegrad^2 \Abs{x – x’}/2 = \delta(x – x’) \). As a first step, we expect \( \spacegrad^2 G = 0 \), for \( x \ne x’ \). Consider first \( r > 0 \), where
\begin{equation}\label{eqn:helmholtzGreensV2:1860}
\frac{d}{dr} \Abs{r}
=
\frac{d}{dr} r
= 1,
\end{equation}
and for \( r < 0 \) where
\begin{equation}\label{eqn:helmholtzGreensV2:1880}
\frac{d}{dr} \Abs{r}
=
\frac{d}{dr} (-r)
= -1.
\end{equation}
This means that, away from the origin \( d\Abs{r}/dr = \mathrm{sgn}(r) \), and \( d^2 \Abs{r}/dr^2 = 0\). We can conclude that, for some non-zero positive epsilon that we will eventually let approach zero, we have
\begin{equation}\label{eqn:helmholtzGreensV2:1900}
\begin{aligned}
\spacegrad^2 \int \frac{\Abs{x – x’}}{2} V(x’) dx’
&= \int_{-\epsilon}^\epsilon V(x + r) \frac{d^2}{dr^2} \frac{\Abs{r}}{2} dr \\
&= \int_{-\epsilon}^\epsilon \lr{
\frac{d}{dr} \lr{ V(x + r) \frac{d}{dr} \frac{\Abs{r}}{2} }
– \frac{dV(x + r)}{dr} \frac{d}{dr} \frac{\Abs{r}}{2}
}
dr \\
&=
\evalrange{ V(x + r) \frac{d}{dr} \frac{\Abs{r}}{2} }{-\epsilon}{\epsilon}
– \int_{-\epsilon}^\epsilon
\lr{
\frac{d}{dr} \lr{ \frac{dV(x + r)}{dr} \frac{\Abs{r}}{2} }

\frac{d^2V(x + r)}{dr^2} \frac{\Abs{r}}{2}
} dr \\
&=
\evalrange{ V(x + r) \frac{d}{dr} \frac{\Abs{r}}{2} }{-\epsilon}{\epsilon}
-\evalrange{ \frac{dV(x + r)}{dr} \frac{\Abs{r}}{2} }{-\epsilon}{\epsilon}
+
\int_{-\epsilon}^\epsilon \frac{d^2V(x + r)}{dr^2} \frac{\Abs{r}}{2} dr \\
&=
\inv{2} \lr{ V(x + \epsilon) + V(x – \epsilon) } \\
&-\quad \frac{\epsilon}{2}\lr{
\frac{dV(x + \epsilon)}{dr}

\frac{dV(x – \epsilon)}{dr}
} \\
&+
\frac{\epsilon^2}{2} \lr{
\frac{d^2V(x + \epsilon)}{dr^2}
+
\frac{d^2V(x + \epsilon)}{dr^2}
}.
\end{aligned}
\end{equation}
In the limit we have
\begin{equation}\label{eqn:helmholtzGreensV2:1920}
\boxed{
\spacegrad^2 \int G(x, x’) V(x’) dx’ = \inv{2} \lr{ V(x^+) + V(x^-) }.
}
\end{equation}

If the test (or driving) function is continuous at \( x’ = x \), then this is exactly the delta-function semantics that we expect of a Green’s function. It’s interesting that this check provides us with precise semantics for the Green’s function for discontinuous functions too.

Part 3/3. 2D Green’s functions for the Helmholtz (wave equation) operator.

September 20, 2025 math and physics play , , , , , , , , ,

[Click here for a PDF version of this post]

Having found the 1D and 3D Green’s function for the wave equation (Helmholtz) operator, we are now ready to attempt the harder 2D case again.

2D Green’s function.

Our starting place is
\begin{equation}\label{eqn:helmholtzGreens:680}
G(\Br) = -\inv{(2 \pi)^2} \int \frac{e^{j \Bp \cdot \Br}}{\Bp^2 – k^2} d^2 p.
\end{equation}
With a change of variables to polar coordinates, letting
\begin{equation}\label{eqn:helmholtzGreens:700}
\begin{aligned}
\Bp &= p \lr{ \cos\phi, \sin\phi } \\
\Br &= \Abs{\Br} \Be_2,
\end{aligned}
\end{equation}
we can make the integral explicit
\begin{equation}\label{eqn:helmholtzGreens:720}
G(\Br) = -\inv{(2 \pi)^2} \int_0^\infty \frac{p dp}{p^2 – k^2} \int_0^{2 \pi} d\phi e^{j p \Abs{\Br} \sin\phi}.
\end{equation}
Unlike the 3D case, where the angular dependence could be trivially evaluated, we are no longer so lucky. What on earth can we do with the \( \phi \) integral? Just like Hilter’s lament about “undoable integrals in Jackson”, we are faced with the same enemy. As it turns out, due to the cylindrical symmetry of the problem, we are also staring down the gun of Bessel functions. Both Mathematica and Grok point out that we can evaluate integrals of this form, like so:
\begin{equation}\label{eqn:helmholtzGreens:740}
\int_0^{2 \pi} d\phi e^{j a \sin\phi} = 2 \pi J_0(a).
\end{equation}

From [2] we have two representations of \( J_n \), a series representation and integral representation
\begin{equation}\label{eqn:helmholtzGreens:760}
J_n(z) = \sum_{m=0}^\infty \frac{(-1)^m (z/2)^{2m + n}}{(n + m)!m!} = \inv{\pi} \int_0^\pi \cos(n \theta – z \sin\theta) d\theta.
\end{equation}

In particular, this means that
\begin{equation}\label{eqn:helmholtzGreens:800}
J_0(z) = \sum_{m=0}^\infty \frac{(-1)^m (z/2)^{2m}}{(m!)^2} = J_0(z) = \inv{\pi} \int_0^\pi \cos(z \sin\theta) d\theta.
\end{equation}
This is a damped sine like function, as illustrated in fig. 4.

fig. 4. Bessel function of zeroth order.

 

In section 6.9, both of these are derived from a generating function representation of the Bessel functions, and one of the intermediate steps in that construction has
\begin{equation}\label{eqn:helmholtzGreens:840}
J_n(z) = \inv{2\pi} \int_{-\pi}^\pi e^{-j(n\theta – z \sin\theta)} d\theta,
\end{equation}
where the \( [-\pi, \pi] \) range was the result of a contour integration using a unit circle parameterization, which could have also used \( [0, 2 \pi] \). That means, sure enough, that we have
\begin{equation}\label{eqn:helmholtzGreens:860}
J_0(z) = \inv{2\pi} \int_{0}^{2\pi} e^{j z \sin\theta} d\theta,
\end{equation}
as claimed by both Grok and Mathematica.

This means that the evaluation of the Green’s function is now reduced to the limit of one final integral
\begin{equation}\label{eqn:helmholtzGreens:880}
G(\Br) = -\inv{2 \pi} \int_0^\infty \frac{p J_0(p \Abs{\Br} ) dp}{p^2 – \lr{k + j \epsilon}^2},
\end{equation}
where we’ve also displaced the problematic pole by a small imaginary amount as before. Grok incorrectly claimed that this was an even integral, and then argued that the end result is a Hankel function (that may be the case, but it’s reasoning to get there was clearly wrong.) Mathematica, on the other hand, can evaluate this integral
\begin{equation}\label{eqn:helmholtzGreens:900}
G(\Br) = -\inv{2 \pi} K_0\lr{\frac{\Abs{\Br}}{\sqrt{\frac{1}{(\epsilon – j k)^2}}}}, \epsilon \neq 0.
\end{equation}
It’s not clear to me why Mathematica writes the argument as 1 over a reciprocal root. Perhaps that has something to do with the branch cut that Mathematica uses for it’s square root function? If I plug in representitive numeric values, it simplifies in the expected way, as illustrated in fig. 5.

fig. 5. Mathematica weird Bessel argument.

The take away appears to be that the limiting form of the 2D Green’s function, for \( k > 0 \), is
\begin{equation}\label{eqn:helmholtzGreens:920}
G(\Bx, \Bx’) = -\inv{2 \pi} K_0\lr{-j k \Abs{\Bx – \Bx’} }.
\end{equation}
A peek at [1] shows that \( K_0 \) can be expressed in terms of a Hankel function of the first kind (order 0) \( H_0^{(1)}(z) = J_0(z) + j Y_0(z) \), plotted in fig. 6.

fig. 6. Hankel function of the first kind (order 0).

For real positive \( \alpha \), we have
\begin{equation}\label{eqn:helmholtzGreens:940}
K_0(-j \alpha) = \frac{j\pi}{2} H_0^{(1)}(\alpha),
\end{equation}
so
\begin{equation}\label{eqn:helmholtzGreens:960}
\boxed{
G(\Bx, \Bx’) = -\frac{j}{4} H_0^{(1)}(k \Abs{\Bx – \Bx’}).
}
\end{equation}

References

[1] M. Abramowitz and I.A. Stegun. Handbook of mathematical functions with formulas, graphs, and mathematical tables, volume 55. Dover publications, 1964.

[2] F.W. Byron and R.W. Fuller. Mathematics of Classical and Quantum Physics. Dover Publications, 1992.

Part 2. 3D Green’s function for the Helmholtz (wave equation) operator

September 20, 2025 math and physics play , , , , , , , ,

[Click here for a PDF version of this post]

This is a continuation of yesterday’s post on wave function Green’s functions. We derived the 1D Green’s function, now it’s time for the 3D.

Next up after this will be the 2D Green’s function, which looks harder to evaluate than the 1D or 3D versions.

3D Green’s function.

The 3D Green’s function that we wish to try to evaluate is
\begin{equation}\label{eqn:helmholtzGreens:540}
G(\Br) = -\inv{(2 \pi)^3} \int \frac{e^{j \Bp \cdot \Br}}{\Bp^2 – k^2} d^3 p.
\end{equation}
We will have to displace the pole again, but we will get to that in a bit. First let’s make a spherical change of variables to evaluate the integral, with
\begin{equation}\label{eqn:helmholtzGreens:560}
\begin{aligned}
\Bp &= p \lr{ \sin\alpha \cos\phi, \sin\alpha \sin\phi, \cos\alpha } \\
\Br &= \Abs{\Br} \Be_3.
\end{aligned}
\end{equation}
This gives
\begin{equation}\label{eqn:helmholtzGreens:580}
G(\Br)
= -\inv{(2 \pi)^3} \int_0^\infty p^2 dp \int_0^\pi \sin\alpha d\alpha \int_0^{2 \pi} d\phi \frac{e^{j p \Abs{\Br} \cos\alpha}}{p^2 – k^2}.
\end{equation}
Let \( t = \cos\alpha \), to find
\begin{equation}\label{eqn:helmholtzGreens:600}
\begin{aligned}
G(\Br)
&= -\inv{(2 \pi)^2} \int_0^\infty p^2 dp \int_1^{-1} (-dt) \frac{e^{j p \Abs{\Br} t}}{p^2 – k^2} \\
&= \inv{(2 \pi)^2} \int_0^\infty p^2 dp \evalrange{\frac{e^{j p \Abs{\Br} t}}{\lr{p^2 – k^2} j p \Abs{\Br}}}{1}{-1} \\
&= \inv{j (2 \pi)^2 \Abs{\Br}} \int_0^\infty p dp \frac{e^{-j p \Abs{\Br}} – e^{j p \Abs{\Br}} }{p^2 – k^2} \\
&= -\inv{j (2 \pi)^2 \Abs{\Br}} \int_{-\infty}^\infty p dp \frac{e^{j p \Abs{\Br}} }{p^2 – k^2} \\
&\sim -\inv{j (2 \pi)^2 \Abs{\Br}} \int_{-\infty}^\infty p dp \frac{e^{j p \Abs{\Br}} }{p^2 – \lr{k + j \epsilon}^2}.
\end{aligned}
\end{equation}
In the last step, we’ve displaced the pole so that we can evaluate it using an infinite upper half plane semicircular contour, as illustrated in fig 3.

fig 3. Contours for 3D Green’s function evaluation

Which pole we choose depends on the sign we pick for the “small” pole displacement \( \epsilon \). For the \( \epsilon > 0 \) case, we find
\begin{equation}\label{eqn:helmholtzGreens:620}
\begin{aligned}
G(\Br)
&= -\inv{j (2 \pi)^2 \Abs{\Br}} \int_{-\infty}^\infty p dp \frac{e^{j p \Abs{\Br}} }{\lr{p – (k + j \epsilon)}\lr{p – (-k – j \epsilon)}} \\
&= -\frac{2 \pi j}{j (2 \pi)^2 \Abs{\Br}} \evalbar{\frac{p e^{j p \Abs{\Br}} }{p + k + j \epsilon}}{p = k + j \epsilon} \\
&= -\frac{1}{2 \pi \Abs{\Br}} (k + j \epsilon) \frac{e^{j (k + j \epsilon) \Abs{\Br}} }{2 (k + j \epsilon)} \\
&= -\frac{1}{4 \pi \Abs{\Br}} e^{j k \Abs{\Br}} e^{-\epsilon \Abs{\Br}} \\
&\rightarrow -\frac{e^{j k \Abs{\Br}} }{4 \pi \Abs{\Br}}.
\end{aligned}
\end{equation}
whereas for \( \epsilon < 0 \), we have
\begin{equation}\label{eqn:helmholtzGreens:640}
\begin{aligned}
G(\Br)
&= -\inv{j (2 \pi)^2 \Abs{\Br}} \int_{-\infty}^\infty p dp \frac{e^{j p \Abs{\Br}} }{\lr{p – (k + j \epsilon)}\lr{p – (-k – j \epsilon)}} \\
&= -\frac{2 \pi j}{j (2 \pi)^2 \Abs{\Br}} \evalbar{\frac{p e^{j p \Abs{\Br}} }{p – k – j \epsilon}}{p = -k – j \epsilon} \\
&= -\frac{1}{2 \pi \Abs{\Br}} (-k – j \epsilon) \frac{e^{j (-k – j \epsilon) \Abs{\Br}} }{2 (-k – j \epsilon)} \\
&= -\frac{1}{4 \pi \Abs{\Br}} e^{-j k \Abs{\Br}} e^{\epsilon \Abs{\Br}} \\
&\rightarrow -\frac{e^{-j k \Abs{\Br}} }{4 \pi \Abs{\Br}}.
\end{aligned}
\end{equation}

The Green’s function has the structure of either an outgoing or incoming spherical wave, with inverse radial amplitude:
\begin{equation}\label{eqn:helmholtzGreens:660}
\boxed{
G(\Bx, \Bx’) = -\frac{e^{\pm j k \Abs{\Br}} }{4 \pi \Abs{\Br}}.
}
\end{equation}