Skip to content

Latest commit

 

History

History
323 lines (270 loc) · 27.1 KB

syllabus.md

File metadata and controls

323 lines (270 loc) · 27.1 KB

Syllabus for APPM/MATH 4650 Intermediate Numerical Analysis

Fall 2020, Instructor: Stephen Becker (Applied Math dept) This semester, the course is remote-only due to COVID-19

Official course description

Focuses on numerical solution of nonlinear equations, interpolation, methods in numerical integration, numerical solution of linear systems, and matrix eigenvalue problems. Stresses significant computer applications and software. Department enforced prerequisite: knowledge of a programming language.

Requires a prerequisite course of MATH 3430 or APPM 2360 (these are ODE or ODE + linear algebra courses) and APPM 3310 (matrix methods), all with a minimum grade of C-. We'll use a lot of math from your previous courses, especially:

  • lots of calculus, including: Taylor's theorem, fundamental theorem of calculus, IVT, EVT, MVT, sequences and series, limits, continuity, Riemann sums, L'Hopital's rule
  • Facts about polynomial roots (fundamental theorem of algebra); complex numbers
  • Vector spaces, subspaces, bases
  • Solving ODEs; ODE theory
  • Solving linear equations, vector operations (dot products), matrix multiplication

Related courses at CU

This course is similar to the CS department's CSCI-3656 Numerical Computation but has a bit more analysis (and more math prerequisites), fewer implementation details, and similar but not identical topics.

This APPM/MATH 4650 course is cross-listed in both the Applied Math and Math departments. It is offered every semester, being taught in the fall by an Applied Math instructor (usually 2 sections) and in the spring by a Math instructor (usually 1 section), and sometimes it is offered in the summer as well. The second semester course is 4660, taught in spring by Applied Math; about half the students in 4650 take the second semester course.

Programming

Homeworks will involve by mathematical analysis and programming.

Students are expected to already know how to program. We encourage using Python and Matlab; Julia is another good choice though we will not be using it explicitly. For homework assignments, usually the deliverable is the outcome of some code, so therefore the student may choose any reasonable programming language. However, we will be doing demonstrations in Python and/or Matlab (and the instructor/TA are best at debugging Python and Matlab). Most of our demonstrations will be using github in conjunction with python via colab.

Principal Topics

  • Floating point numbers
  • Roots of 1D nonlinear equations
  • Interpolation, polynomial approximation, splines
  • Numerical differentiation and numerical integration (quadrature)
  • Numerical methods for solving initial-value problems in ordinary differential equations
  • Gaussian elimination, LU, and solving linear systems

Learning Goals/Outcomes

  • Understand the sources of errors in computation, and be able to analyze the stability of an algorithm
  • Be able to pick an appropriate computing environment and when to use existing libraries/frameworks
  • Be able to translate numerical algorithms into fast, easy to read and generalizable pieces of software
  • Know which mathematical problems are efficiently solvable on a computer
  • Understand how polynomials are used in numerical algorithms
  • Know how calculus concepts (differentiation, integration, ODEs) can be tackled in a computational setting
  • Understand the advantages/disadvantages of the many existing schemes for solving initial value problems for ODEs.

Learning Objectives (i.e., quantifiable outcomes)

  • Determine when a problem is ill-conditioned and when an algorithm is unstable; understand the difference between symbolic and numeric computation, and floating-point and fixed-point arithmetic
  • Identify the main categories of numerical problems
  • Know basic methods, and their tradeoffs, for solving 1-dimensional nonlinear equations and multi-dimensional linear equations
  • Understand how polynomials are used for quadrature rules, and the ideas of composite rules and non-equispaced nodes.
  • Derive methods for numerically solving initial value problems for ODEs
  • Analyzing an ODE method for stability and convergence

High-level list of topics

Roughly, chapters 1--6 of Burden and Faires' textbook (9th or 10th edition); the second-semester continuation of this course (4660) roughly covers chapters 7--12. The following is taken from the table of contents of the textbook:

  1. Math preliminaries and error analysis
    • Review of calculus; round-off errors and computer arithmetic; algorithms and convergence
  2. Solutions of Equations in One Variable
    • Bisection method; Fixed-point interation; Newton's method; Error analysis; Accelerating convergence; zeros of Polynomials and Muller's method
  3. Interpolation and Polynomial Approximation
    • Interpolation and the Lagrange Polynomial; Data approximation and Neville's method; Divided Differences; Hermite Interpolation; Cubic Spline Interpolation; Parametric Curves
  4. Numerical Differentiation and integration
    • Numerical differentiation; Richardson's Extrapolation; Numerical Integration; Composite Numerical Integration; Romberg Integration; Adaptive Quadrature; Gaussian Quadrature; Multiple and Improper Integrals
  5. Initial-Value Problems for Ordinary Differential equations
    • Theory for IVP; Euler's Method; Higher-order Taylor Methods; Runge-Kutta; Error control and the Runge-Kutta-Fehlberg Method; Multistep methods; Variable step-size multistep methods; Extrapolation Methods; Higher-order Equations and Systems of ODE; Stability; Stiff equations
  6. Direct Methods for Solving Linear Systems
    • Linear systems of equations; pivoting strategies; linear algebra and matrix inversion; the determinant; matrix factorization; special types of matrices

