Skip to content

Commit 7730708

Browse files
committed
Commit 25-Oct-21, submitted version
1 parent d38bfbf commit 7730708

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

92 files changed

+16837
-10810
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ lectures
99
solutions
1010
reviews
1111
testing
12+
corrections_for_proof
1213
*.pptx
1314
*.docx
1415

Manifest.toml

Lines changed: 511 additions & 246 deletions
Large diffs are not rendered by default.

Project.toml

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,56 @@
11
name = "NonlinearDynamicsTextbook"
22

33
[deps]
4+
Agents = "46ada45e-f475-11e8-01d0-f70cc89e6671"
45
BandedMatrices = "aae01518-5342-5314-be14-df237901396f"
5-
BifurcationKit = "0f109fa4-8a5d-4b75-95aa-f515264e7665"
6+
BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf"
67
ChaosTools = "608a59af-f2a3-5ad4-90b4-758bdf3122a7"
78
Combinatorics = "861a8166-3701-5b0c-9a16-15d98fcdc6aa"
9+
DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0"
10+
DelayDiffEq = "bcd4f6db-9728-5f36-b5f7-82caef46ccdb"
11+
DelayEmbeddings = "5732040d-69e3-5649-938a-b6b4f237613f"
812
DelimitedFiles = "8bb1440f-4735-579b-a4ab-409b98df4dab"
913
Dierckx = "39dd38d3-220a-591b-8e3c-4c3a8c710a94"
14+
DiffEqCallbacks = "459566f4-90b8-5000-8ac3-15dfb0a30def"
15+
Distributions = "31c24e10-a181-5473-b8eb-7969acd0382f"
1016
DrWatson = "634d3b9d-ee7a-5ddf-bec9-22491ea816e1"
1117
DynamicalBilliards = "4986ee89-4ee5-5cef-b6b8-e49ba721d7a5"
1218
DynamicalSystems = "61744808-ddfa-5f27-97ff-6e42cc95d634"
1319
DynamicalSystemsBase = "6e36e845-645a-534a-86f2-f5d4aa5a06b4"
20+
Entropies = "ed8fcbec-b94c-44b6-89df-898894ad9591"
21+
FFTW = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341"
1422
ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210"
1523
GLMakie = "e9467ef8-e4e7-5192-8a1a-b1aee30e663a"
24+
GraphMakie = "1ecd5474-83a3-4783-bb4f-06765db800d2"
1625
ImageMagick = "6218d12a-5da1-5696-b52f-db25d2ecc6d1"
1726
InteractiveDynamics = "ec714cd0-5f51-11eb-0b6e-452e7367ff84"
27+
Interpolations = "a98d9a8b-a2ab-59e6-89dd-64a1c18fca59"
28+
JLD = "4138dd39-2aa7-5051-a626-17a0bb65d9c8"
29+
JLD2 = "033835bb-8acc-5ee8-8aae-3f567f8a3819"
30+
LightGraphs = "093fc24a-ae57-5d10-9952-331d41423f4d"
1831
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
32+
Logging = "56ddb016-857b-54e1-b83d-db4d58db5568"
1933
Makie = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a"
34+
Neighborhood = "645ca80c-8b79-4109-87ea-e1f58159d116"
2035
OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed"
21-
Polynomials = "f27b6e38-b328-58d1-80ce-0feddd5e7a45"
36+
ProgressMeter = "92933f4c-e287-5a05-a399-4b506db050ca"
37+
PyCall = "438e738f-606a-5dbb-bf0a-cddfbfd45ab0"
2238
PyPlot = "d330b81b-6aea-500a-939a-2ce795aea3ee"
39+
RecurrenceAnalysis = "639c3291-70d9-5ea2-8c5b-839eba1ee399"
2340
Reexport = "189a3867-3050-52da-a836-e630ba90ab69"
2441
Roots = "f2b01f46-fcfa-551c-844a-d8ac1e96c665"
2542
Rotations = "6038ab10-8711-5258-84ad-4b1120ba62dc"
2643
Setfield = "efcf1570-3423-57d1-acb7-fd33fddbac46"
2744
SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"
2845
StaticArrays = "90137ffa-7385-5640-81b9-e52037218182"
46+
TerminalLoggers = "5d786b92-1e48-4d6f-9151-6b4477ca9bed"
2947
TimeseriesSurrogates = "c804724b-8c18-5caa-8579-6025a0767c70"
3048
TransferEntropy = "ea221983-52f3-5440-99c7-13ea201cd633"
3149

3250
[compat]
33-
DrWatson = "2"
34-
DynamicalSystems = "1.7.1"
51+
ChaosTools = "2"
52+
DelayEmbeddings = "2"
53+
DynamicalSystemsBase = "2"
54+
Entropies = "1"
55+
RecurrenceAnalysis = "1.6"
3556
julia = "1.5"

README.md

Lines changed: 14 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,15 @@
22

33
This repository holds the material related with the textbook _Nonlinear Dynamics: A concise introduction interlaced with code_, co-authored by George Datseris and Ulrich Parlitz. This textbook will be published by Springer, in the series Undergraduate Lecture Notes in Physics, in 2021.
44

