Green's Functions

Pdes

The Green's function is the FUNDAMENTAL SOLUTION of a linear PDE: the response of the equation to a point source. Once you know how the equation responds to a delta function, you know how it responds to ANY forcing — just integrate the Green's function against the source distribution. The technique is the cleanest illustration of the LINEARITY of the underlying physics: every linear PDE is a black box that takes inputs and produces outputs, and the Green's function is the black box's impulse-response function.

Formally, given a linear differential operator acting on functions of (and possibly ), and the inhomogeneous equation

the Green's function is the solution of

subject to the same homogeneous boundary conditions. The full solution to the inhomogeneous problem is then

Three reasons this is useful. (1) Once you've computed for a given operator and boundary, you can solve for ANY by quadrature — no separate boundary-value-problem solve per source. (2) often has a clean closed form even when doesn't, and its singularity at contains the local short-distance content of the equation. (3) Green's functions are the SAME OBJECT as propagators in quantum field theory, response functions in linear-response theory, and scattering amplitudes in scattering theory — different names, same mathematics, all just in a particular representation.

The 1D Poisson Green's function

The cleanest worked example. Take

Find satisfying , with . Off the delta-function support (i.e. for ), the equation is just : is piecewise linear. Use the boundary conditions to pin down the two linear pieces:

Two matching conditions at the source point . (i) Continuity: . (ii) Jump in derivative: integrate the defining equation across an infinitesimal interval around :

Computing the slopes: and . The jump condition is . Solving the two equations: , . So:

A piecewise-linear "tent function" that rises linearly from 0 at to at , then falls linearly back to 0 at . Symmetric in , which it MUST be — the operator is self-adjoint, so its Green's function is symmetric (Cattaneo's reciprocity).

Validation

Verify against two analytically tractable forcings.

# Green's-function solution of the 1D Poisson equation on [0, 1]:
#   -u''(x) = f(x),   u(0) = u(1) = 0.
# Green's function:
#   G(x, xi) = x (1 - xi)  for x <= xi
#            = xi (1 - x)  for x >= xi
# Solution:
#   u(x) = integral_0^1 G(x, xi) f(xi) d xi.
#
# We verify against two analytically known cases:
#   f(x) = 1            ->  u(x) = x (1 - x) / 2
#   f(x) = sin(pi x)    ->  u(x) = sin(pi x) / pi^2

import numpy as np

def green_1d(x, xi):
    return np.where(x <= xi, x * (1 - xi), xi * (1 - x))

def poisson_green(f, x_grid, n_quad=2000):
    """Evaluate u(x) = int_0^1 G(x, xi) f(xi) d xi via Gauss-Legendre."""
    xi, w = np.polynomial.legendre.leggauss(n_quad)
    xi = 0.5 * (xi + 1)        # [-1, 1] -> [0, 1]
    w  = 0.5 * w
    f_vals = f(xi)
    u = np.zeros_like(x_grid)
    for i, xx in enumerate(x_grid):
        u[i] = np.sum(w * green_1d(xx, xi) * f_vals)
    return u

def poisson_fd(f, N=201):
    """Reference: central FD -u'' = f, Dirichlet BCs."""
    x = np.linspace(0, 1, N)
    dx = x[1] - x[0]
    A = (np.diag(-2*np.ones(N-2)) + np.diag(np.ones(N-3), 1)
         + np.diag(np.ones(N-3), -1)) / dx**2
    u = np.zeros(N)
    u[1:-1] = np.linalg.solve(A, -f(x[1:-1]))
    return x, u

x_grid = np.linspace(0, 1, 21)

print("Test 1: f(x) = 1, exact u(x) = x(1 - x)/2")
u_g    = poisson_green(lambda xi: np.ones_like(xi), x_grid)
u_ex   = 0.5 * x_grid * (1 - x_grid)
xf, u_fd = poisson_fd(lambda x: np.ones_like(x))
print(f"  Green's-function error: ||u_G - u_exact||_inf = "
      f"{np.max(np.abs(u_g - u_ex)):.2e}")
