Math 652 --- Numerical Analysis II

Online Course Instructions

Effective immediately, all lectures and office hours will take the form of video conferences. Please find detailed and up-to-date instructions specific to Math 652 here.

General information about the university's response to the COVID-19 pandemic can be found here.

I wish you all the best during this difficult time, and I want to make sure that Math 652 does not add to your troubles. If something is not working for you, let me know. Please feel free to make suggestions.


Brian Van Koten
Assistant Professor

Email: vankoten(at)
Office: LGRT 1428
Website: See my personal website here.

Office Hours

If you have questions or concerns, talk to me during my office hours or make an appointment. My office hours are listed on my math department directory page.

I may change my office hours during the course of the semester. Any such changes will be announced in advance in class.


Lectures will be held MW from 2:30-3:45pm in LGRT 1322.


Homework Policies

Homework may be assigned after any class. There will be at least one assignement given each week. All assigments will be posted below. Problems assigned during each week will be due the following week on Friday.

No late homework will be accepted. Instead, when the total course grade is computed, the lowest homework score will be dropped.

I encourage you to discuss the homework with your classmates and to come to my office hours with your questions.

Homework Assignments


Exam Schedule

Exam Policies

Please do not discuss the problems on the midterm or the final with anyone. You may consult any of the recommended texts, but please do not search the web for solutions.

If for any reason you will not be able to take either exam at the specified time, let me know as soon as possible.

Disputing Grades

If you suspect that a mistake has been made in the grading of your work, please point it out to me no more than two weeks after the work was returned. I will not consider complaints if more than two weeks have passed. Please do not ask the grader to change homework grades; come to me with any disputes.

Course Content


You may find the texts listed below useful. When available, I will give references for results discussed in class, usually in one of the sources below. I will also post excerpts from my lecture notes from time to time, as needed.

Topics Prerequisites

Introductory courses in numerical analysis, real analysis, and linear algebra. Competency in computer programming. Students should be prepared to learn elements of partial differential equations, functional analysis, physics, and data science, as needed.

Notes on Computing

What language should I use?

I recommend that all students use Python. However, in principle, I will accept correct programs written in any language. I have listed all of the reasonable choices roughly in order of preference.

Getting started with python

  1. Download Anaconda Python version 3.7, and follow the installation instructions for your operating system. Make sure you get Python 3.7, not Python 2.7
  2. Look over the elementary examples that I have compiled for this class. (See here for a live version of the notebook linked above.)
  3. Attempt your first assignment by copying and modifying code from the examples. Use the Spyder IDE. Spyder comes with Anaconda. To launch it, you can just run "spyder" in the terminal. Otherwise, you should be able to find it in some kind of start menu after installing Anaconda.
  4. Try the Software Carpentry Foundation tutorials here.
  5. Try John Guttag's online course, which is available here. You might also like the book that goes along with the course: Guttag, John. Introduction to Computation and Programming Using Python: With Application to Understanding Data. MIT Press, 2016.

Integrated Development Environments for Python

I think you will probably want to use either the Spyder IDE or Jupyter Notebooks for this class. Spyder is more versatile and it is probably easier to learn. Jupyter might be better for our purposes, however, because you can do both the code and the write up together in Jupyter.

Getting Started with Spyder

I have been unable to find a good tutorial for Spyder, so I will simply give a demonstration in class. It is quite similar to the MATLAB IDE and also RStudio. Spyder comes with decent documentation, so I don't think you will have any trouble picking it up.

Getting Started with Jupyter Notebooks

  1. Try one of these jupyter tutorials. (You want the ones under the "Try classic notebook" heading.)
  2. Download and run this jupyter notebook. To run the notebook, try "jupyter notebook python-examples.ipynb" in a terminal from the directory containing the notebook. (This will definitely work in bash on Linux/Apple, and it will probably work in Windows.)

How should I present my programs?

Turn in your programs as appendices to your assignments. If you prefer, you may instead turn in jupyter notebooks incorporating both code and explanations.


The total course score will be computed according to the following formula: 50% Homework + 30% Midterm + 20% Final.

If your score is in the top third, you will receive an A. If your score is in the middle third, you will receive at least a B, but possibly a higher grade. If I am convinced that all students understand the basic principles of the course, I will not give any C's, D's, or F's. I will make the distribution of scores on the midterm and the final exam known.