Electrodynamics from scratch

YouTube Channel

 

Lecture 0: Fields, Forces & Thinking Like a Physicist

We begin a journey into theoretical physics — and it starts with electrodynamics.
Lecture 0 lays the foundation: where physical laws actually come from, how
theoretical physics turns them into predictions, and how the electric and
magnetic fields emerge from a handful of simple experiments.

Starting from one principle — that general physical laws come from experiment,
not logic (after theoretical physicist B. G. Levich) — we build the electro-
and magnetostatic picture step by step: Coulomb’s law, the electric field and
the principle of superposition, why the static electric field is “vortex-free”
(∇×E = 0) and can be written as a potential (E = −∇φ), the magnetic field and
the Lorentz force F = q(E + v×B), Ørsted’s law (∇×B = μ₀J), and charge
conservation via the continuity equation (∂ρ/∂t + ∇·J = 0). Along the way we
lean on Stokes’ and Gauss’ theorems — and one recurring habit: think in
pictures first, then write the math.

By the end you’ll hold the line integrals of E and B, and a clear map of what’s
still missing (their divergences) on the road to the full Maxwell–Lorentz
equations.

Lecture 1: From Gauss’s Law to Maxwell’s Missing Term

Lecture 1 completes the static picture — then breaks it open.

In Lecture 0 we found the circulations (curls) of the electric and magnetic
fields. Now we hunt down the piece we were missing — their divergences — and
see that together, divergence and curl determine a field completely.

We derive Gauss’s law and its differential form ∇·E = ρ/ε₀, turn it into the
Poisson equation ∇²φ = −ρ/ε₀, and show why there are no magnetic monopoles:
∇·B = 0, a solenoidal field that lets us write B = ∇×A. With the scalar
potential φ and the vector potential A in hand — auxiliary fields that aren’t
directly observable — electrostatics and magnetostatics look neatly separate…

…until Faraday. A changing magnetic field induces a circulating electric field
(∇×E = −∂B/∂t), and the two fields start to mix (E = −∇φ − ∂A/∂t). Then Maxwell
makes his leap: by symmetry, a changing electric field should curl the magnetic
field too. With no experiment available at the time, we pin the missing term
down from pure theory — using charge conservation — and arrive at the
displacement current: ∇×B = μ₀J + μ₀ε₀ ∂E/∂t. The electric and magnetic fields
are now fully symmetric, and the road to Maxwell’s equations is open.

Lecture 2: Potentials, Gauge Freedom & the Lorentz Condition

Lecture 2 closes the “picture” chapter and steps into the mathematics.

We open with a recap of everything built so far — the four field equations and
the mental picture behind each one: charges as the sources and sinks of E
(∇·E = ρ/ε₀), the absence of magnetic monopoles (∇·B = 0), a changing magnetic
flux curling the electric field (∇×E = −∂B/∂t), and — after Maxwell’s symmetry
argument and the displacement current — a changing electric flux curling the
magnetic field (∇×B = μ₀J + μ₀ε₀ ∂E/∂t). Divergence and curl together determine
a field completely, and in vacuum we now have the full set.

Then we change worlds. Instead of solving for E and B directly, we introduce the
auxiliary fields — the scalar potential φ and the vector potential A. Because
∇·B = 0 we can write B = ∇×A, and Faraday’s law then lets us write
E = −∇φ − ∂A/∂t. Substituting these back into Maxwell’s equations gives two
coupled equations for φ and A that look, at first, hard to untangle.

The way out is a beautiful idea: the potentials are not unique. Because only E
and B are physical, we’re free to transform A → A + ∇ψ and φ → φ − ∂ψ/∂t without
changing a single measurable field. That freedom is a gauge freedom, and ψ is a
gauge field we can pick to make life easier. Choosing the Lorenz condition
(∇·A + (1/c²) ∂φ/∂t = 0) decouples and symmetrises everything: both potentials
obey the same wave (d’Alembertian) operator, □A = −μ₀J and □φ = −ρ/ε₀. We finish
by proving the choice is legitimate — the Lorenz condition is just a particular
gauge, valid because the gauge field ψ it requires always solves the
d’Alembertian equation. In the static limit this collapses to the Poisson
equation ∇²φ = −ρ/ε₀, which is where the next lecture begins.

Lecture 3: Solving Poisson’s Equation with Fourier Transforms

Lecture 3 moves from the general machinery of the potentials to solving a concrete
problem — and that problem is electrostatics.

We open where Lecture 2 ended: by exploiting gauge freedom we wrote the scalar and
vector potentials as d’Alembertian (wave) equations, □φ = −ρ/ε₀ and □A = −μ₀J, linked
by the Lorenz condition ∇·A + (1/c²) ∂φ/∂t = 0. If we know the charge density and the
current density, solving these gives us the potentials — and with them the whole
electrodynamics of the system.

So we specialise. For stationary charges there is no current and nothing varies in
time, and the general equations collapse: the wave equation for φ becomes the Poisson
equation ∇²φ = −ρ/ε₀, the vector potential obeys ∇²A = 0, and the Lorenz condition
reduces to ∇·A = 0. Electrostatics, then, is fully determined the moment we can solve
the Poisson equation.

The heart of the lecture is that solution. We want φ(r) in terms of the charge density
ρ(r), and we get it with Fourier transforms. After setting up the forward and inverse
transforms between position space and k space, we use the beautiful property that
taking the Laplacian of a function corresponds to multiplying its transform by −k².
That converts the differential equation into a simple algebraic one: φ(k) = ρ(k)/(ε₀ k²).
Bringing this back to position space leaves a single ∫d³k to evaluate — the k integral.

The k integral is done carefully and from scratch. We choose spherical polar
coordinates, knock out the trivial φ-integral, and turn the θ-integral into a sinc
factor, sin(k|r−r′|)/(k|r−r′|). What’s left is ∫ sin u/u, which we evaluate by contour
integration: Cauchy’s integral theorem, a half-circle contour c₁ − c₂, the limits
R → ∞ and r → 0, and a small arc that contributes −iπ. De Moivre’s theorem splits the
result and yields the celebrated ∫₀^∞ sin x/x dx = π/2.

Every factor cancels, and out drops the solution: φ(r) = (1/4πε₀) ∫ ρ(r′)/|r−r′| d³r′ —
simultaneously the general solution of the Poisson equation and, for a point charge,
Coulomb’s law itself. We close by noting we will never need to re-derive it: give any
charge distribution, and it becomes just an integral to evaluate. Next up, point
charges and discrete distributions — and then we step beyond stationary charges to
moving currents.

Lecture 4: From Potential to Field — Gradient Exercises

Lecture 4 shifts from theory to practice: we do exercises.

So far we’ve built up the theoretical framework — Maxwell’s equations, the
potentials φ and A, gauge freedom, and the derivation that in static situations
the scalar potential satisfies the Poisson equation ∇²φ = −ρ/ε₀. Now we turn to
the actual calculations that turn these equations into physics.

We begin with a recap of where we are: the Poisson equation gives the potential
in terms of the charge density, φ(r) = (1/4πε₀) ∫ ρ(r′)/|r−r′| d³r′. The
geometry involves r (test point) and r′ (source point), and the electric field
is obtained by E = −∇φ, meaning we need to compute gradients of expressions
involving |r−r′|.

The lecture contains three key gradient exercises:

    1. ∇·r — the divergence of the position vector, giving 3 in three dimensions.

    1. ∇|r−r′| — the gradient of the magnitude, yielding (r−r′)/|r−r′|.

    1. ∇(1/|r−r′|) — the gradient of the inverse magnitude, yielding
      −(r−r′)/|r−r′|³. This is the crucial result: once we have the potential for
      a point charge, φ = q/(4πε₀|r−r′|), taking the negative gradient gives us
      Coulomb’s law, E = q/(4πε₀) (r−r′)/|r−r′|³.

All calculations are done explicitly in Cartesian coordinates, using the
del operator ∇ = (∂/∂x, ∂/∂y, ∂/∂z) and the Kronecker delta to handle the
index manipulation cleanly. We also prove two vector calculus identities along
the way: ∇×∇ψ = 0 (curl of a gradient is zero) and ∇·(∇×A) = 0 (divergence of
a curl is zero), justifying the potential ansätze used throughout.

Lecture 5: Feynman’s Calculus Trick for Vector Operations

Lecture 5 continues the exercise-based approach, but now we tackle an inverse problem:
given an electric field, find the charge distribution that produces it.

