AMATH 301 - Beginning Scientific Computing

Key Links

Video Lectures: CommonView
Course Calendar:: Google Cal
Discussion Board: GoPost
Homework Submission: Compsoftbook
MATLAB: Student Edition (recommended if you do not have access)
ICL: Matlab Computing Lab (Communications Bldg B027)
Textbook : Data-driven modeling and scientific computation (NOTE: All author proceeds are forfeit to the Department of Applied Mathematics, University of Washington)

Key Dates

Midterm Exam (25% of total grade): Wednesday 10/22, review on Monday 10/20
Final Exam (25% of total grade): Wednesday 12/3, review on Monday 12/1
Homework (50% of total grade):
  • HW 0 (due 9/26)
  • HW 1 (due 10/3)
  • HW 2 (due 10/17)
  • HW 3 (due 10/31)
  • HW 4 (due 11/14)
  • HW 5a (due 11/26)
  • HW 5b (due 12/5)


Chris Vogl
Office Hours: Wednesday class (see calendar for times/locations)


Alex Hornof, Justin Thompson, and Lowell Thompson
Office Hours: Monday and Friday class (see calendar for times/locations)
Lab Hours in ICL: Tuesday, Thursday, and Friday (see calendar for times/locations)


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 in-class 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.


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.

  1. constructing matrices and vectors in MATLAB (text 1.1)
  2. FOR and IF statements for program logic (text 1.2)
  3. 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.

  1. matrix multiplication and manipulations (notes)
  2. Gaussian elimination (text 2.1)
  3. 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.

  1. Jacobi iteration (text 2.2, notes, L07_testJacobiFAILS.m, L07_testJacobiWORKS.m)
  2. eigenvalues and eigenvectors (text 2.4, notes)
  3. Jacobi and Gauss-Seidel 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 best-fit for a given set of data.

  1. Least squares (text 3.1)
  2. Polynomial fitting (text 3.2)
  3. Data fitting in Matlab (text 3.3)

Week 5 Optimization

Here we discuss modern optimization tools such as linear programming and genetic algorithms.

  1. Unconstrained optimzation: golden-search, fminsearch. (text 5.1, 5.2)
  2. Linear programming (text 5.3)
  3. 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.

  1. Forward, backward, and central difference approximation to derivative. Error analysis. (text 4.1, 4.3, notes, TaylorSeries.m, FiniteDifference.m)
  2. High order derivative. Left and right-sided rectangle rule for integration. (text 4.2, 4.3, notes, numdiffc.m)
  3. 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.

  1. Forward and backward Euler integration. Matlab example, spring-mass-damper system. Try ode45. (text 7.1, 7.2, notes, L19_SpringMassDamper.m)
  2. Error analysis and stability of Euler integration. Example: damped pendulum. Use ode45. (text 7.1, 7.2, notes, L20_simpend.m, pend.m)
  3. Derive 2nd-order Runge-Kutta integrator by matching Taylor series. Introduce 4th-order 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.

  1. Write our own RK4 timestepper and compare with ode45 on the Lorenz equation. (notes, L22_simulateLORENZ.m, rk4singlestep.m, lorenz.m)
  2. Integrate a cube of points through Lorenz. Vectorize integrator (100-1000X speed-up). Sensitivity and chaos. (notes, rk4singlestep.m, lorenz3D.m, L23_simLorenzSLOW.m, L23_simLorenzFAST.m)
  3. Chaos. Examples: double pendulum, three-body problem, Lorenz. Symplectic and variational integration. (notes, double pendulum notes,,, 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.

  1. SVD theory and implementation (text 15.1)
  2. Principal components analysis (PCA) (text, 15.3)
  3. Demo: eigenfaces (text 2.5, EIGENFACE.m,

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.

  1. Discrete Fourier Transform (DFT) basics (text 10.1, 13.1, notes)
  2. Fast Fourier Transform (FFT) and filtering, audio (notes, EX1_FFT.m, EX2_FFT.m, loadMusic.m)
  3. FFT and image compression (notes, compress_wFFTcontour.m)
Course Calendar

back to top
Department of Applied Mathematics University of Washington, Lewis Hall #202, Box 353925, Seattle, WA 98195-3925 USA,
Email 'info' (at Phone 206-543-5493 Fax 206-685-1440