5+
**Please do not open issues to ask questions on installing and running Julia or Julia packages, or questions on nonlinear dynamics in this repository.** Instead, open issues directly related with the book: found typos, problems with the source code contained here, suggestions for improvement of existing book sections, suggestions for new book sections, contributing new exercises, new multiple choice questions, etc. All contributions will be properly acknowledged whenever a new edition is out.
6+
57
**Contents**
68
1. [Sample material](#sample-material)
79
2. [Tutorials for Julia and related packages](#tutorials-for-julia-and-related-packages)
810
3. [Reproducing figures](#reproducing-figures)
911
4. [Exercise datasets](#exercise-datasets)
1012
5. [Multiple choice questions](#multiple-choice-questions)
11-
6. [Interactive applications & videos](#interactive-applications--videos)
12-
7. [Contributing](#contributing)
13+
6. [Interactive applications and videos](#interactive-applications-and-videos)
1314

1415
## Sample material
1516
Sample material *(currently preliminary)* of the book is contained as `.pdf` in the `sample` folder.
@@ -18,22 +19,25 @@ Sample material *(currently preliminary)* of the book is contained as `.pdf` in
1819
Below we provide links to various sources for learning Julia, or the packages that we use in the code snippets in the book.
1920

2021
- https://www.youtube.com/watch?v=Fi7Pf2NveH0 : Short-timed, intensive Julia workshop, that will teach everything necessary to use Julia. Aimed at people already familiar with programming
22+
- https://www.youtube.com/watch?v=TJqOGsKQti8 : Short-timed introductory video for DynamicalSystems.jl
2123
- https://juliadynamics.github.io/DynamicalSystems.jl/dev/ : Documentation of DynamicalSystems.jl
2224
- https://juliadynamics.github.io/JuliaDynamics/ : Website of the JuliaDynamics organization
2325
- https://www.youtube.com/watch?v=KPEqYtEd-zY : Introduction to solving differential equations in Julia, which is generally useful for nonlinear dynamics
24-
- https://julialang.org/community/ : Resources for asking questions about Julia
26+
- https://diffeq.sciml.ai/latest/ : Julia differential equations solving library
27+
- https://julialang.org/community/ : Community resources about Julia
2528
- https://discourse.julialang.org/ : Official Julia forum (and also the main platform that newcomers ask questions)
2629
- https://github.com/rveltz/BifurcationKit.jl : Julia software for bifurcation analysis
2730

31+
2832
## Reproducing figures
2933
The accompanying code base used here is using the Julia Language and [DrWatson](https://juliadynamics.github.io/DrWatson.jl/stable/)
3034
to make a reproducible environment that creates the figures of the book.
31-
The code that creates the figures is in the `figure_generation` folder. Notice however that some figures were made with (or enhanced by) PowerPoint and thus we do not share this here.
35+
The code that creates the figures is in the `figure_generation` folder. Notice however that some figures were made with (or enhanced by) PowerPoint and we do not share this here.
3236

3337
To (locally) reproduce a figure, first install Julia and then do the following:
3438

3539
0. Download this repository as-is and export it to some folder.
36-
0. Install `DrWatson` on your general Julia installation by doing:
40+
0. Install `DrWatson` in your general Julia installation by doing:
3741
```
3842
julia> using Pkg; Pkg.add("DrWatson")
3943
```
@@ -42,12 +46,6 @@ To (locally) reproduce a figure, first install Julia and then do the following:
4246
julia> Pkg.activate("path/to/the/downloaded/project/folder")
4347
julia> Pkg.instantiate() # installs all packages used by the repo
4448
```
45-
1. This repository uses the Python library matplotlib (package `PyPlot`) for book plots and Makie.jl for the interactive applications. You could use any plotting package instead, but if you want to use `PyPlot` and replicate exactly the book plots, then run the following commands to ensure a working installation for all operating systems:
46-
```
47-
julia> ENV["PYTHON"] = ""
48-
julia> Pkg.add("PyCall"); Pkg.build("PyCall")
49-
julia> Pkg.add("PyPlot"); using PyPlot
50-
```
5149

5250
Now all necessary packages are installed and all scripts should run out of the box.
5351
As you will notice, all scripts start with the commands:
@@ -56,23 +54,20 @@ using DrWatson
5654
@quickactivate "NonlinearDynamicsTextbook"
5755
```
5856
which ensures that only local directories will be used, as well as the *exact* package versions contained within the repository, leading to full reproducibility.
57+
These package versions are also contained in the Project.toml and Manifest.toml files.
5958

6059
## Exercise datasets
6160
The datasets that are used in the book exercises are contained in the `exercise_data` folder, all being in the same text-based format. To load the exercise data you only have to do:
6261
```julia
6362
using DelimitedFiles
64-
X = readdlm("path/to/exercise_data/dataset.csv")
63+
n = 3 # for the `n`-th dataset
64+
X = readdlm(projectdir("exercise_data", "$n.csv"))
6565
```
6666

67-
The same folder contains information of where this data is coming from: `data_explanations.md`. Some data are generated from simulations in the script `generating_code.jl`.
67+
The same folder contains information of where this data is coming from: `data_explanations.md`.
6868

6969
## Multiple choice questions
7070
Multiple choice questions that we use during lecturing to increase student involvement are in the `multiple_choice` folder.
7171

72-
## Interactive applications & videos
72+
## Interactive applications and videos
7373
In the folder `animations` we provide scripts that launch interactive applications, and also pre-recorded `.mp4` files for convenience.
74-
75-
## Contributing
76-
Do you have suggestions for improving the contents? Perhaps you want to contribute something new, e.g. new exercises or multiple choice questions? Or perhaps you have a suggestion/comment on a book section? Or maybe you found a typo in the book?
77-
78-
Please do open an issue on this GitHub repository, and we'll take it into consideration for the next version!

0 commit comments

Comments
 (0)