 Role
 Key Links
 Video Lectures: Section A, Section B, Section C
 Discussion Board: Catalyst
 Compsoftbook: Online grading
 Midterm (Wednesday 4/30  25% grade), Midterm Review (Monday 4/28)
 Final (Wednesday 6/4  25% grade), Final Review (Monday 6/2)
 Homework (50% grade):
 (4/4) HW test,
 (4/11) HW 1,
 (4/25) HW 2,
 (5/9) HW 3,
 (5/23) HW 4,
 (5/30) HW 5, part (a)
 (6/6) HW 5, part (b)
 MATLAB: Student Edition (recommended if you do not have access)
 ICL: Matlab laboratory & login access (Communications Bldg B022 and B027)
 Textbook : Datadriven modeling and scientific computation (NOTE: All author proceeds are forfeit to the Department of Applied Mathematics, University of Washington)
 Sections: A: 9:3010:20 SIG 134, B: 12:301:20 EEB 125, C: 1:302:20 EEB 125
 Follow us on:
 Instructor
 Steven Brunton, Lewis 118
 Office Hours: Wednesday class (9:30, 12:30 and 1:30)
 TAs
 Lowell Thompson and Tommaso Buvoli
 Office Hours: Monday and Friday classes (9:30, 12:30 and 1:30)
 
 301 TA Team: Lowell, Tommaso, others
 Office Hours in ICL B027: Tuesday 3:306:30, Wednesday 3:306:30, Thursday 2:306:30
 Prerequisites
Differential and Integral Calculus, MATH 124 and 125 or equivalent.
 Course Description

This course will provide an introduction to the use of computers to solve problems arising in the physical, biological, and engineering sciences. Various computational approaches commonly used to solve mathematical problems (including systems of linear equations, curve fitting, integration, and differential equations) will be presented. Both the theory and application of each numerical method will be demonstrated. The student will gain mathematical judgment in selecting tools to solve scientific problems through inclass examples and programming homework assignments. MATLAB will be used as the primary environment for numerical computation. An overview of MATLAB's syntax, code structure, and algorithms will be given. Although the subject matter of Scientific Computing has many aspects that can be made rather difficult, the material in this course is an introduction to the field and will be presented in a simple as possible way. Theoretical aspects will be mentioned throught the course, but more complicated issues such as proofs of relevant theorems/schemes will not be presented. Applications will be emphasized.
 Objectives

To make MATLAB superstars!
 Week 1  Basics of MATLAB and Introduction
We will begin with a brief review of MATLAB and its basic functionality, including plotting, implementing IF and FOR logicals and the construction of matrices and vectors.
 (a) constructing matrices and vectors in MATLAB (text 1.1)
 (b) FOR and IF statements for program logic (text 1.2)
 (c) inputing/exporting data and plotting (text 1.5)
 Week 2
Linear Algebra and Ax=b
We discuss direct solutions to matrix systems of equations Ax=b. Computational complexity, i.e. how methods scale with size of system, is considered.
 (a) matrix multiplication and manipulations (notes)
 (b) Gaussian elimination (text 2.1)
 (c) LU decomposition (text 2.1)
 Week 3
Linear Algebra and Iterative Methods
When A is large and sparse, we use iterative methods to solve Ax=b. We also introduce eigenvalues and eigenvectors to discuss stability and convergence.
 (a) Jacobi iteration (text 2.2, notes, L07_testJacobiFAILS.m, L07_testJacobiWORKS.m)
 (b) eigenvalues and eigenvectors (text 2.4, notes)
 (c) Jacobi and GaussSeidel iteration (text 2.2, notes, L09_testEigJacobi.m, L09_testGaussSeidelNaive.m, L09_testGaussSeidelFast.m, Jacobi.m, GaussSeidel.m)
 Week 4
Curve Fitting
We demonstrate how to find functions of bestfit for a given set of data.
 (a) Least squares (text 3.1)
 (b) Polynomial fitting (text 3.2)
 (c) Data fitting in Matlab (text 3.3)
 Week 5
Optimization
Here we discuss modern optimization tools such as linear programming and genetic algorithms.
 (a) Unconstrained optimzation: goldensearch, fminsearch. (text 5.1, 5.2)
 (b) Linear programming (text 5.3)
 (c) Genetic algorithms (text 5.5)
 Week 6
Numerical Differentiation and Integration
We describe how to numerically approximate differentiation and integration on a computer. This applies equally well to functions and data.
 (a) Forward, backward, and central difference approximation to derivative. Error analysis. (text 4.1, 4.3, notes, TaylorSeries.m, FiniteDifference.m)
 (b) High order derivative. Left and rightsided rectangle rule for integration. (text 4.2, 4.3, notes, numdiffc.m)
 (c) Error analysis for integration. Trapezoid and Simpson's rule. Motivation for integrating particle in vector field. (text 4.2, 4.3, notes, numintc.m)
 Week 7
Introduction to Differential Equations
This section describes theory and examples of integrating systems of ordinary differential equations.
 (a) Forward and backward Euler integration. Matlab example, springmassdamper system. Try ode45. (text 7.1, 7.2, notes, L19_SpringMassDamper.m)
 (b) Error analysis and stability of Euler integration. Example: damped pendulum. Use ode45. (text 7.1, 7.2, notes, L20_simpend.m, pend.m)
 (c) Derive 2ndorder RungeKutta integrator by matching Taylor series. Introduce 4thorder RK. (text 7.1, 7.2, notes)
 Week 8
Advanced Differential Equations
Here, we demonstrate the powerful numberical integration tools from the previous week on exciting example systems.
 (a) Write our own RK4 timestepper and compare with ode45 on the Lorenz equation. (notes, L22_simulateLORENZ.m, rk4singlestep.m, lorenz.m)
 (b) Integrate a cube of points through Lorenz. Vectorize integrator (1001000X speedup). Sensitivity and chaos. (notes, rk4singlestep.m, lorenz3D.m, L23_simLorenzSLOW.m, L23_simLorenzFAST.m)
 (c) Chaos. Examples: double pendulum, threebody problem, Lorenz. Symplectic and variational integration. (notes, double pendulum notes, variational.cc, rungekutta78.cc, doublegyreVEC.m, integrateDGgood.m)
 Week 9
The Singular Value Decomposition
We discuss the idea of transforming a matrix of data into coordinates that emphasize the dominant features in the data.
 (a) SVD theory and implementation (text 15.1)
 (b) Principal components analysis (PCA) (text, 15.3)
 (c) Demo: eigenfaces (text 2.5, EIGENFACE.m, faces.zip)
 Week 10
Fast Fourier Transforms
Here, we introduce the Fast Fourier Transform, and demonstrate a number of applications such as filtering noisy data and image compression.
 (a) Discrete Fourier Transform (DFT) basics (text 10.1, 13.1, notes)
 (b) Fast Fourier Transform (FFT) and filtering, audio (notes, EX1_FFT.m, EX2_FFT.m, loadMusic.m)
 (c) FFT and image compression (notes, compress_wFFTcontour.m)
Syllabus