We start with Griffiths’ classic problem: compute the divergence of E = r̂/r².
Direct calculation in Cartesian coordinates gives zero, which seems wrong — we know
a point charge should produce a delta function. The resolution comes from recognizing
that E = −∇φ with φ = 1/r, so ∇·E = −∇²(1/r). The task becomes evaluating the
Laplacian of 1/r.

We use the Fourier transform method developed earlier to solve Poisson’s equation.
After deriving the Fourier transform of 1/r (getting φ(k) = 1/(2π²k²)), we note that
∇² in position space corresponds to −k² in k-space. This cancels the denominator,
leaving an integral that is precisely the three-dimensional delta function definition:
δ³(r) = (1/2π³) ∫ e^(−ik·r) d³k. The result: ∇²(1/r) = −4πδ(r).

With ∇·E = −∇²φ = 4πδ(r), we recover the expected charge distribution: a point
charge at the origin. This is a more direct route than Griffiths’ approach, and it
shows how Fourier methods handle singularities elegantly.

The lecture concludes with Feynman’s calculus trick — a prescription for treating
the del operator as a vector when evaluating expressions like ∇·(A×B), ∇×(φA),
and ∇(A·B). The key rules: split ∇ = ∇ₐ + ∇ᵦ, apply standard vector identities
(BAC-CAB rule), then replace ∇ₐ and ∇ᵦ with the proper gradient operator. We work
through several examples, including the hydrodynamic identity ∇(v·v) = 2[v×(∇×v) + v·∇v]
that appears in Bernoulli’s equation.

Lecture 6: The Quasi-Stationary Limit and the Biot–Savart Law

Lecture 6 adds the next level of complexity to the Maxwell’s equations we have been
solving: we now allow the charges to move — but slowly. This is the quasi-stationary
limit, where the temporal variations of the fields are much smaller than their
spatial variations, and we work out both when this approximation is valid and what
it implies for the equations we have to solve.

We begin by quantifying “much slower” through dimensional analysis. Comparing the
spatial derivatives in the curl equations with their temporal terms gives E/L ≫ B/T
and B/L ≫ E/(c²T). Multiplying the two conditions eliminates the fields entirely
and leaves cT ≫ L — that is, the typical velocity L/T of the system must be much
less than the speed of light. This is a remarkable moment: the speed of light
enters organically out of the structure of Maxwell’s equations themselves.

In this limit, the Maxwell equations simplify: the ∇·E and ∇·B equations are
unchanged, ∇×E becomes zero, and ∇×B = μ₀J appears — an equation we have never
had before, because until now there was no current. Both potentials now satisfy
Poisson equations: the scalar potential as before, and the vector potential as
A(r) = (μ₀/4π) ∫ J(r′)/|r−r′| d³r′ — a Poisson equation for each component of the
vector field, no harder than the scalar case we already solved.

The slow-motion assumption ∂ρ/∂t = 0 feeds into the continuity equation to give
∇·J = 0, and we unpack what that means physically: the current density is
solenoidal. By the Gauss theorem no current escapes through any closed surface,
so the current flows in closed tubes inside the volume. Since the same current
passes through every cross-section of a tube, a narrowing cross-section forces a
higher current density — making the quasi-stationary condition concrete.

With the vector potential in hand, we compute B = ∇×A using Feynman’s calculus
trick from lecture 5. Assuming J is constant over the scale of the kernel, the
curl reduces to the gradient of 1/|r−r′| crossed with J — yielding the
Biot–Savart law, B = (μ₀/4π) ∫ J×R/R³ d³r′. This completes the electrostatics and
magnetostatics theory of the series: E from the scalar potential, B from the
vector potential, both as integrals over sources.

The lecture closes with the mathematical proof promised in lecture 1. This is a
pure mathematics result, independent of electrodynamics: knowing the divergence
and the curl of a vector field uniquely determines that vector field. If ∇·A = f
and ∇×A = ω are given, then A is completely determined — no other freedom remains.

The proof works by splitting A = A₁ + A₂, where A₁ carries the divergence but no
curl (so A₁ = ∇φ with ∇²φ = f, the Poisson equation) and A₂ carries the curl but
no divergence (so ∇×∇×A₂ = ω, where gauge freedom lets us set ∇·A₂ = 0, again
reducing to a Poisson equation per component). Solving both Poisson equations and
taking the gradient of φ and the curl of A yields A as a sum of two integrals
determined entirely by f and ω — which is the theorem: given divergence and curl,
the vector field is unique.

