Math 551 Introduction to Scientific Computing Fall 2018

Instructor: Matthew Dobson (Pronouns: he/him/his)
Class meeting time:
Section 1: MWF 9:05-9:55am LGRC A203
Section 2: MWF 10:10-11:00am LGRC A203

Course Text:
A First Course in Numerical Methods, Authors: Uri M. Ascher and Chen Greif, Publisher: Society for Industrial and Applied Mathematics (SIAM), 2011.

Important note: UMass has an Institutional SIAM Membership. Thus, a free e-book is available through the UMass library website.

Office hours: Tu 11:10-12:00, W 11:10-12:00, F 2:30-3:30, or e-mail me to make an appointment.
Office: LGRT 1430 (Tower)
Office phone: 545-7194

Course Structure and Grading Policies:

We will have computing components to the homework. The recommended software for the class is Scilab, which is free software. You may also use Matlab, and the university makes a student license available for no charge.

Course Topics

The course will introduce basic numerical methods used for solving problems that arise in different scientific fields. Properties such as accuracy of methods, their stability and efficiency will be studied. Students will gain practical programming experience in implementing the methods. We will cover the following topics (not necessarily in the order listed): Finite Precision Arithmetic and Error Propagation, Linear Systems of Equations, Root Finding, Interpolation, least squares, Numerical Integration.


Homework 1: Due 9/21/2018
Exercises from the text: 1.4.2, 2.5.2, 2.5.13, 3.6.2, 3.6.7.
Note that problem 3.6.7 has been moved to homework 2

Homework 2: Due date 10/5/2018
3.6.7, 4.6.3, 4.6.10, 5.9.7

Homework 3: Due date 10/19/2018
5.9.4, 7.7.3, 7.7.4, 7.7.10
5) Test the run times in matlab using sparse and full matrices for the model problem. To construct the model problem with N variables, you can use the Matlab command to construct the coefficient matrix for the model problem.
A = 2*diag(ones(N,1)) - diag(ones(N-1,1), 1) - diag(ones(N-1,1), -1);
You can construct the same matrix in sparse form with:
e = ones(N,1);
A = spdiags([-e 2*e -e], -1:1, N, N);
Test the time it takes for matrix creation and LU factorization lu(A) as a function of N, for N being powers of 2. You can test the time using commands tic() and toc(). Run for progressively longer sizes until Matlab runs out of memory or it takes more than 10 seconds to run.
Note: if you are using other software or programming language, do similar tests. The commands in Scilab are similar to those in Matlab. Python has a sparse matrix package in SciPy.

Homework 4 due Nov 9th.
The following codes can be helpful in constructing A and b

Homework 5 due Nov 28th.

Homework 6: Due Dec 12th.
10.8.15, 10.8.25, 11.7.1, 15.7.1, 15.7.5.

Sample Code

Matlab demo from the class:

Code on iterative schemes:

Practice Exams

The following practice midterm gives an idea of the style of questions to be asked. It does not contain an exhaustive list of possible questions or topics.
Practice Midterm

The following practice final gives an idea of the style of questions for new topics to be asked. The final is cumulative, so reviewing the pratice midterm could also be helpful. Neither contains an exhaustive list of possible questions or topics.
Practice Final