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
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.
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)
Yorke. (1996). CHAOS: An Introduction to Dynamical Systems: p371. ↩︎