Nonlinear Dynamical Systems Studio (NDSS) is a web application visualizing the behavior of nonlinear dynamical systems.
At the moment, NDSS supports nonlinear systems having 4 or less space dimensions, continous time and real space domain. Up to 6 parameters can be controlled interactively.
NDSS is tested with the latest Chrome browser on a 4K screen running in 200% scaling (thus in FHD resolution). It is highly recommended to run the web page in full screen mode. NDSS is optimized but it is still compute intensive.
In this help page, the relevant terms or controllable variables for NDSS are shown in bold.
NDSS has no stop or pause button, it always runs. When NDSS first starts, Lorenz System is selected by default.
The nonlinear dynamical system is selected using the combobox on the top of the page. The [number][letter][letter][number] suffix after the name means the [number of space dimensions][time domain][space domain][number of parameters]. In time domain, C means Continuous. In space domain, R means Real. The systems are ordered by their name in the combobox.
The [i] link next to the combobox opens the resource I have used to implement this system.
The selected nonlinear dynamical system is solved using Runge-Kutta-Fehlberg 4(5) method (RKF45) which is a method of order O(h⁴) with an error estimator of order O(h⁵). The step-size h is fixed at 0.001.
The maximum error (maxerr) while running the algorithm is shown on the top right of the page. When the error is more than the error tolerance (etol) which is fixed at 1e-6, maxerr text turns to red, and returns back to normal when the solution is finished. maxerr should never be red.
The performance of the solver is indicated as steps/s. If the solver cannot catch the frame rate (more info about this is given in the Controls section), the steps/s turns to red, and returns back to normal when the solution is finished. If this happens very often, Speed (steps/frame) should be reduced.
The plots are not configurable. There are always 6 plot areas shown, and not all might be active. Three squares on the top row are XY phase-space plots. Three smaller rectangles on the bottom row are XT (time) plots. On top of the each plot, x-axis and y-axis is indicated (like xy or tx). For XT plots, indication is tx because t (time) is the x-axis.
The XY plots are always auto-centering. The axes are real, drawn intersecting on the real origin (0, 0).
Both XY and XT plots are always auto-ranging. The auto-range exactly fits the solutions to the plot displays. The minimums (and maximums) for auto-center and auto-range are not increased (and decreased) for all solutions. This is because different initial points might have considerably different plots.
Because auto-range alone fits the solution to the plot display exactly, a single Scale factor is used (like zoom in/zoom out) to improve visibility. The default Scale is 2, meaning the solution fits to the 1/4 of the plot area. Since it takes one solution to find the first information about the ranges, the first plot will not be auto-ranged, hence it might appear to be too small or too large.
The parameters of the nonlinear dynamical system are shown with the labels as used in the system equations. These parameter can be modified and they will be applied in the next solution.
The initial value (v0) of the solution can be set by different mechanisms using the v0 combobox. The v0 mechanisms are:
Invisible Dimesion and Scale are explained in the Plots section.
RKF45 algorithm is run in a Web Worker (worker thread) separate from the main UI thread. The display (plot) updates are synchronized to the display refresh rate (typically 60 Hz). At every frame, typically every 1/60 seconds, a number of RKF45 steps are executed by the worker thread. The number of steps run at each frame can be adjusted with Speed (steps/frame).
After a solution is obtained, the plot is immediately cleared and the next solution is drawn. If it is required that the final solution is observed longer, Freeze Plots (ms) can be used. This prevents the immediate clearing of the plots.
The total time of the solution can be adjusted with Solution Time (s). This basically means Solution Time/h iterations are needed for one solution.
Parameters can be changed with keys: 1/Q, 2/W, 3/E, 4/R, 5/T, 6/Y.
Speed, Freeze Plots and Solution Time is controlled by Ins/Del, Home/End, Page Up/Page Down.
Scale is controlled by =/- in keyboard or Add+/Subtract- in numeric keypad.
I have tried enabling/disabling different features until now, and settled on the current feature set. However, if there is a need, I can enable these easily, just send me an email with the reason you think why it would be a good feature. Some of such features are:
Here are a few technical information (also notes to myself).
Please send an email to: info at metebalci dot com