print(f"  FD (N=201)      error: ||u_FD - u_exact||_inf = "
      f"{np.max(np.abs(u_fd[::10] - u_ex)):.2e}")

print("\nTest 2: f(x) = sin(pi x), exact u(x) = sin(pi x) / pi^2")
u_g2 = poisson_green(lambda xi: np.sin(np.pi * xi), x_grid)
u_ex2 = np.sin(np.pi * x_grid) / np.pi**2
print(f"  Green's-function error: ||u_G - u_exact||_inf = "
      f"{np.max(np.abs(u_g2 - u_ex2)):.2e}")

Output:

Test 1: f(x) = 1, exact u(x) = x(1 - x)/2
  Green's-function error: ||u_G - u_exact||_inf = 2.57e-08
  FD (N=201)      error: ||u_FD - u_exact||_inf = 8.74e-16

Test 2: f(x) = sin(pi x), exact u(x) = sin(pi x) / pi^2
  Green's-function error: ||u_G - u_exact||_inf = 2.57e-08

The Green's-function solution agrees with the analytical answer to in both tests — the limit is the quadrature precision (2000 Gauss-Legendre points). Finite differences hit on the constant-source case because the FD discretization of is exact when is a quadratic. Both methods give the same answer; the Green's-function method makes the dependence on the source EXPLICIT, while FD treats every new as a fresh linear system.

Green's functions for the classical equations

The four canonical free-space (infinite-domain) Green's functions, each with a different singularity structure that encodes the equation's PDE type.

Laplace / Poisson

The 3D Coulomb potential is the Green's function of : the potential of a point charge, the gravitational field of a point mass. The 2D logarithmic Green's function is the potential of an infinite line charge.

Helmholtz

Outgoing-wave () and incoming-wave () Green's functions, distinguished by the radiation boundary condition at infinity. The Helmholtz Green's function is the workhorse of acoustic and electromagnetic scattering: the LSZ amplitude, the optical theorem, the dyadic Green's function all start from this object.

Heat / diffusion

The GAUSSIAN HEAT KERNEL. Spreads at a rate ; nonzero everywhere for (the infinite-propagation-speed feature of the heat equation). The fact that as means an initial point of heat smears immediately into a Gaussian.

Wave (3D)

The RETARDED Green's function: the response at to a delta-source at is concentrated on the FORWARD LIGHT CONE . Strict finite-propagation-speed structure. Huygens' principle in 3D is exactly the statement that this Green's function is supported on the light cone — it propagates without trailing wake. In 2D, by contrast, the wave Green's function has a tail behind the light cone, which is why circular ripples in a 2D pond leave residual disturbance after the wavefront has passed.

How Green's functions are computed

Several techniques, each suited to different geometries.

The same object, three names

Green's functions appear in apparently unrelated parts of physics under different names. They are all the same thing — the inverse of a linear operator viewed as an integral kernel — and recognizing the unity is part of mathematical maturity.

Numerical use

Beyond the closed-form analytical Green's functions, the framework supports two important numerical strategies.

Boundary element methods. For Laplace's equation on a region with complicated boundary but constant coefficients in the interior, you can represent the solution by an integral over only the BOUNDARY of the domain (using the free-space Green's function), reducing the dimensionality by one. The resulting boundary integral equation is discretized and solved as a dense linear system — expensive for large boundaries but with rather than scaling, which becomes competitive at high or with fast multipole acceleration.

Renormalisation and self-energies. In many-body theory, the perturbative expansion of the full Green's function organizes naturally as a sum of diagrams; resummation in terms of self-energies via the Dyson equation is the standard tool for extracting non-perturbative information from a perturbative series. The connection to Borel-Padé and resurgence is conceptual rather than literal but the resemblance is not coincidental — both are strategies for extracting analytic structure from a formal series in a small parameter.

Related