Lecture 7: Slowly moving charge and Taylor expansion of 1/|r−r′|

Lecture 7 puts the quasi-stationary limit from lecture 6 to work on a concrete
example: a single charge moving with a velocity much less than the speed of
light, confined so that it never escapes the region. We evaluate the potentials
and the fields of this moving charge explicitly, and then ask what to do when
the source integrals cannot be done at all.

The charge density of the point charge is a three-dimensional delta function
centered at the instantaneous position r₀′(t) = v₀t. Substituting it into the
potential integral collapses it immediately — wherever the delta function is
centered, substitute that location into the integrand. The result is the
Coulomb-like potential φ = q/(4πε₀|r−v₀t|), and for v₀ = 0 we recover the
stationary result.

The electric field is minus the gradient of this potential. Since the time
dependence only shifts the center, the gradient identity for 1/|r−r′| carries
over unchanged: E is spherically symmetric about the charge’s instantaneous
position. Moving the observation point along with the charge, the v₀ in
numerator and denominator cancels exactly — the field of a uniformly moving
charge sticks to the charge and rides along with it.

The current density is ρv₀, and the Biot–Savart law with the same
delta-function trick gives a magnetic field with the same r/r³ structure.
Rescaling by μ₀ε₀ = 1/c² gives the compact relation B = (1/c²) v₀×E: B is
perpendicular to both the velocity and the electric field, and its magnitude is
much smaller, suppressed by 1/c² in SI units. The vector potential gives the
matching relation A = v/c² φ, completing the example.

The second half confronts a practical limitation: real charge and current
distributions can be too complicated for the source integrals to be done at
all. The way out is to evaluate the potentials far from the source — in the
limit r ≫ r′ — where something can be said even without doing the integral.
The tool that makes this possible is the Taylor series.

After reviewing the scalar Taylor series and its vector generalization in
partial derivatives (carefully distinguishing the mixed second derivative
∂²f/∂xα∂xβ from the Laplacian), we identify f(x+h) = 1/|r−r′| with h = −r′ and
expand 1/|r−r′| = 1/r + r′·r/r³ + … Each term pulls out of the integral and
produces one multipole contribution, splitting the potential into φ₀, φ₁ and φ₂.

The leading term φ₀ is the monopole: 1/r factors out and the remaining integral
is just the total charge, so a distant observer sees φ₀ = Q/(4πε₀r) — the
distribution itself no longer matters. The next term φ₁ contains ∫ρ(r′)r′ d³r′
— the dipole moment, central in quantum mechanics too; for two charges ±q
separated by d it reduces to p = qd. The dipole potential φ₁ = p·r/(4πε₀r³)
falls off as 1/r², and its field — from the identity for ∇(a·b) and the product
rule — is E = (3(p·r)r − r²p)/(4πε₀r⁵), falling off as 1/r³.

The quadrupole term φ₂ is deferred to the next lecture. The take-home message
is the Taylor expansion of 1/|r−r′| itself: once you know it, the monopole,
dipole and quadrupole fields become routine algebra plus a gradient, and the
same expansion returns when we Taylor-expand the vector potential.

Lecture 8: Magnetic Moment and Multipole Expansion of Vec Potential

Lecture 8 completes the multipole program started in lecture 7. We finish the
quadrupole term of the scalar potential, explore when the dipole moment depends
on the choice of origin, and then carry the Taylor expansion of 1/|r−r′| over
to the vector potential — where the far-field limit reveals the magnetic
moment, the current-density analogue of the dipole moment.

We start by making sense of the sum over α, β left over from lecture 7. The
x′αxα contraction is the dot product r′·r = r′r cosθ, and the Kronecker delta
term collapses to r′·r′ = r′². With a convenient geometry — dipole along the
z-axis, θ measured from it — the scalar potential takes its final monopole +
dipole + quadrupole form: φ = Q/(4πε₀r) + p cosθ/(4πε₀r²) + ∫ρr′²(3cos²θ−1)
d³r′/(4πε₀r³). Each successive term carries one more power of 1/r.

Then a subtle question: how sensitive is the dipole moment to the origin?
Translating the source coordinates r′ → r′ + a gives p → p + aQ, where Q is the
total charge. For a neutral system (Q = 0) the dipole moment is
origin-independent; for a system with net charge we can always translate to an
origin where the dipole moment vanishes — so a charged system can always be
taken to have no dipole moment at all.

