Dispersion relation for water waves

version (40.5 KB) by Frederic Moisy
Dispersion relation, and its inverse, for surface waves (eg, finding wavenumber from frequency).


Updated 30 Apr 2010

View License

This set of functions simply provides an easy way to work with the dispersion relation of surface waves, given by

omega(k) = sqrt ( tanh(k*h0) * (g*k + gamma*k^3/rho))

where omega is the pulsation (in rad/s), k the wavenumber (in 1/m), h0 the depth, g the gravity, gamma the surface tension and rho the density.

The function kfromw allows one to invert the dispersion relation, i.e. to give the value of omega for a given value of k.
(For infinite depth, kfromw simply inverts the cubic polynomial. For finite depth, a zero-finding method is used, starting from the infinite depth solution).

By default, the physical parameters (liquid densities, surface tension, etc.) are set for an air-water interface under usual conditions, with a water layer of infinite depth ("deep water waves"). Use the function wave_parameter to change those properties.

See the published file "demo" to learn more about this package.

Cite As

Frederic Moisy (2022). Dispersion relation for water waves (https://www.mathworks.com/matlabcentral/fileexchange/27391-dispersion-relation-for-water-waves), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R14
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!