Assignments and final modeling project from STAT 37830 (Scientific Computing with Python), taught by Dr. Tristan Goodwill, at UChicago.
- Homework 0 serves as an introduction to programming in Python and as a refresher of basic programming concepts, including recursion, iteration, and computational complexity.
- Homework 1 uses the
scipypackage to study some topics in linear algebra and random matrix theory, including the distributions of eigenvalues, singular values, and condition numbers of random matrices (e.g., the Wigner semicircle distribution), as well as the Cholesky, LU, and eigen-decompositions. Homework 1 also introduces object-oriented programming. - Homework 2 provides in-depth practice with object-oriented programming in the context of single-variable functions (e.g., function composition, differentiation, Newton's method, and Taylor series).
- Homework 3 involves numerical approaches to various problems in differntial equations, including the forward Euler method for solving ODEs, the
$n$ -body problem, and the method of lines. - Homework 4 examines the interpolation of functions (including splines and barycentric interpolation with various nodes) and their use in the estimation of definite integrals (i.e., quadrature).
- Homework 5 uses
scipyto examine linear regression through the QR factorization, the normal equations, and optimization, as well as the benefits and drawbacks of each of these approaches. Homework 5 also provides an introduction to ridge regression. - Homework 6 explores the multidimensional scaling (MDS) algorithm.
- Homework 7 examines (1) Markov chain Monte Carlo (MCMC) methods (specifically through the Metropolis-Hastings algorithm), and (2) the fast exponential transform.
Students were also tasked with completing a final project in an area of interest within the realm of scientific computing. My groupmates and I developed an agent-based model of the propagation of opinions about a current event throughout an interconnected population. We begin by adapting a "proof of concept" model proposed by Pilditch, 2017 (https://core.ac.uk/download/pdf/111031173.pdf), and then extend the model to consider the roles of news sources and "influencers" in opinion formation.