Lecturer
Jordi-Lluís Figueras (jordi-lluis.figueras@math.uu.se).
Course material
Course materials will be posted on Studium and will be regularly updated below. A note on the use of generative AI is available here.
-
Lecture 1
Watch this video before Lecture 2: Chaos. Then think about the following questions:
- Which models do you see in the video?
- Is a pendulum chaotic?
- What is the Butterfly?
-
Lecture 2
(
cobWeb.py,
linear.py,
pendulum.py
)
Watch this video before Lecture 3: Logistic map. Then think about the following questions:
- What is r?
- What is represented on the left?
- What is represented on the right?
-
Lecture 3
(
logisticDiagram.py
)
Before Lecture 4, I suggest that you take logisticDiagram.py and modify it so that it works for another one-parameter family of maps. For example, take f(x) = rx(1 - x)(1 + ε(2x - 1)2), for small values of ε (e.g. 0, 1.e-3, 0.1).
-
Lecture 4
(
logisticDiagramEpsilon.py,
logisticPeriodDoublingSympy.py
)
Watch this video on the Implicit Function Theorem.
- Lab 0 ( pythonTemplate.py, reportTemplate.tex, beamerTemplate.tex, artemisII.csv, examplePrompt.md )
- Lecture 5 ( ChirikovStandardMap.py )
- Lecture 6 ( logisticMapSensitivity.py, lorenzSensitivity.py )
- Lab 1
- Draw a few small Life patterns by hand and see which ones die, freeze, or oscillate.
- Try perturbing a stable-looking pattern by changing one cell.
- In the elementary automaton script, compare Rules 8, 50, 30, and 110 from the same initial row.
- Which Life patterns look fixed, periodic, or mobile?
- Which one-dimensional rules simplify quickly, and which keep generating visible structure?
- How much of the global pattern is already encoded in the local rule?
- Lecture 7 ( gameOfLifeInteractive.py, elementaryCaInteractive.py )
- Lecture 8 ( gameOfLifeInteractiveToric.py )
- Lecture 9 ( greenbergHastingsInteractive.py )
- Lab 2
- Which locations would you choose as the nodes: neighborhoods, metro stations, or intersections?
- Which connections would you choose as the edges: roads, walking routes, or commuting flows?
- If people move every day from one neighborhood to another, what data would you need to model that movement?
- When is a network naturally directed?
- What makes a transition rule probabilistic rather than deterministic?
- What long-time behavior would you expect if movement patterns are repeated every day?
- Lecture 10 ( cityMarkovChain.py, video )
- A page can be important because many pages link to it.
- But a link from an important page should probably count more than a link from an obscure page.
- If a page links to many places, each individual outgoing link should probably receive only part of its influence.
- Can importance be defined recursively?
- Why is this naturally a matrix problem?
- What can go wrong if a page has no outgoing links?
- Lecture 11
- Which roads, bridges, passes, or stations limit movement between regions?
- Which parts would you protect if many people or vehicles had to cross the network?
- What changes if one hidden or newly built route bypasses the bottleneck?
- Can a few long-range links make the whole network easier to cross?
- What information is lost if we only count the number of incident edges?
- How do shortest distance and route capacity differ?
- When can local structure remain clustered while global distances become short?
- Lecture 12 ( pagerankDampingExample.py, smallWorldWattsStrogatz.py )
- Lab 3
- Lecture 13
- If we see a cycle in the graph, can we conclude that the sensors do not cover the entire field?
- Lecture 14
- Lecture 15 ( vrPersistentHomology.py )
- Lab 4 ( points_lab04.txt )
- Lecture 16
- Lecture 17 ( kuramotoInteractive.py )
Before Lecture 6, run logisticMapSensitivity.py and explore the logistic map at r = 4.
Before Lecture 7, experiment with gameOfLifeInteractive.py and elementaryCaInteractive.py.
Questions to reflect on:
Before Lecture 10, think about a familiar city map as a system of connected places.
Questions to reflect on:
Before Lecture 11, think about the web as a directed network of pages.
Questions to reflect on:
Before Lecture 12, think about a transport or movement network that you know.
Questions to reflect on:
Before Lecture 14, suppose sensors are placed in a field and we only observe the detection graph.
Course structure and grading
The course consists of 19 lectures and 5 labs (and 2 days of presentations). Each lab covers a project consisting of a series of questions and builds on topics introduced over about three lectures.
The lab projects will be submitted as assignments on Studium. The deadline for submission of the first project will be 14 days after the lab; for all others, it will be ten days after the lab.
Please work in groups of around 5 people (minimum 4, maximum 6). Only one assignment per group should be submitted. Make sure to distribute the work appropriately between group members, so that everybody contributes to coding, writing, and modelling. All code should be written in Python.
You can get a maximum of 15 points for each project. In addition, each team is to present one of its projects. Ten points are reserved for the presentation.
One goal of the oral presentation is to demonstrate a complete understanding of the submitted work. If this understanding is not demonstrated, the points from the written project will not be added.
To pass the course (grade 3) you must correctly answer questions amounting to at least 40 points. In order to get a grade 4 you must get 50 points. In order to get a grade 5 you must get 60 points. If necessary there are retake lab assignments available “on demand”.
Lecture materials will be updated here regularly. You may also visit the webpage for a previous edition of the course to get an idea, although the material may differ:
Subjects
Preliminary topics for the four blocks related to the four labs/assignments (changes may occur):
- Bifurcation, periodicity, chaos, and dynamical systems
- Cellular automata.
- Networks.
- Particle motion