Skip to content

Kramers–Kronig Relations

How much of the real response can a finite imaginary-response spectrum determine? Reconstruct a known Lorentz model, then change the spectral window and the supplied tails.

Causality, absorption and dispersion

A material cannot respond to a field before the field arrives. That sounds too obvious to be useful, but it has a sharp consequence: the real part of a response function, which sets refraction, and the imaginary part, which sets absorption, are not independent. Know one at every frequency and you can compute the other. This page does that for a Lorentz oscillator whose answer is known exactly, then shows what goes wrong when the spectrum is known only over a window. In practice it always is.

Why causality links the two parts

Here χ\chi is the electric susceptibility: how strongly the material polarizes in response to a field, with ε=1+χ\varepsilon=1+\chi. If a material responded instantly, χ\chi would be one real constant, with no dispersion and no absorption. Real materials lag, so χ\chi depends on frequency. The lag has a hard edge: the response to a kick is exactly zero before the kick. Split that response into a part that is even in time and a part that is odd. The even part gives χ1\chi_1 and the odd part gives χ2\chi_2. For their sum to vanish at every earlier time, the two parts must cancel there, so each one fixes the other. The integral below is that bookkeeping written in frequency.

The polarization is built from the field at earlier times only:

P(t)=ε0∫−∞tχ(t−t′) E(t′) dt′χ(ω)=∫0∞χ(τ) eiωτ dτ\begin{gathered}P(t)=\varepsilon_0\int_{-\infty}^{t}\chi(t-t')\,E(t')\,dt'\\ \chi(\omega)=\int_0^\infty\chi(\tau)\,e^{i\omega\tau}\,d\tau\end{gathered}

The transform uses this site's exp⁡(−iωt)\exp(-i\omega t) convention. It starts at τ=0\tau=0 because the response to a kick cannot come before the kick. Because of that, χ(ω)\chi(\omega) is analytic (complex-differentiable, so it has no poles there) in the upper half of the complex frequency plane. Cauchy's theorem then ties its values on the real axis together, provided χ→0\chi\to 0 at high frequency (a constant background such as ε∞\varepsilon_\infty is subtracted first). A real response folds the integral onto positive frequencies; the derivation below gives the steps. The result is

χ1(ω)=2π P ⁣∫0∞Ω χ2(Ω)Ω2−ω2 dΩ\chi_1(\omega)=\frac{2}{\pi}\,\mathcal{P}\!\int_0^\infty\frac{\Omega\,\chi_2(\Omega)}{\Omega^2-\omega^2}\,d\Omega

P\mathcal{P} marks the Cauchy principal value, explained below.

The reference is χ(ω)=9/(9−ω2−0.3 iω)\chi(\omega)=9/(9-\omega^2-0.3\,i\omega), with frequencies in 1015 rad/s10^{15}\,\mathrm{rad/s}: one resonance at ω0=3\omega_0=3 with damping 0.3. Its absorption χ2\chi_2 is positive and is 10 at resonance.

What the principal value does

The weight blows up at Ω=ω\Omega=\omega and changes sign there. Absorption just above the evaluation frequency pushes χ1\chi_1 up; absorption just below pushes it down. The principal value takes both sides symmetrically, so the two divergent halves cancel. It also explains the shape of the reference curve. At ω=2.85\omega=2.85 the absorption line sits just above the evaluation frequency, where the weight is large and positive, so χ1\chi_1 peaks at 5.26. At 3.15 the line sits just below, and χ1\chi_1 drops to −4.76. Both extremes lie about half a linewidth from the centre.

The code does not trust quadrature with that cancellation. For an observed window from aa to bb it evaluates

χ1(ω)≈2π[∫abΩ χ2(Ω)−ω χ2(ω)Ω2−ω2 dΩ+χ2(ω)2ln⁡∣(b−ω)(a+ω)(b+ω)(a−ω)∣]\begin{aligned}&\chi_1(\omega)\approx\frac{2}{\pi}\Biggl[\\ &\quad\int_a^b\frac{\Omega\,\chi_2(\Omega)-\omega\,\chi_2(\omega)}{\Omega^2-\omega^2}\,d\Omega\\ &\quad{}+\frac{\chi_2(\omega)}{2}\ln\left|\frac{(b-\omega)(a+\omega)}{(b+\omega)(a-\omega)}\right|\Biggr]\end{aligned}

The first integrand is smooth, so Simpson's rule handles it. The logarithm is the singular part, integrated exactly. Tails outside the window are added only if you supply them.

Why a finite window is a problem

The integral runs over all frequencies. A measurement does not, and the relation cannot tell that anything is missing. Setting ω=0\omega=0 makes this concrete:

χ1(0)=2π∫0∞χ2(Ω)Ω dΩ\chi_1(0)=\frac{2}{\pi}\int_0^\infty\frac{\chi_2(\Omega)}{\Omega}\,d\Omega

An integral constraint like this over the whole spectrum is called a sum rule. The static value of the Lorentz model is exactly 1. Integrating its absorption up to 100 gives 0.999999. Absorption above 8 supplies 0.0013 of that; absorption above 4 supplies 0.023.

Missing absorption above the window removes a positive term, so the reconstruction comes out low. Well below the missing band, Ω/(Ω2−ω2)≈1/Ω\Omega/(\Omega^2-\omega^2)\approx 1/\Omega and the loss is nearly a constant offset, the kind of term usually absorbed into the constant ε∞\varepsilon_\infty when ε=ε∞+χ\varepsilon=\varepsilon_\infty+\chi is fitted. The reference on this page has no such background. Closer to the upper edge the weight grows and the offset stops being constant. Missing absorption below the window pulls the other way. A smooth reconstructed curve does not show which of these happened.

Derivation from causality and linear response

Maxwell's equations need one material input, D=ε0E+P\mathbf{D}=\varepsilon_0\mathbf{E}+\mathbf{P}. For a linear, time-invariant, isotropic medium, P=ε0 χ∗E\mathbf{P}=\varepsilon_0\,\chi*\mathbf{E} is a convolution in time. With fields proportional to exp⁡(−iωt)\exp(-i\omega t) it becomes a product, so ε(ω)=1+χ(ω)\varepsilon(\omega)=1+\chi(\omega). The rest uses only linearity, causality and a real response, not the field equations.

1. Causality and analyticity. For ω=ω′+iω′′\omega=\omega'+i\omega'', the factor eiωτe^{i\omega\tau} has modulus e−ω′′τe^{-\omega''\tau}. For an integrable response the integral converges for ω′′≥0\omega''\ge0 and can be differentiated for ω′′>0\omega''>0, so χ(ω)\chi(\omega) is analytic in the upper half-plane and continuous up to the real axis; the same integrability makes χ(ω)→0\chi(\omega)\to0 as ∣ω∣→∞|\omega|\to\infty. Physically, charges with mass cannot follow an arbitrarily fast field. An instantaneous part of the response would break this and leave a constant, which is subtracted first. Finally χ(τ)\chi(\tau) is real, because a real field produces a real polarization, and for real ω\omega

χ(−ω)=χ(ω)∗⟹ χ1(−ω)=χ1(ω)χ2(−ω)=−χ2(ω)\begin{aligned}\chi(-\omega)&=\chi(\omega)^*\\ \Longrightarrow\ \chi_1(-\omega)&=\chi_1(\omega)\\ \chi_2(-\omega)&=-\chi_2(\omega)\end{aligned}

2. Cauchy's integral. Fix a real ω\omega and integrate χ(Ω)/(Ω−ω)\chi(\Omega)/(\Omega-\omega) around a closed path in the complex plane (a contour): along the real axis, over a small semicircle of radius δ\delta that passes above Ω=ω\Omega=\omega, and back counterclockwise along a large semicircle of radius RR in the upper half-plane. No singularity is enclosed, so the total is zero. The large arc vanishes as R→∞R\to\infty because χ→0\chi\to0. The small arc is half a clockwise circle around a simple pole, where 1/(Ω−ω)1/(\Omega-\omega) blows up like one over the distance, and contributes −iπχ(ω)-i\pi\chi(\omega) as δ→0\delta\to0. The two straight pieces become the principal value, the integral with a symmetric gap around the pole:

P ⁣∫−∞∞g dΩ=lim⁡δ→0(∫−∞ω−δ+∫ω+δ∞)g dΩ\begin{aligned}&\mathcal{P}\!\int_{-\infty}^{\infty}g\,d\Omega\\ &\quad=\lim_{\delta\to0}\biggl(\int_{-\infty}^{\omega-\delta}+\int_{\omega+\delta}^{\infty}\biggr)g\,d\Omega\end{aligned}

Setting the total to zero gives

χ(ω)=1iπ P ⁣∫−∞∞χ(Ω)Ω−ω dΩ\chi(\omega)=\frac{1}{i\pi}\,\mathcal{P}\!\int_{-\infty}^{\infty}\frac{\chi(\Omega)}{\Omega-\omega}\,d\Omega

Write χ=χ1+iχ2\chi=\chi_1+i\chi_2 and compare real and imaginary parts:

χ1(ω)=1π P ⁣∫−∞∞χ2(Ω)Ω−ω dΩχ2(ω)=−1π P ⁣∫−∞∞χ1(Ω)Ω−ω dΩ\begin{aligned}\chi_1(\omega)&=\frac{1}{\pi}\,\mathcal{P}\!\int_{-\infty}^{\infty}\frac{\chi_2(\Omega)}{\Omega-\omega}\,d\Omega\\ \chi_2(\omega)&=-\frac{1}{\pi}\,\mathcal{P}\!\int_{-\infty}^{\infty}\frac{\chi_1(\Omega)}{\Omega-\omega}\,d\Omega\end{aligned}

The signs belong to the exp⁡(−iωt)\exp(-i\omega t) convention; with exp⁡(+iωt)\exp(+i\omega t) they swap. They agree with the principal-value picture above: positive absorption just above ω\omega raises χ1\chi_1.

3. Folding onto positive frequencies. In the negative-frequency half of the first integral, replace Ω\Omega by −Ω-\Omega and use that χ2\chi_2 is odd. That half becomes ∫0∞χ2(Ω)/(Ω+ω) dΩ\int_0^\infty\chi_2(\Omega)/(\Omega+\omega)\,d\Omega, and 1/(Ω−ω)+1/(Ω+ω)=2Ω/(Ω2−ω2)1/(\Omega-\omega)+1/(\Omega+\omega)=2\Omega/(\Omega^2-\omega^2) gives the relation used on this page. The same step with even χ1\chi_1 gives the inverse:

χ2(ω)=−2ωπ P ⁣∫0∞χ1(Ω)Ω2−ω2 dΩ\chi_2(\omega)=-\frac{2\omega}{\pi}\,\mathcal{P}\!\int_0^\infty\frac{\chi_1(\Omega)}{\Omega^2-\omega^2}\,d\Omega

4. Removing the pole. Partial fractions give an antiderivative for the bare weight:

∫dΩΩ2−ω2=12ωln⁡∣Ω−ωΩ+ω∣\int\frac{d\Omega}{\Omega^2-\omega^2}=\frac{1}{2\omega}\ln\left|\frac{\Omega-\omega}{\Omega+\omega}\right|

It is zero at Ω=0\Omega=0 and tends to zero as Ω→∞\Omega\to\infty. The contributions from the two sides of the pole, 12ωln⁡(δ/2ω)\tfrac{1}{2\omega}\ln(\delta/2\omega) and its negative, cancel, so P ⁣∫0∞dΩ/(Ω2−ω2)=0\mathcal{P}\!\int_0^\infty d\Omega/(\Omega^2-\omega^2)=0. Subtracting ωχ2(ω)\omega\chi_2(\omega) times this zero from the numerator changes nothing, but the new numerator Ωχ2(Ω)−ωχ2(ω)\Omega\chi_2(\Omega)-\omega\chi_2(\omega) vanishes at Ω=ω\Omega=\omega, so the integrand is finite there. On a window [a,b][a,b] containing ω\omega the subtracted term no longer integrates to zero. Evaluating the antiderivative between aa and bb gives

ωχ2(ω) P ⁣∫abdΩΩ2−ω2=χ2(ω)2ln⁡∣(b−ω)(a+ω)(b+ω)(a−ω)∣\begin{aligned}&\omega\chi_2(\omega)\,\mathcal{P}\!\int_a^b\frac{d\Omega}{\Omega^2-\omega^2}\\ &\quad=\frac{\chi_2(\omega)}{2}\ln\left|\frac{(b-\omega)(a+\omega)}{(b+\omega)(a-\omega)}\right|\end{aligned}