The heart of the lecture is the same far-field trick applied to the vector
potential A = (μ₀/4π) ∫ J(r′)/|r−r′| d³r′. The Taylor expansion gives two
terms. The first contains ∫J d³r′ — which vanishes in the quasi-stationary
limit: ∇·J = 0 means current flows in closed loops, and writing J d³r′ =
I dl, the integral around each closed loop is zero. The leading term dies.

The second term, ∫ J(r′)(r′·∇(1/r)) d³r′, is tricky: J is a vector, so we
cannot simply pull r′·∇(1/r) out as in the scalar case. The fix is a
symmetrization: add and subtract a term (adding zero) to build the triple cross
product r′×(J×∇(1/r)), apply the BAC-CAB rule, and the integral splits cleanly
into system-dependent and observation-point pieces. The gradient of 1/r =
−r/r³ brings in the factors, and the vector potential becomes A = (μ₀/4π)
m×r/r³ — exactly the dipole-potential structure of electrostatics with a cross
product in place of a dot product. The system-dependent piece is the magnetic
moment m = ½ ∫ r′×J(r′) d³r′.

The lecture closes by drawing the analogy explicitly: charge density (a scalar
source) produces the dipole moment p = ∫ρr′ d³r′; current density (a vector
source) produces the magnetic moment m = ½∫r′×J d³r′. Both integrals run over
the system (r′), both potentials share the same r/r³ far-field structure, and
both say a lot about the system even when the full integral cannot be done.
Next lecture: the magnetic field of this dipole.

Lecture 9: The Magnetic Dipole Field and potential of charged sphere  

 
Lecture 8 gave us the magnetic moment; this lecture turns it into a field. We complete the dipole analogy that has run through the whole course: every result for static charges has its counterpart for moving charges, and by the end of this lecture the magnetic dipole field stands next to the electric dipole field with the same 1/r³ structure, derived from first principles. We start with the tool the derivation needs: the vector identity for ∇×(A×B). Rather than quote it, we derive it from scratch with Feynman’s trick — treat the ∇ operator as an ordinary vector, split it across the two factors, and apply the BAC-CAB rule — keeping in mind the one rule of the game: ∇ acts only on what it is supposed to act on, so the operator must be “transposed” past the vectors it must not touch. Applied to the dipole vector potential m×r/r³, two terms vanish immediately because m depends on r′ and not r, and a third vanishes because ∇·(r/r³) = 0 away from the origin. What survives is B = −(μ₀/4π) m·∇(r/r³) = (μ₀/4π)[3(m·r)r − r²m]/r⁵ — the exact analogue of the electric dipole field, with the magnetic moment m standing where the dipole moment p stood. Then a question the electric case left open: does the magnetic moment depend on the choice of origin? The electric dipole moment shifts by aQ under a translation when the net charge is nonzero. The magnetic moment does not: the extra term carries ∫J d³r′, which vanishes in the quasi-stationary limit because ∇·J = 0 — the current is solenoidal, nothing leaves the volume. The magnetic moment is always origin-independent. What is m, physically? For charges moving along a tube, J d³r′ = I dl and m = (I/2)∮r′×dl — proportional to the current times the enclosed area. For discrete charges, writing m = ½Σ qᵢ rᵢ×vᵢ and inserting the mass gives m = (q/2m) L: the magnetic moment is proportional to the angular momentum, with the charge-to-mass ratio as the constant of proportionality. A moving charge has angular momentum, and by virtue of it a magnetic moment — hence a vector potential and a 1/r³ magnetic field. All of this holds strictly in the quasi-stationary limit, v ≪ c. With the theory done, we put it aside and turn to a full example calculation: the potential and field of a uniformly charged sphere, radius R, total charge Q — done honestly from the Poisson integral, with no Gauss’s-theorem shortcuts. Spherical polar coordinates give d³r′ = r′² sinθ dr′ dθ dφ, and the convenient choice of r along the z-axis reduces |r−r′|² to r² + r′² − 2rr′cosθ. The φ integral gives 2π; the θ integral is done with the substitution t = |r−r′|, leaving [|r+r′| − |r−r′|]/(rr′) — and the heart of the exercise is handling that modulus honestly, case by case. Outside the sphere the modulus is benign and everything collapses to φ(r) = Q/(4πε₀r), as if all the charge sat at the origin. Inside, the r′ integral splits at r′ = r, the modulus flips sign in each piece, and the two pieces combine to φ(r) = ρ_c(3R² − r²)/6ε₀. The message of the exercise: the multipole integrals are not decoration. You can evaluate them — modulus, signs, limits and all — without falling back on the Gauss’s theorem you learned in school. Next lecture: the hollow sphere (spherical shell), and more exercises built on the topics covered so far.

