Some of the well-known linear dispersive wave equations are defined by

(KG) u_tt = u_xx - u, (KdV) u_t = u_xxx, (BO) u_t = H(u_xx), (S) u_t = iu_xx, (RLW) u_t + u_x = u_xxt.

These PDEs are respectively known as the Klein-Gordon, Korteweg-de Vries, Benjamin-Ono, Schroedinger, and Regularized Long Wave equations. All are considered here as pure intial-value problems on the real line. All of them have more famous nonlinear counterparts; here we will consider only the linear cases. (In the case of the Benjamin-Ono equation the operator H is the Hilbert transform on the real line.)

Equations such as these are solved by making the ansatz u = exp(i(kx-wt)), upon which one obtains the so-called dispersion relations

(KG) w^2 = k^2 + 1, (KdV) w = k^3, (BO) w = sgn(k) k^2, (S) w = k^2, (RLW) w = k/(1+k^2).

These dispersion relations, and particularly the group velocities dw/dk, give a complete description of the evolution of each wave equation.

The dispersion relations also enable one to solve these PDEs both analytically and numerically. Analytic solutions involve Fourier integrals; numeric solutions are obtained by computing the Fourier integrals with the discrete Fourier transforms, i.e., the FFT.

As for the numerics, one proceeds as follows: given an initial condition u(x,0) this is converted to Fourier space via the FFT, to give say a(k,0). Then the solution is advanced in Fourier space with respect to the t variable, i.e., a(k,t) = a(k,0) exp(-i*w(k)*t). An inverse FFT brings one back to the space space variable u(x,t). Since the integration is performed exactly with respect to t the only errors incurred here are the errors in approximating the Fourier integral with the discrete Fourier transform. These errors can be rendered small by (a) selecting many points in the FFT, and (b) choosing a sufficiently large space interval so that the waves do not "feel" the the boundaries (somewhat difficult to do with a problem such as KdV where the dispersion is strong.)

The Matlab script file waves.m implements the above idea. It includes all five the above PDEs as special cases.

With this code, one may investigate the various dispersive effects of these PDEs. This plot, for instance, shows the solution of all five these PDEs corresponding to the same initial condition u(x,0) = sech(x). The solutions have been plotted on the same space interval, [-50,50], but at different times t. For a PDE with strong dispersion, such as KdV, we could go only to about t = 1 before the waves reached the edge of the computational domain. With weak dispersion, such as the KG and RLW equations, we could go to about t = 30 or t = 40.

With some additional work it is also possible to use this Matlab file to create animations of these solutions. Here is an animation of the evolution of the linear Klein-Gordon equation under the initial conditions u(x,0) = sech(x), u_t(x,0) = 0.

(Special thanks to Mojgan Hajebi at the Faculty Development Lab of the Communications Media Center at Oregon State Univeristy, for helping to create the animation.)

Last updated: Ferbruary 26, 1998.