which is the logarithm in the singularity-subtracted integral.

5. The sum rule. Setting ω=0\omega=0 in the folded relation removes the pole and leaves the static sum rule. This needs χ2(Ω)/Ω\chi_2(\Omega)/\Omega to be integrable at zero. A conductor's Drude response does not decay: after a kick the free charges keep drifting, and χ(τ)→ωp2/γ\chi(\tau)\to\omega_p^2/\gamma. That puts a pole iωp2/(γω)i\omega_p^2/(\gamma\omega) on the contour at ω=0\omega=0, so it is taken out before step 2. The Lorentz reference has its poles at ω≈±2.996−0.15i\omega\approx\pm2.996-0.15i, in the lower half-plane, and decays as 1/ω21/\omega^2.

Three things to try

The default window. The page opens with absorption known from 0.1 to 8 and zero outside. At 81 sampled frequencies across the central 72% of the window, the largest error is 0.0028, at ω≈6.89\omega\approx 6.89, where the reconstruction gives −0.2358 against −0.2329. The absorption above 8 accounts for essentially all of it: its contribution is 0.0028 there and 0.0014 at the lower end of that range, 1.21. Doubling the quadrature intervals changes the result by about 10−1110^{-11}, so this is window error, not grid error. Now move the window end to 30. The reported error falls to 6.4×10−56.4\times10^{-5}, but the scored central range now starts at 4.3, so the resonance is no longer measured. Near ω=3\omega=3 the error is still about 0.002: the same 512 intervals are spread over a window almost four times wider and no longer resolve the line. At 1024 intervals it drops to about 2×10−52\times10^{-5}. A wider window fixes the tails and can quietly break the grid.

A window around the resonance. Set the window to 2–4. The peak is still inside, yet the largest error rises to 0.068, at ω≈3.72\omega\approx 3.72. Choose Supply Lorentz-model tails and it drops to 6×10−76\times10^{-7}; what remains is the absorption above 100, where the supplied tails stop. With a tail scale of 0.5 it is 0.034: the relation is linear in χ2\chi_2, so half the missing absorption leaves half the error. Supplying the correct tails is a reliable way to get the right answer, provided you already know it.

Too few intervals. Return to the default window and choose 64 intervals. The error jumps to 0.15 near the resonance, at ω≈2.98\omega\approx 2.98, and doubling the intervals changes the result by a similar 0.15. The intervals are 0.12 wide, and Simpson's rule fits one parabola to every two of them. The absorption line is 0.3 wide at half its height, so one parabola spans most of it. Here the convergence check catches the problem. In the first example it could not, because a well-converged integral over the wrong window is still wrong.

Reconstruction settings

Known reference: χ(ω)=99−ω2−0.3 iω\chi(\omega) = \dfrac{9}{9 - \omega^2 - 0.3\,i\omega}, with frequencies expressed in 1015 rad/s10^{15}\,\mathrm{rad/s}. Reconstruct χ1\chi_1 from χ2\chi_2; the background ε∞\varepsilon_\infty is separate.

Reconstruction and error

Observed window: 0.1–8×1015 rad/s0.1\text{–}8\times 10^{15}\,\mathrm{rad/s}. Outside it, the response is assumed zero. This assumption is not a measurement.

Real susceptibility
5.262.770.276-2.22-4.710.49507.605Angular frequency (10¹⁵ rad/s)χ₁

Analytic reference Reconstructed

Sample values
Angular frequency (10¹⁵ rad/s)Analytic reference (χ₁)Reconstructed (χ₁)
0.495001.02771.0264
0.708301.05841.0570
0.921601.10291.1016
1.13491.16471.1634
1.34821.24911.2477
1.56151.36461.3633
1.77481.52581.5244
1.98811.75851.7571
2.20142.11332.1118
2.41472.69882.6974
2.62803.76493.7635
2.84135.26075.2593
3.0546-3.1350-3.1365
3.2679-3.9972-3.9987
3.4812-2.5948-2.5963
3.6945-1.8317-1.8332
3.9078-1.3867-1.3883
4.1211-1.1009-1.1025
4.3344-0.90363-0.90529
4.5477-0.76008-0.76177
4.7610-0.65140-0.65314
4.9743-0.56657-0.56836
5.1876-0.49871-0.50056
5.4009-0.44335-0.44527
5.6142-0.39744-0.39943
5.8275-0.35882-0.36090
6.0408-0.32596-0.32814
6.2541-0.29771-0.30001
6.4674-0.27321-0.27565
6.6807-0.25179-0.25440
6.8940-0.23293-0.23576
7.1073-0.21623-0.21934
7.3206-0.20135-0.20484
7.5339-0.18802-0.19210

