 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 : Datadriven 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, counting only top 5 of HW 1  HW 6):
 HW 0 (due 9/26), starting code snipet found here
 HW 1 (due 10/3), (matrix.mat)
 HW 2 (due 10/17)
 HW 3 (due 10/31) (data.txt)
 HW 4 (due 11/14) (markerParticle.m)
 HW 5 (due 11/26) (pend_data.mat, hw5_snippet.m, faces.zip, imag_data.mat)
 HW 6 (due 12/5) (noisy_message.wav)
 Instructor
 Chris Vogl
 Office Hours: Wednesday class (see calendar for times/locations)
 TAs
 Alex Hornof, Justin Thompson (website), 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)
 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.
 Role

 Syllabus
 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.
 constructing matrices and vectors in MATLAB (text 1.1)
 FOR and IF statements for program logic (text 1.2)
 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.
 matrix multiplication and manipulations (notes)
 Gaussian elimination (text 2.1)
 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.
 Jacobi iteration (text 2.2, notes, L07_testJacobiFAILS.m, L07_testJacobiWORKS.m)
 eigenvalues and eigenvectors (text 2.4, notes)
 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.
 Least squares (text 3.1)
 Polynomial fitting (text 3.2)
 Data fitting in Matlab (text 3.3)
 Week 5 Optimization
 Here we discuss modern optimization tools such as linear programming and genetic algorithms.
 Unconstrained optimzation: goldensearch, fminsearch. (text 5.1, 5.2)
 Linear programming (text 5.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.
 Forward, backward, and central difference approximation to derivative. Error analysis. (text 4.1, 4.3, notes, TaylorSeries.m, FiniteDifference.m)
 High order derivative. Left and rightsided rectangle rule for integration. (text 4.2, 4.3, notes, numdiffc.m)
 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.
 Forward and backward Euler integration. Matlab example, springmassdamper system. Try ode45. (text 7.1, 7.2, notes, L19_SpringMassDamper.m)
 Error analysis and stability of Euler integration. Example: damped pendulum. Use ode45. (text 7.1, 7.2, notes, L20_simpend.m, pend.m)
 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 numerical integration tools from the previous week on exciting example systems.
 Write our own RK4 timestepper and compare with ode45 on the Lorenz equation. (notes, L22_simulateLORENZ.m, rk4singlestep.m, lorenz.m)
 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)
 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.
 SVD theory and implementation (text 15.1)
 Principal components analysis (PCA) (text, 15.3)
 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.
 Discrete Fourier Transform (DFT) basics (text 10.1, 13.1, notes)
 Fast Fourier Transform (FFT) and filtering, audio (notes, EX1_FFT.m, EX2_FFT.m, loadMusic.m)
 FFT and image compression (notes, compress_wFFTcontour.m)
 Course Calendar
 back to top