For reference, chapters 7--12, which are not covered in this first semester course, are:

  1. Iterative Techniques in Matrix Algebra (Jacobi, Gauss-Siedel, CG)
  2. Approximation Theory (orthogonal polynomials)
  3. Approximating Eigenvalues (power method, Householder, QR, SVD)
  4. Numerical solutions of nonlinear systems of Equations
  5. Boundary-Value problems for ODEs
  6. Numerical Solutions to Partial Differential Equations

Detailed list of topics

i.e., what we actually covered. Topics listed for dates in the future are just estimates.

Week 1, Aug 24-28 2020. Chapter 1 (preliminaries, floating pt numbers)

Week 2, Aug 31-Sep 4 2020. Chapter 1 and 2

Week 3, Sep 9-Sep 11 2020. Chapter 2 (root-finding, etc)

Week 4, Sep 14-Sep 18 2020. Chapter 2 and 3

Week 5, Sep 21-24 2020. Chapter 3 (interpolation, etc.)

  • Mon: "Divided Differences, part 2" (18 min; same notes as before) from ch 3.3; and "Hermite Interpolation" (14 min; notes) from ch 3.4
    • Demo: continue demo from last Friday
  • Wed: "Splines" (part 1, 15 min; part 2, 8 min; part 3, 24 min; notes ) from ch 3.5 (we'll skip ch 3.6)
  • Fri: Review / Q&A for midterm. Take-home midterm handed out
    • The written part of the midterm (2 hours, open note, open book), and there was a 45 min true/false or multiple choice section we took via Canvas

Week 6, Sep 28-Oct 2 2020. Chapter 4 (finite differences)

  • Mon: "Intro to numerical differentiation" (19 min; notes), ch 4.1
  • Wed: "Finite differences" (32 min; notes), ch 4.1
  • Fri: "Richardson extrapolation" (23 min; notes), ch 4.2
    • Demo: none

Week 7, Oct 5-Oct 9 2020. Chapter 4 (numerical integration)

Week 8, Oct 12-Oct 16 2020. Chapter 4 (numerical integration)

Week 9, Oct 19-Oct 23 2020. Chapter 4 (numerical integration) and start Ch 5 (ODE solvers)

Week 10, Oct 26-Oct 30 2020. Chapter 5 (ODE solvers) and midterm

  • Mon: "Systems of ODEs" (32 min; notes), ch 5.9
  • Wed: "Higher-order Taylor Methods" and local truncation error (26 min; notes), ch 5.3
  • Fri: Review / Q&A for midterm 2. Take-home midterm handed out
    • The written part of the midterm (2 hours, open note, open book), and there is a 45 min true/false or multiple choice section we take on Canvas
    • Here's a review sheet and the review sheet solutions
    • We also have a conceptual review sheet from the Driscoll and Braun textbook (PDF on Canvas)

Week 11, Nov 2-Nov 5 2020. Chapter 5 (ODE solvers)

Week 12, Nov 9-Nov 13 2020. Chapter 5 (ODE solvers)

  • Mon: "Multistep methods" and predictor-corrector (2 videos, 19 min and 7 min; notes)
    • No demo
  • Wed: "Adaptive multistep methods and extrapolation" (15 min; notes), ch 5.7 and 5.8; as you can tell from the short video, we're not emphasizing this material much
  • Fri: "Stability", definitions of consistency/convergence/stability, and stability/convergence of one-step methods (2 videos, 23 min and 18 min; notes), ch 5.10

Week 13, Nov 16-Nov 20 2020. Chapter 5 (ODE solvers)

  • Mon: "Stability of multistep methods" and the characteristic polynomial (40 min; notes), ch 5.10 continued
    • No demo
  • Wed: "Stability Examples" (30 min; notes)
  • Fri: "Stiff Equations and Absolute Stability, part 1" (25 min, notes), ch 5.11
    • No demo

Week 14, Nov 23-Nov 27 2020. Chapter 5 (ODE solvers), then Chapter 6 (linear algebra)

Week 15, Nov 30-Dec 4 2020. Chapter 6 (systems of linear equations)

In chapter 6, we're roughly covering the material from the book, but adding more (conditioning, more details on LAPACK/BLAS), and doing it in a differentn order

Subjects on the midterms and final

You might try the midterm study guide jupyter notebook used for the CS department's version of this class.

Both midterm exams were take-home exams, self-timed with generous time limits. They had true-false/multiple-choice component via Canvas (closed note, closed book) for 45 min, and then 2 hours to solve word problems (scanned, uploaded to Gradescope) which was open note and open book but closed internet. The exams are posted at Exams; solutions are available on Canvas.

Midterm 1

The high-level set of topics is anything we've discussed in class up to and including the "Divided Differences" video of Monday Sept 21.

See the Midterm 1 review and Midterm 1 review solutions

Below are specific chapters (in Burden and Faires 9th or 10th edition) that are covered:

  • Chapter 1 (preliminaries and error analysis)
    • 1.1 review of calc
    • 1.2 round-off errors
    • 1.3 algorithms and convergence, in particular big-O notation
  • Chapter 2 (scalar root-finding)
    • 2.1 bisection method
    • 2.2 fixed point iteration
    • 2.3 Newton's method
    • 2.4 error analysis for iterative methods
    • 2.5 accelerating convergence [skip Steffensen's method]
    • 2.6 zeros of polynomials [fundamental theorem of algebra, but skip Horner's method as presented in the book (but you should know it as presented in the notes and HW), and skip Muller's method]
  • Chapter 3 (interpolation and polynomial approximation)
    • 3.1 interpolation and the Lagrange polynomial (skip 3.2 on Neville's method)
    • 3.3 divided differences

Midterm 2

See the Midterm 2 review and Midterm 2 review solutions

  • Chapter 3 (interpolation and polynomial approximation)
    • 3.4 Hermite Interpolation
    • 3.5 cubic splines
  • Chapter 4 (numerical differentiation and integration)
    • 4.1 intro: basic concepts (e.g., using interpolation), finite difference formulas
    • 4.2 Richardson extrapolation
    • 4.3 numerical integration (quadrature), Newton-Cotes formulas
    • 4.4 composite quadrature
    • 4.5 Romberg integration
    • 4.6 Gaussian quadrature (Gauss-Legendre, Gauss-Laguerre, Gauss-Hermite; skip Chebyshev-Gauss). Note that we are not covering Clenshaw-Curtis
    • 4.7 multiple (higher-dimension) integrals
    • 4.8 improper integrals
  • Chapter 5 (numerical methods for IVPs/ODEs)
    • 5.1 intro and theory for IVPs and ODEs
    • 5.2 Euler's method

Final Exam

The final is cumulative, but with extra emphasis on the following topics

See the Final Exam review and Final Exam review solutions; see also the conceptual review sheet "KeyIdeas_DriscollBraun.pdf" on canvas

The most important topics are marked with an asterisk*

  • Chapter 5 (numerical methods for IVPs/ODEs)
    • 5.3 higher-order Taylor Methods
    • 5.4 *Runge-Kutta Methods
    • 5.5 error control and the Runge-Kutta-Fehlberg method (i.e., embedded formula)
    • 5.6 *multistep methods
    • 5.7 variable step-size Multistep methods (covered only very briefly)
    • 5.8 extrapolation methods (covered only very briefly)
    • 5.9 *higher-order equations and systems of ODEs
    • 5.10 *stability (zero-stability/root-condition)
    • 5.11 *stiff ODEs (absolute stability)
  • Chapter 6 (solving linear systems of equations)
    • 6.1 *linear systems of equations
    • 6.2 pivoting strategies
    • 6.3 *linear algebra and matrix inversion (this should be review, but is's very important, so it has an asterisk)
    • 6.4 determinant of a matrix (we didn't do a lecture on this but it's review from your linear algebra class, so you should make sure you're familiar with it)
    • 6.5 *matrix factorization (LU factorization)
    • 6.6 special types of matrices (LDL, Cholesky, tridiagonal systems)
    • You should know the complexity of matrix multiplication
    • You should have an understanding of LAPACK and BLAS
    • The condition number of a matrix and its relevance
    • We are not testing on least-squares methods

Details on the final exam: unlike the midterms, this is not take-home. We'll have a true-false/multiple-choice section on Canvas, then a written section that you'll scan and upload to Gradescope. There are 2.5 hours for the exam. We'll do this via zoom and you need your webcam on. We'll also use Proctorio, so make sure you have Chrome installed as well as the Proctorio Chrome extension. This is an open-note exam and you can use your notes, my notes, and the book, but no internet is allowed (other than Canvas/Gradescope).