A Byte of PhysicsLogo

Dispersion

Dispersion occurs when phase evolution depends on wave number. A localized packet contains a range of wave-number components, so a component-dependent speed changes its internal alignment and can spread or reshape the packet over time. It is a property of the evolution rule, not a blur effect added after rendering.

Think like a programmer

Encode the dispersion relation as one pure function omega(k). Sample that same function over the packet's wave-number bins, advance every component by omega(k) * Δt, and reconstruct the signal from those evolved phases. Keep physical material parameters separate from grid and time-step parameters so numerical dispersion cannot masquerade as material behavior.

Model checklist

Inputs
Dispersion relation ω(k), component wave numbers, initial complex amplitudes and phases, spatial grid, and time.
State
Per-component phase, reconstructed samples, packet centre, width, and solver configuration.
Rule
Advance each component phase with its own angular frequency, then sum the components on the grid.
Output
Phase velocity, group velocity, packet position, width, and shape.
Check
For ω = vk, phase and group velocity both equal v; reversing time restores an ideal lossless spectral state; refinement separates numerical from physical spreading.
\[v_p=\frac{\omega}{k}\qquad v_g=\frac{d\omega}{dk}\]

v_p follows a particular crest, while v_g estimates how the envelope of nearby components moves. They are equal for the nondispersive relation ω = vk; equality is a consequence of the relation, not a general rule for waves. For a deliberate test fixture, choose

\[\omega(k)=vk+\alpha k^3,\qquad v_p=v+\alpha k^2,\qquad v_g=v+3\alpha k^2\]

When α = 0, both derived speeds are exactly v. When α ≠ 0, components near different k values advance at different rates. A component solver can use this analytic relation as an oracle: compare a finite-difference estimate of dω/dk with the known v + 3αk², and make the zero-curvature case a regression test.

Dispersion-relation explorer

This model samples ω(k) = vk + αk³. Change α and the packet's central wave number k; the curve and the two derived velocities update from the same relation.

kω
Dispersion relation ω(k)
Selected wave-number sample
Axes and zero reference

At k = 2.0, ω = 2.80; phase velocity = 1.40; group velocity = 2.20. The unequal speeds indicate dispersion.

The text result provides the sampled dispersion relation and both velocities. The curve is a view of those computed values.

The explorer deliberately shows the relation before it shows a packet. This ordering matters: the curve is the model contract and any packet animation is downstream output. A spectral packet implementation stores an amplitude A(k) and applies a phase factor such as exp(-iω(k)t) before transforming back to position samples. A real-valued display may show one component of that reconstructed signal, but its width or apparent motion must be measured from data, not guessed from a moving line.

Try this experiment

Prediction: Turning α from zero to a positive value makes group velocity increase with the central wave number and separates it from phase velocity.

Set v = 1, compare k = 1 and k = 3 at α = 0.1, and predict which component band reaches a fixed downstream location first. Then write the zero-curvature assertion and the finite-difference test for group velocity.

Where this model breaks

This model assumes a linear, homogeneous, one-dimensional, lossless medium and a relation known for every represented wave number. Real media can absorb, scatter, have band gaps, be anisotropic, or make group velocity a poor proxy for signal or energy velocity. Finite grids, aliasing, time integrators, and boundary conditions can create numerical dispersion even when the target physical relation is nondispersive; compare resolutions and keep the numerical relation in the run record.

Summary

Dispersion is component-dependent phase evolution. Treat ω(k) as executable input, derive phase and group speed from it, test the nondispersive limit, and use refinement to separate a physical packet change from a discretization artifact.

Glossary

Self-check

  1. Why can a packet reshape even when each component preserves amplitude?
  2. Which function should code expose before it renders a packet?
  3. Which zero-curvature test detects the nondispersive limit?
  4. What numerical artifact can mimic physical dispersion?

Sources

Model contract

Treat the lesson as a small function before treating it as a fact to memorize. Give every value a unit, keep only the state needed for the next step, and make the output easy to inspect.

\[\text{observable output} = f(\text{inputs},\,\text{state})\]
Inputs
Quantities you set or measure, with units and useful bounds.
State
Values the program must retain to reproduce the next result.
Rule
The relationship or update that turns inputs and state into a result.
Check
A known limit, unit check, invariant, or measured result that can expose a bad model.

Implement the idea as a model

For Dispersion, write down the quantities you can control, the values your program must retain, and the result a reader could inspect. In Waves II — Analysis and Transformations, the useful program is not the drawing: it is the smallest explicit model that makes a prediction you can test.

Guided experiment

Prediction: changing one declared input while holding the others fixed should change only the outputs that the model connects to that input. Choose one input, predict the direction of change, then check a limiting case such as zero, a symmetric arrangement, or a familiar low-speed or small-change approximation.

Where this model breaks

This lesson is a teaching model, not a complete simulator. Before using it outside the stated question, check which interactions, scales, uncertainties, boundary conditions, and measurement limits it leaves out.

Summary

Treat Dispersion as a contract: named inputs and units enter a rule, the rule produces an observable result, and a known limit or invariant checks whether the implementation deserves trust.

Glossary

  • Input: a measured value or chosen parameter supplied to a model.
  • State: the smallest set of values needed to continue or reproduce a model.
  • Validation: comparing an output with a known result, limit, invariant, or measurement.

Self-check

  1. Which values are inputs, and which values must remain state?
  2. What observable result would tell you the model is behaving as expected?
  3. Which assumption would you test first before applying the model to a real system?

Model review: turn Dispersion into a test

Evolve wave components from a dispersion function and distinguish physical spreading from grid artifacts.

  1. Name the inputs and units that the waves ii — analysis and transformations model needs.
  2. Separate the state you must keep from values you can calculate when needed.
  3. Write one rule that maps the current state and inputs to an observable result.
  4. Choose a limiting case, unit check, invariant, or known result before trusting an output.
  5. State one assumption you would change before using this simplified model for a real decision.

Share to: