Course: Math 458, Numerical Methods, Fall 2022
Prerequisite: 1 from (MATH 225 or MATH 245)
Course Content: Rounding errors in digital computation; solution of linear algebraic systems; Newton's method for nonlinear systems; matrix eigenvalues; polynomial approximation; numerical integration; numerical solution of ordinary differential equations.
Last update: 18 August 2022

For enrollment information (i.e. if you are unable to enroll in this class), please contact Amy Yung,

Safety Protocols

Instructor: Steven Heilman, stevenmheilman(@-symbol)
Office Hours: Tuesdays, 2PM-4PM, on zoom [link posted on blackboard]
Lecture Meeting Time/Location: Mondays, Wednesdays, and Fridays, 12PM-1250PM, CPA 156
TA: Chuhuan Huang, chuhuanh(@-symbol)
TA Office Hours: Held in the Math Center, with schedule provided at that link.
Discussion Section Meeting Time/Location:

Textbook: There is no required textbook. The first course resource is a freely available book:
Numerical Computing with Matlab by Cleve Moler (the inventor of Matlab), available online at: Some other textbooks that we will follow are:
Numerical Analysis: Mathematics of Scientific Computing, Kincaid and Cheney
Numerical Mathematics and Computing, Cheney and Kincaid
Matrix Computations, Golub and van Loan

Software: Matlab is freely available as a download for USC students. You should download and install this software on your personal computer. Instructions for downloading and installing this software can be found here: If you have not done so already, you should create a Mathworks account, associated to your USC email address ( Once you have installed Matlab, you should then install the NCM package (available at the bottom of this page: Once the NCM package is installed, you can access some of its features by just typing "ncmgui" in the Matlab command line.

Extra Credit Project: There will be an optional extra credit project, where students will create a computer program that plays a game (such as connect four or chess) in Matlab, and the top performers of a tournament will be awarded around 1% to 3% extra credit points for the course. The project would be due in the last week of class, and the "finals" of the tournament would occur in class during this time as well. Students can work in groups of up to three, and if a team wins some amount of extra credit, that credit will be split evenly among the participants. Also, copying any code from any online resource will result in automatic disqualification. Since I will be running the finals on a Microsoft Surface Tablet (without much memory or processing power), you are not allowed to use any functions from any extra Matlab toolboxes, other than those functions in the most basic installation of Matlab. More details are TBD.

Here is the code for the Connect Four project. The function contained in the file that plays the game that you need to beat is called "blockplayer".  The other function "randomplayer" just makes a random move among all available moves.

Exam 1: Wednesday, September 28, 12PM-1250PM, CPA 156
Exam 2: Friday, November 4, 12PM-1250PM, CPA 156
Final Exam: TBD, Location TBD
Other Resources: An introduction to mathematical arguments, Michael Hutchings, An Introduction to Proofs, How to Write Mathematical Arguments

Email Policy:

Exam Procedures: Students must bring their USCID cards to the midterms and to the final exam. Phones must be turned off. Cheating on an exam results in a score of zero on that exam. Exams can be regraded at most 15 days after the date of the exam. This policy extends to homeworks as well. All students are expected to be familiar with the USC Student Conduct Code. (See also here.)
Accessibility Services: If you are registered with accessibility services, I would be happy to discuss this at the beginning of the course. Any student requesting accommodations based on a disability is required to register with Accessibility Services (OSAS) each semester. A letter of verification for approved accommodations can be obtained from OSAS. Please be sure the letter is delivered to me as early in the semester as possible. OSAS is located in 301 STU and is open 8:30am-5:00pm, Monday through Friday.
213-740-0776 (phone)
213-740-6948 (TDD only)
213-740-8216 (fax)

Discrimination, sexual assault, and harassment are not tolerated by the university. You are encouraged to report any incidents to the Office of Equity and Diversity or to the Department of Public Safety This is important for the safety whole USC community. Another member of the university community - such as a friend, classmate, advisor, or faculty member - can help initiate the report, or can initiate the report on behalf of another person. The Center for Women and Men provides 24/7 confidential support, and the sexual assault resource center webpage describes reporting options and other resources.

Exam Resources: Some practice exams for a course similar to ours appear here. See also here here and here.  These exams might be quite different than our exam, or cover material in a different order than our course.

Homework Policy:

Grading Policy:

Tentative Schedule: (This schedule may change slightly during the course.)

Week Monday Tuesday Wednesday Thursday Friday
1 Aug 22: Matlab and NCM Toolbox Aug 23 Aug 24: 2.1, Floating Point Arithmetic Aug 25: Homework 1 due Aug 26: 2.2, Loss of Significance
2 Aug 29: 3.1, One Variable Nonlinear Equations Aug 30 Aug 31: 3.2, Newton's Method Sep 1: Homework 2 due Sep 2: 3.2, Newton's Method
3 Sep 5: No class Sep 6 Sep 7: 4.1, Review of Linear Algebra Sep 8: Homework 3 due Sep 9: 4.1, Multiplying Matrices
4 Sep 12: 4.2, Gaussian Elimination, Cholesky Decomposition Sep 13 Sep 14: 4.4, Matrix Norms, Errors Sep 15: Homework 4 due Sep 16: 4.8, Bounding Errors
5 Sep 19: 5.1, Eigenvalues, Power Method Sep 20 Sep 21: 5.3, QR Decomposition, Least Squares Sep 22: Homework 5 due Sep 23: 5.4 SVD, Pseudoinverse
6 Sep 26: 5.4, Dimension Reduction, Random SVD Sep 27 Sep 28: Exam 1 Sep 29: No homework due Sep 30: 6.1, Polynomial Interpolation
7 Oct 3: 6.1, Polynomial Interpolation Oct 4 Oct 5: 6.4, Spline Interpolation Oct 6: Homework 6 due Oct 7: 6.4, Spline Interpolation
8 Oct 10: 7.1, Numerical Partial Differentiation Oct 11 Oct 12: 7.2, Numerical Integration Oct 13: No class Oct 14: No class 
9 Oct 17: 7.2, Numerical Integration Oct 18 Oct 19: 7.3, Gaussian Quadrature Oct 20: Homework 7 due Oct 21: 7.3, Gaussian Quadrature
10 Oct 24: 8.1, Solving ODEs Oct 25 Oct 26: 8.1, Solving ODEs Oct 27: Homework 8 due Oct 28: 8.3, Runge-Kutta Methods
11 Oct 31: 8.4, Multistep Methods Nov 1 Nov 2: 8.7, Boundary-Value Problems Nov 3: No homework due Nov 4: Exam 2
12 Nov 7: 8.8, Shooting Methods Nov 8 Nov 9: 8.9, Finite Differences Nov 10: Homework 9 due Nov 11: No class
13 Nov 14: 8.10, Collocation Nov 15 Nov 16: 9.2 PDEs Nov 17: Homework 10 due Nov 18: 9.3 PDEs
14 Nov 21: Leeway Nov 22 Nov 23: No class  Nov 24: No class Nov 25: No class
15 Nov 28: Leeway Nov 29 Nov 30: Review of course Dec 1: Homework 11 due Dec 2: Review of course

Advice on succeeding in a math class:


Homework .tex files

Supplementary Notes