lorenz_ode_sensitivity_test


lorenz_ode_sensitivity_test, a Python code which demonstrates sensitivity to initial conditions in the Lorenz system of ordinary differential equations (ODE), using an approach suggested by John D Cook.

The Lorenz system, originally intended as a simplified model of atmospheric convection, has instead become a standard example of sensitive dependence on initial conditions; that is, tiny differences in the starting condition for the system rapidly become magnified. The system also exhibits what is known as the "Lorenz attractor", that is, the collection of trajectories for different starting points tends to approach a peculiar butterfly-shaped region.

The Lorenz system includes three ordinary differential equations:

        dx/dt = sigma ( y - x )
        dy/dt = x ( rho - z ) - y
        dz/dt = xy - beta z
      
where the parameters beta, rho and sigma are usually assumed to be positive. The classic case uses the parameter values
        beta = 8 / 3
        rho = 28
        sigma - 10
      

The initial conditions for this system are not often specified; rather, investigators simply note that the trajectories associated with two very close starting points will eventually separate. In this program, we consider two initial conditions at t=0:

        x1 = 1
        y1 = 1
        z1 = 1
      
and
        x1 = 1
        y1 = 1
        z1 = 1.00001
      
and allow the system to evolve over 0 ≤ t ≤ 40. Plotting the values of x1-x2 over time shows the rather large and chaotic variation in the solutions.

Licensing:

The computer code and data files described and made available on this web page are distributed under the MIT license

Languages:

lorenz_ode_sensitivity_test is available in a MATLAB version and a Python version.

Author:

Original Python code by John D Cook. Modifications by John Burkardt.

Related Data and Programs:

lorenz_ode, a Python code which approximates solutions to the Lorenz system of ordinary differential equations (ODE), creating graphics output using matplotlib.

Reference:

  1. John Cook,
    A different view of the Lorenz system,
    https://www.johndcook.com/blog/
    26 January 2020.

Source Code:


Last revised on 26 January 2020.