Maximum absolute error over the central 72% of the input window: 0.0028297. Change on doubling the quadrature intervals: 9.8681e-12. The outer 5% on each side is not plotted; edge estimates are particularly sensitive to missing data. Grid convergence does not remove window error.

Integral and assumptions

The relation and the singularity-subtracted window integral are given in the introduction above. Composite Simpson quadrature handles the smooth remainder; the singular part is integrated analytically. In the code, f(Ω)=Ωχ2(Ω)f(\Omega)=\Omega\chi_2(\Omega) and the logarithmic term is written (f(ω)/2ω)ln⁡∣⋯∣\bigl(f(\omega)/2\omega\bigr)\ln|\cdots|, which is equivalent. The derivation assumes a linear, time-invariant medium with an integrable real response, χ→0\chi\to0 at high frequency and no pole at ω=0\omega=0.

Only the known bound Lorentz example is supported. This is not arbitrary experimental inversion. Zero-frequency Drude poles need additional treatment. Neither finite data nor a smooth reconstructed curve uniquely fixes the missing spectrum.

History of the method

Ralph Kronig published the first known dispersion relation in 1926, in a paper on the dispersion of X-rays. It gave the refractive index n−1n-1, not the susceptibility, in terms of the atomic absorption coefficient; the abstract calls it a general formula. Hendrik Kramers presented a related result at the 1927 physics congress in Como. According to Craig Bohren's historical review, Kramers obtained both members of the pair, for the real and imaginary parts of the atomic polarizability, whereas Kronig gave only one relation. Kramers then asked, without showing it, whether the same connection holds for the susceptibility of a denser medium.

Bohren also notes that neither paper mentioned causality or signal speed. Both started from specific models of an atomic gas, built on the Sellmeier oscillator formula, whose 1/(Ω2−ω2)1/(\Omega^2-\omega^2) factor survives in the modern relation. He identifies a 1942 Dutch-language paper by Kronig as a model-independent derivation from a polarization response that vanishes for negative time, though even there causality is not named explicitly.

John Toll's 1956 paper in Physical Review is, in Bohren's words, a frequently cited paper on the foundations of causality and dispersion relations. Bohren disputes one of its historical statements: that Kramers had used the relation to show a signal cannot travel faster than light.

Method context and references

Causality connects dispersion and absorption, but using the relation requires information beyond a measured window. M. S. Dresselhaus, Optical Properties of Solids, MIT course notes, section 6.1 derives the principal-value relation, singularity subtraction and extrapolation requirements (printed pages 58–63; PDF pages 62–67). The finite-window form with the logarithm, the analytic example and the numerical experiment were derived and implemented for this page.

R. de L. Kronig, On the theory of dispersion of X-rays, Journal of the Optical Society of America 12(6), 547–557 (1926). Only the publisher's abstract was read; the full text is behind a paywall.

H. A. Kramers, La diffusion de la lumière par les atomes, Atti del Congresso Internazionale dei Fisici, Como–Pavia–Roma, vol. 2, 545–557 (Zanichelli, Bologna, 1927). Not consulted; citation details and the description above follow Bohren, who also notes an English translation in D. ter Haar, Master of Modern Physics: The Scientific Contributions of H. A. Kramers (Princeton University Press, 1998), Appendix D.

Craig F. Bohren, What did Kramers and Kronig do and how did they do it?, European Journal of Physics 31(3), 573–577 (2010). A historical review, read in full; the history section follows it. It also gives the static sum rule used in the introduction.

John S. Toll, Causality and the dispersion relation: logical foundations, Physical Review 104(6), 1760–1770 (1956). Metadata only; the paper was not read, and its content is described here as reported by Bohren.

Lorentz and Drude models →

Calculation source code · Implementation and validation notes