Rossler Attractor 2D_02

Rossler Attractor 2D_02 preview image

1 collaborator

Tags

Visible to everyone | Changeable by everyone
Model was written in NetLogo 6.0.1 • Viewed 687 times • Downloaded 60 times • Run 0 times
Download the 'Rossler Attractor 2D_02' modelDownload this modelEmbed this model

Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)


NB: Since this model is very slow while run in NetLogo Web it is recommended to download and run it on your PC.

WHAT IS IT?

This is a model of the phase-plane of a system consisting of three ordinary differential equations, known as Rössler system or Rössler attractor. It shows chaotic behavior for certain parameter values.

The model is intended to visualize Rössler attractor in 2D view with the possibility of changing two of the key parameters (i.e. c-parameter and a-parameter).

HOW IT WORKS

It is a system of three non-linear ordinary differential equations originally studied by Otto Rössler:

dX/dt = - Y - Z dY/dt = X + aY dZ/dt = b + Z(X - c)

where a, b and c are system parameters. Rössler studied the chaotic attractor with a = 0.2, b = 0.2, and c = 5.7.

In the actual model b=0.2 while ‘a’ and ‘c’ can be varied by respective sliders: [0; 0.3] for ‘a’, and [4; 12] for ‘c’.

Governed by these equations and calculations a phase-plane is created: with each calculation a turtle is generated and plotted on the plane with respective X and Y coordinates.

HOW TO USE IT

(1) Setup: creates basic conditions for the model to run (i.e. erases data from previous runs, generates X, Y axes, etc.).

(2) Go: starts running the model with generation of new points (turtles) in accordance with numeric values as a result of calculations, performed every time-step.

(3) ‘c-slider’ is used to change c-value (before a new run)

(4) ‘a-slider’ is used to change a-value (before a new run)

(5) The plot shows X, Y, Z values on each time-step/tick

THINGS TO NOTICE

Rössler attractor’s behavior is largely a factor of the values of its constant parameters a, b, and c. Varying each parameter has a comparable effect by causing the system to converge toward a periodic orbit, fixed point, or tend to infinity, however the specific ranges and behaviors induced vary substantially for each parameter. Periodic orbits, or “unit cycles,” of the Rössler system are defined by the number of loops around the central point that occur before the loops series begins to repeat itself.

For example with ‘b’= 0.2, and ‘c’ fixed at 5.7, a = 0 will show convergence to the centrally located fixed point. With ‘a’ = 0.1 will get a unit cycle of period 1 and ‘a’ = 0.2 (these are standard parameter value selected by Rössler) will get chaotic behavior. An ‘a’= 0.3 will provide a Möbius strip-like chaotic attractor.

THINGS TO TRY

Run the model with different ‘c’ and ‘a’ values. Observe the results (i.e. long term behavior, the form of the shape/attractor, etc.).

An option would be to run the model with extreme (min/max) values of parameters, allowed by sliders.

EXTENDING THE MODEL

This is a 2D version of Rössler attractor. Z-coordinate although calculated and present on plot are evidently not visible on the plane. An extension would be building a 3D version of the model.

NETLOGO FEATURES

Initially the model was built with the use of NetLogo System Dynamics Modeler, then it was converted from ‘System Dynamics’ version to a ‘regular’ one by recompiling the code and adding new pieces of the code with respective changes/additions in the model interface (buttons, sliders, etc.)

RELATED MODELS

• Lorenz Attractor Model, which is part of a suit of models created to visualize some key concepts of Chaos Theory and Dynamical Systems. Most of the models are available on http://modelingcommons.org/account/models/2495

CREDITS AND REFERENCES

This simple abstract model was developed by Victor Iapascurta, MD. At time of development he was in the Department of Anesthesia and Intensive Care at University of Medicine and Pharmacy in Chisinau, Moldova / ICU at City Emergency Hospital in Chisinau. Please email any questions or comments to viapascurta@yahoo.com

The model was created in NetLogo 6.0.1, Wilensky, U. (1999). NetLogo. http://ccl.northwestern.edu/netlogo/. Center for Connected Learning and Computer-Based Modeling, Northwestern University, Evanston, IL.

This model was inspired by Introduction to Dynamical Systems and Chaos (Fall, 2017) MOOC by David Feldman @ Complexity Explorer (https://www.complexityexplorer.org/courses).

Comments and Questions

Please start the discussion about this model! (You'll first need to log in.)

Click to Run Model

globals [
     mylist-x
     mylist-y
     mylist-z
     b
     X
     Y
     Z
     dt
    ]

to setup
  clear-all
  ask patches with [ pxcor = 0 ] [  set pcolor white ]
  ask patches with [ pycor = 0 ] [  set pcolor white ]

  set mylist-x list 0 (X)
  set mylist-y list 0 (Y)
  set mylist-z list 0 (Z)
  system-dynamics-setup
  system-dynamics-do-plot
end 

to system-dynamics-setup
  reset-ticks
  set dt 0.01
  set b 0.2
  set X 1
  set Y 0
  set Z 0
end 

to go
  system-dynamics-go
  system-dynamics-do-plot
  set mylist-x lput result-x mylist-x
  set mylist-y lput result-y mylist-y
  set mylist-z lput result-z mylist-z

  crt 1 [
  set color red
  set xcor (last mylist-x ) * 7
  set ycor (last mylist-y ) * 7
  set size 0.5
  set shape "circle"
  ]
end 

to-report result-x
  report X
end 

to-report result-y
    report Y
end 

to-report result-z
    report Z
end 

to system-dynamics-go

  let local-c c
  let local-inflow inflow
  let local-inflow1 inflow1
  let local-inflow2 inflow2

  let new-X ( X + local-inflow1 )
  let new-Y ( Y + local-inflow )
  let new-Z ( Z + local-inflow2 )
  set X new-X
  set Y new-Y
  set Z new-Z

  tick-advance dt
end 

to-report inflow
  report ( X + a * Y
  ) * dt
end 

to-report inflow1
  report ( - Y - Z
  ) * dt
end 

to-report inflow2
  report ( b + Z * ( X - c )
  ) * dt
end 

to-report c
  report c-slider
end 

to-report a
  report a-slider
end 

to system-dynamics-do-plot
  if plot-pen-exists? "X" [
    set-current-plot-pen "X"
    plotxy ticks X
  ]
  if plot-pen-exists? "Y" [
    set-current-plot-pen "Y"
    plotxy ticks Y
  ]
  if plot-pen-exists? "Z" [
    set-current-plot-pen "Z"
    plotxy ticks Z
  ]
end 

There is only one version of this model, created almost 8 years ago by Victor Iapascurta.

Attached files

File Type Description Last updated
Rossler Attractor 2D_02.png preview Preview for 'Rossler Attractor 2D_02' almost 8 years ago, by Victor Iapascurta Download

This model does not have any ancestors.

This model does not have any descendants.