Numerical Methods II

MATH-GA 2020.001 and CSCI-GA 2421.001
Courant Institute of Mathematical Sciences,
New York University
Spring Semester, 2014
Lectures: Thursday, 5:10 to 7 pm, Room 512, Warren Weaver Hall


Jonathan Goodman
room 529 Warren Weaver Hall
office hours: 4 to 6 pm Wednesdays
          or by appointment

Teaching Assistants

Chen-Hung Wu
room 1004 Warren Weaver Hall
office hours: 3 to 5 pm Tuesdays
          or by appointment

Course description and philosophy

This is the second semester of Numerical Methods, covering computational methods for ordinary and partial differential equations. We cover low and high order finite difference methods and briefly survey finite element and spectral discretizations. ODE time stepping algorithms of linear multi-step and Runge-Kutta type are used as method-of-lines discretizations of time dependent PDEs. Their stability regions are described. We discuss iterative solution algorithms for large systems of equations that arise from PDE discretizations, which include conjugate gradient, GMRES, and multigrid. Analytical tools include Fourier analysis, energy methods, and multi-scale decompositions.

Scientific computing is a multi-disciplinary activity that involves mathematics, algorithms, and software engineering. Assignments will involve on practical scientific programming as well as mathematics. Scientific software principles include modularity, unit testing, performance, robustness, and convergence analysis. Students will use UNIX tools, scientific software for visualization and packages such as LAPACK and FFTW.


Mathematical prerequisies include basic analysis, linear algebra and differential equations. Some exposure to differential equations either through a differential equations class or through applications such as fluid mechanics, electro-magnetism, etc, is very desirable. Students also should be able to program in a high level language such as C, C++, FORTRAN, or Java. Students who only have worked in a scripting language (Matlab Python, R etc.) should start learning C++ before the class starts or struggle in the first weeks.