logo

Rössler Attractor 📂Dynamics

Rössler Attractor

Overview

The Rössler Equation is one of the systems introduced to have a simple yet chaotic attractor.

System1

$$ \begin{align*} {{dx} \over {dt}} =& - y - z \\ {{dy} \over {dt}} =& x + ay \\ {{dz} \over {dt}} =& b + (x-c) z \end{align*} $$

Variables

  • $x(t)$: Represents the $x$ coordinate of a particle at time $t$.
  • $y(t)$: Represents the $y$ coordinate of a particle at time $t$.
  • $z(t)$: Represents the $z$ coordinate of a particle at time $t$.

Parameters

  • $a,b,c$: Does not have an intuitive meaning.

These parameters are conventionally set as $a = 0.1$, $b = 0.1$, $c = 14$.

Description

rossler.gif

If Lorenz attractor is absolutely indispensable when it comes to Chaos, the next in line in terms of fame is this Rössler equation among ordinary differential equations. It is simpler and does not have symmetry unlike the Lorenz equation.

rossler.svg

Looking at the trajectory, you can see that it initially spirals around the origin and then, after surpassing $t=50$, it suddenly jumps to the $z$ axis. The timing or height of these jumps in the Rössler attractor cannot be guessed, making it chaotic.

Code

Below is the Julian code to reproduce the above images.

using Plots
using OrdinaryDiffEq

function Rössler!(u, p, t)
    x, y, z = u
    a, b, c = p

    ẋ = -y -z
    ẏ = x + a*y
    ż = b + (x - c) * z
    return [ẋ, ẏ, ż]
end

u0 = [1.0, 1.0, 1.0]
tspan = (0.0, 100.0); dt = 0.01
p = (0.1, 0.1, 14)

prob = ODEProblem(Rössler!, u0, tspan, p)
sol = solve(prob, RK4(), saveat = dt)

plot(
    plot(sol, idxs = (0,1), title = "x"),
    plot(sol, idxs = (0,2), title = "y"),
    plot(sol, idxs = (0,3), title = "z"),
    plot(sol, idxs = (1,2,3), title = "Trajectory"),
    legend = :none, size = (800,800)
)
savefig("rossler.svg")

anime = @animate for t in 1:10:10000
    plot(sol[1:t], idxs = (1,2,3),
      lw = 2, alpha = (1:t)/t, color = :black, size = (400,400), legend = :none,
      xlims = (-25,25), ylims = (-25,25), zlims = (0,30))
end
gif(anime, "rossler.gif", fps = 30)

  1. Yorke. (1996). CHAOS: An Introduction to Dynamical Systems: p371. ↩︎