Lecture 10: Potential of a charged shell and the d’Alembertian Method

This lecture begins by completing the uniformly charged sphere exercise from lecture 9, calculating the electric field from the potential and showing its linear growth inside the sphere and 1/r² decay outside. The key point emphasized is that the solutions for inside and outside potentials match continuously at the boundary r=R.

The lecture then turns to the spherical shell with uniform surface charge density. Here the geometry simplifies to a surface integral rather than volume integral. The result shows a crucial difference: inside the shell the potential is constant (hence zero electric field), while outside it behaves as if all charge were at the origin. This has direct physical relevance for conducting spheres, where charge resides entirely on the surface.

The second half introduces the theory of potentials for arbitrarily moving charges. After reviewing boundary and initial conditions, the lecture derives the D’Alembert method for solving the scalar potential wave equation. By transforming to null coordinates ζ = t – r/c and η = t + r/c, the wave equation reduces to ∂²ψ/∂ζ∂η = 0, whose general solution is ψ = ψ₁(ζ) + ψ₂(η). This reveals that the scalar potential must have the form φ = (1/r)ψ₁(t – r/c) + (1/r)ψ₂(t + r/c), representing outgoing and incoming spherical waves. The exact form of ψ₁ and ψ₂ will be determined in the next lecture by matching solutions inside and outside the charge distribution.

 

Lecture 11: Retarded Potentials of Arbitrarily Moving Charges 


Lecture 11 completes the derivation of the potentials for arbitrarily moving charges by matching the interior and exterior solutions of the wave equation.

We begin where Lecture 10 ended: with the general solution for the scalar potential in the region outside a charge distribution, φ = (1/r)ψ₁(t − r/c) + (1/r)ψ₂(t + r/c). The functions ψ₁ and ψ₂ remain unknown, and their form must be determined by matching to the solution inside the charge volume.

The first part of the lecture analyzes the functional form of the solutions. By evaluating ψ₁ at different times and positions, we see that ψ₁(t − r/c) represents a spherical wave moving outward from the origin, while ψ₂(t + r/c) represents a spherical wave moving inward. The functional dependence t − r/c is the signature of a disturbance propagating at speed c away from its source; t + r/c would be propagation toward the source.

Having understood the wave behavior, we turn to the region inside the infinitesimal volume. In this small region, the finite propagation speed c is effectively taken to infinity, so the perturbation is transferred instantaneously. The wave equation reduces to Poisson’s equation ∇²φ = −ρ/ε₀, whose solution for an infinitesimal charge is φᵢ = (1/4πε₀)(q/r) = (1/4πε₀)(ρ dV/r).

Matching the interior solution φᵢ to the exterior solution at the boundary r = constant forces ψ₁ to be ρ dV (with the origin at the charge location). Reintroducing the original coordinate system yields the full expression for the potential of an infinitesimal charge at position r′:
φ(r, t) = (1/4πε₀) ∫ [ρ(r′, t − |r−r′|/c) / |r−r′|] dV′.

The term t − |r−r′|/c is called the retarded time: the potential at time t depends on the charge density at an earlier time, because the electromagnetic disturbance propagates at finite speed c. This is the mathematical expression of causality in electrodynamics.

We also examine the second term ψ₂(t + r/c), the so-called advanced potential. By imposing the boundary condition that potentials must decay as 1/r at infinity, and the initial condition that charges were at rest for t ≤ 0, we find that the advanced term violates these conditions—it would require knowledge of the future charge distribution and does not decay properly. Therefore only the retarded solution is physical.

The final result is the retarded potential for scalar and vector potentials:
φ(r, t) = (1/4πε₀) ∫ [ρ(r′, tᵣ) / |r−r′|] dV′,
A(r, t) = (μ₀/4π) ∫ [J(r′, tᵣ) / |r−r′|] dV′,
where tᵣ = t − |r−r′|/c is the retarded time. These are the most general expressions for the electromagnetic potentials of arbitrary charge and current distributions.