Lorenz Attractors with Plotly.js
My introduction to the world of strange attractors, and chaos theory at large, was James Gleick’s Chaos: Making a New Science. Gleick manages to carry readers through technical material in a way that’s approachable for the chaos-curious yet mathematically untalented (e.g., myself). Luckily, the mystery and complexity of the subject matter does not seem lost in its popular audience translation. We’re given a window into the work of early chaos figures including meteorologist Edward Lorenz who’s considered modern chaos theory’s founder.
While experimenting with computer simulation of weather systems, Lorenz simplified a series of fluid dynamics equations (the Naiver-Stokes equations) to create a stripped down mathematical model of atmospheric convection. Lorenz describes these equations in his famous 1963 paper Deterministic Nonperiodic Flow. The Lorenz equations are:
$$\frac{dx}{dt} = \sigma(y - x)$$ $$\frac{dy}{dt} = x(\rho - z) - y$$ $$\frac{dz}{dt} = xy - \beta z$$
Below is a plot that demonstrates a Lorenz system, generated with Plotly.js. The plot is initialized to the values Lorenz used, which give rise to the famous butterfly-shaped Lorenz attractor: σ = 10, ρ = 28, and β = 8/3. Two traces are initialized at different starting coordinates. Feel free to use the sliders to adjust the system’s parameters, reset the plot, and see how it impacts its behavior.
σ =
ρ =
β =