Skip to content

Commit cc753ee

Browse files
authored
add Zavlaskii map (#30)
1 parent 449d368 commit cc753ee

File tree

2 files changed

+33
-1
lines changed

2 files changed

+33
-1
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name = "PredefinedDynamicalSystems"
22
uuid = "31e2f376-db9e-427a-b76e-a14f56347a14"
33
repo = "https://github.com/JuliaDynamics/PredefinedDynamicalSystems.jl.git"
4-
version = "1.3"
4+
version = "1.4"
55

66
[deps]
77
DynamicalSystemsBase = "6e36e845-645a-534a-86f2-f5d4aa5a06b4"

src/discrete_famous_systems.jl

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -548,3 +548,35 @@ function ulam_rule(dx, x, p, t)
548548
dx[i] = ulam_rule_f*x[mod1(i-1, N)] + (1-ε)*x[i])
549549
end
550550
end
551+
552+
553+
"""
554+
```julia
555+
zaslavskiimap(u0=[0.1, 0.2]; ϵ=5.0, ν=0.2, r = 2.0)
556+
```
557+
```math
558+
\\\\begin{aligned}
559+
x_{n+1}=[x_n+\\nu(1+\\mu y_n)+\\epsilon\\nu\\mu\\cos(2\\pi x_n)]\\, (\\textrm{mod}\\,1) \\\\
560+
y_{n+1}=e^{-r}(y_n+\\epsilon\\cos(2\\pi x_n))
561+
\\\\end{aligned}
562+
```
563+
A two dimensional discrete chaotic map, claimed incredibly wrongly as
564+
"the simplest case of a strange attractor" by [^Zaslavskii1978].
565+
It doesn't even come close to the simplest case, which is likely the logistic map.
566+
567+
The Ikeda map was proposed by Ikeda as a model to explain the propagation of light into a ring cavity [^Skiadas2008]. It generates a variety of nice-looking, interesting attractors.
568+
The default parameters are chosen to give a unique chaotic attractor. A double attractor can be obtained with parameters `[a,b,c,d] = [6, 0.9, 3.1, 6]`, and a triple attractor can be obtained with `[a,b,c,d] = [6, 9, 2.22, 6]` [^Skiadas2008].
569+
570+
[^Zaslavskii1978] : "The Simplest case of a strange attractor". Phys. Lett. A. 69 (3): 145–147. doi:10.1016/0375-9601(78)90195-0.
571+
"""
572+
function zaslavskiimap(u0=[0.1, 0.2]; ϵ=5.0, ν=0.2, r = 2.0)
573+
return DeterministicIteratedMap(zaslavskiimap, u0, [ϵ, ν, r])
574+
end
575+
@inbounds function zaslavskiimap_rule(u, p, n)
576+
ϵ, ν, r = p
577+
μ = (1 - exp(-r))/r
578+
x, y = u
579+
dx = mod(x + ν*(1 + μ*y) + ϵ*ν*μ*cos2pi(x), 1.0)
580+
dy = exp(-r)*(y + ϵ*cos2pi(x))
581+
return SVector{2}(dx, dy)
582+
end

0 commit comments

Comments
 (0)