- The course will provide an introduction to using computers to solve problems arising in the physical, biological, and engineering sciences. Various computational approaches that are 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 explored with 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. The material in this course is meant as an introduction to scientific computation and will be presented as simply as possible. 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.
- The course consists of in-class lectures, video lectures, recitation sessions, and computational lab hours. Times and locations are found under the CALENDAR tab. A link to the video lectures, and supplementary material, is found under the RESOURCES tab.
- Prerequisites: Differential and Integral Calculus, MATH 124 and 125 or equivalent.
- Questions/concerns pertaining to non-sensitive issues that are emailed to either the Instructor or the Teaching Assistants will NOT be read (because of the large number of students). Instead, these should be brought up after lecture, during recitation, in the lab, or on the discussion board (link found under the RESOURCES tab).
- Students are encouraged to help each other to debug code. Copying, sharing, or distributing code, however, is not allowed and considered cheating. This policy is strictly enforced using plagiarism detection software. Students who violate this policy will be caught, receive zero points on the assignment, and referred to the Dean if necessary.
- 50% - weekly progamming assignments (lowest score is dropped)
- 10% - weekly video assignments (lowest score is dropped)
- 20% - midterm exam (on 11/6)
- 20% - final exam (on 12/11)
- Video lectures, supplemental videos, and example code can all be accessed here.
- Some videos will be required by the instructor; however, all videos are designed to aid the students in this course
- The course uses a GoPost discussion board.
- Students are encouraged to post questions/concerns and to reply to those of other students.
- The board will be moderated by the instructor and TAs periodically M-F from 9am until 5pm.
- Instructor: C. Vogl (email@example.com)
- TA for Section A: L. Thompson (firstname.lastname@example.org)
- TA for Section B: A. Hornof (email@example.com)
- TA for Section C: B. de Silva (firstname.lastname@example.org)
- MATLAB and Simulink Student Suite
- Textbook "Data-driven modeling and scientific computation" by Prof. Kutz
- available for purchase at the University Bookstore
- available for purchase on Amazon (NOTE: All author proceeds are forfeit to the Department of Applied Mathematics, University of Washington)
LATE ASSIGMENTS WILL NOT BE ACCEPTED.
Current Video Assignment
Current Video Assignment
- Lecture 2 (starting at time 9:30) from Programming Basics: Basics & Simple Programming, due before lecture on 10/13
- Lecture 3 (starting at time 34:00) from Linear Systems Ax=b, due before lecture on 10/13
- Scorelator is used to collect and grade programming assignments (instructions).
- UW only has licenses for 40 simultaneous MATLAB users. On high volume time, especially when the homework is due, the terminal may be busy for hours and your submission will be queued. To avoid late submission due to traffic, you are strongly recommended to submit your assignment as early as possible.
- You have up to 5 attempts per homework to get everything correct. Your best score for each assignment will be your recorded grade (i.e. there is no penalty for correcting and resubmitting).
- Scorelator must be accessed through Firefox or Internet Explorer (NOT Safari or Chrome). Additionally, Scorelator CANNOT be accessed on the ASLAB terminal server.
- Make sure to REFRESH your browser after uploading or deleting each file. This assures Scorelator is synced with the server.
- The instructor will register your UW NetID to Scorelator on the first day of class, given that you have registered the class before the beginning of the quarter.
- The default login name is (UW NetID)@uw.edu.
- An email containing a temporary password will be sent wherever the above account is forwarded to. Be sure to check if any emails entitled "Scorelator" are filtered/spammed.
- After logging in, make sure to change this temporary password using the "Edit Profile" link.
- If no email has been received, go to the Scorelator homepage, type in your UW email address and click on: "I forgot my password". Another email containing new login information will be sent.
- If you have registered after the beginning of the quarter and the procedure above does not work for you, post in the appropriate place on the discussion board you will be added.
- Scorelator has become an open source, free program since January 1, 2015.
- Lecture 3 from Programming Basics: Basics & Simple Programming
Week 1 Basics & Simple Programming
- Vectors and Matrices (text 1.1)
- Logic, Loops, and Iterations (text 1.2)
- Plotting/Importing/Exporting data (text 1.5)
- if, elseif, for, plot, save, load
Week 2 Linear Systems (Ax=b)
- Linear Systems of Equations (notes)
- Gaussian Elimination (text 2.1)
- LU decomposition (text 2.1)
Week 3 Iterative Methods for Ax=b when A is large and sparse
- Jacobi iteration (text 2.2, notes, L07_testJacobiFAILS.m, L07_testJacobiWORKS.m)
- eigenvalues and eigenvectors eig (text 2.4, notes)
- Jacobi and Gauss-Seidel iteration (text 2.2, notes, L09_testEigJacobi.m, L09_testGaussSeidelNaive.m, L09_testGaussSeidelFast.m, Jacobi.m, GaussSeidel.m)
- Matlab function bicg
Week 4 Interpolation and Curve Fitting of Empirical Data
- Least squares (text 3.1)
- Interpolation and polynomial fitting (text 3.2)
- Data fitting in Matlab (text 3.3)
- interp1, spline, and polyfit
Week 5 Optimization
- Unconstrained optimzation: Golden Search and fminsearch (text 5.1, 5.2)
- Linear programming (text 5.3)
- Genetic algorithms (text 5.5)
- linprog and ga (genetic_demo.m)
Week 6 Numerical Differentiation and Integration for Functions and Data
- Forward/Backward/Central differences approximations and error estimation.
(text 4.1, 4.3, notes, TaylorSeries.m, FiniteDifference.m)
- High-order derivative. Left-/Right-rectangle rule for integration. (text 4.2, 4.3, notes, numdiffc.m)
- Trapezoid and Simpson's rule and errors.
Integrating particle in vector field.
(text 4.2, 4.3, notes, numintc.m)
- Lecture Notes by Li, List of useful difference schemes.
Week 7 Introduction to Differential Equations
- Forward and backward Euler integration. Spring-mass-damper system.
(text 7.1, 7.2, notes, L19_SpringMassDamper.m)
- Error analysis and stability. Example: damped pendulum.
(text 7.1, 7.2, notes, L20_simpend.m, pend.m)
- 2nd- and 4th-order Runge-Kutta method.
(text 7.1, 7.2, notes by Brunton, notes by Li)
Week 8 Advanced Differential Equations
- 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 (100-1000X speed-up). Sensitivity and chaos. (notes, rk4singlestep.m, lorenz3D.m, L23_simLorenzSLOW.m, L23_simLorenzFAST.m)
- Chaos. Examples: double pendulum, three-body problem, Lorenz. Symplectic and variational integration. (notes, double pendulum notes, variational.cc, rungekutta78.cc, doublegyreVEC.m, integrateDGgood.m)
- Lecture Notes by Li. flame.m.
Week 9 The Singular Value Decomposition
Transforming a matrix of data into coordinates that emphasize the dominant features
Week 10 Fast Fourier Transforms