Module 2: Alessandro Sbrizzi (University Medical Center Utrecht)

Teaching assistant: Lotte Muller (Mathematical Institute UU)

Module 1 (4 weeks): begin intro Matlab, then Chapter 5 (linear systems) and 7 (PageRank) from the online book by Cleve Moler (2011), Experiments with Matlab. We will use other materials as well, in particular for the topic of Covid-19 simulation on networks.

Module 2 (4 weeks): Magnetic Resonance Imaging (MRI). Online material will become available through Blackboard.

- Lecture 1 (Monday February 8, 2021, 13.15-14.00 hour):
**Introduction Matlab**(Ch1 and Ch2)- Introduction to the course: goals, practicalities
- Iterations
- Fibonacci sequence
- Exercises Ch1: 1, 6, 10, 15
- Exercises Ch2: 3, 4, 5, 6
- Today's slides : A quick introduction to Matlab, Johns Hopkins University, Computer Science Dept. 2007

- Lecture 2 (Monday February 8, 2021, 15.15-16.00 hour):
**Matrix multiplication**(Ch4)- Matrices and transformations
- Timing of matrix multiplication
- Traditional vs. Strassen matrix multiplication
- Live demos
- Exercises Ch4: 3, 4, 8, 14
- Today's slides: Matrix Multiplication
- Useful videos on linear algebra: Essence of linear algebra by 3Blue1Brown, a YouTube channel on animating mathematics.

- Lecture 3 (Thursday February 11, 2021, 9.00-9.45 hour):
**Linear systems**(Ch5)- LU decomposition with partial pivoting
- Triangular system solving
- Today's slides: Solving Systems of Linear Equations by Greg Fasshauer, Illinois Institute of Technology. We present pages 1-25, 43-46.
- Exercises Ch5: 2, 3, 4

- Lecture 4 (Monday February 15, 2021, 13.15-14.00 hour):
**Sparse matrix ordering**- SparseSuite (University of Florida) collection of sparse matrices
- Sparse Cholesky factorisation
- Relation between a sparse matrix and a graph
- Minimum degree ordering
- Today's slides: Sparse Matrix Ordering

- Lecture 5 (Monday February 15, 2021, 15.15-16.00 hour):
**Google PageRank**(Ch7)- Web matrices
- Adjacency matrix of a graph
- PageRank algorithm
- Exercises Ch7: 1, 3, 4
- Today's slides: Google's PageRank

- Lecture 6 (Thursday February 18, 2021, 9.00-9.45 hour):
**Sparse linear systems**- Finding pivots by graph matching.
- Block triangular form of a matrix.
- Krylov methods: conjugate gradients, GMRES, BiCGStab
- Neural networks as a sparse matrix-vector product
- Today's slides: Sparse Linear Systems by Rob Bisseling.

- Lecture 7 (Monday February 22, 2021, 13.15-14.00 hour):
**Covid-19 spreading on networks**- Power-law networks
- High-degree nodes: hubs
- SIR model for networks
- Network dynamics of vaccinations and mutations
- Today's slides: Covid-19 Spreading on Networks by Rob Bisseling.
- Scaling in Spreading phenomena: a network approach by Shlomo Havlin, Bar Ilan University, webinar given at at Utrecht Centre for Complex Systems Studies, January 22, 2021. Shows effects of acquaintance vaccination.

- Lecture 8 (Monday February 22, 2021, 15.15-16.00 hour):
**Sparse matrix partitioning**- Partitioning of graphs and sparse matrices
- Separated Block Diagonal (SBD) structure
- Parallel computing
- Mondriaan package. (Please note: its Matlab interface does not work anymore with the recent Matlab versions).
- Today's slides: Sparse Matrix Partitioning by Rob Bisseling. Downloadable file for Sparse Matrix partitioning including movies in .avi format, compressed as gzipped tarfile. Note that the movies may not work on every computer.

- Short informal talk (Monday March 1, 2021, 13.15-13.45 hour):
**How to write a report**- I will discuss a number of important aspects of writing a report, for this course and beyond.

- After Lecture 6:
**Start working on project module 1**- Project: crawl the World Wide Web using a crawler, and choose your own subdomain. Construct a PageRank algorithm, and investigate personalisation.
- Write your own sparse matrix-vector product (SpMV)
with your own data structure. Reorder
the matrix
*A*into*PAP^T*. Find a suitable*P*e.g. based on the Morton-curve. Aim: more efficient use of the computer cache, and faster SpMV. Compare your program with your own baseline and with the Matlab-implementation. - Compute the PageRank of the websites from your own chosen domain. How large can you choose your domain?
- Create a random sparse matrix that represents the physical interactions between people. The degrees of the network should be distributed by a power law. The vector to be multiplied in the SpMV consists of values 0 (representing susceptible) and 1 (infectious). Perform a number of iterations to see what happens.
- Change you network dynamically by removing infected nodes at a certain rate, representing recovery (immunity). This also removes the corresponding edges.
- Try different vaccination strategies (which are also node removals): random vaccination, vaccination of high-degree nodes first.
- Try to model the effect of mutations.
- A detailed description of the project can be found on Blackboard.

**Deadline project module 1**- The deadline of this report is Monday March 15, 13.15 hour, i.e., at the start of module 2. Send your report for module 1 through Blackboard (Assignment 1) to Rob Bisseling. It will be discused indivually with every student the week after.