ACMS40390 Numerical Analysis

Course Description
This course is an introduction to the numerical analysis. The primary objective of the course is to develop the basic understanding of numerical algorithms and skills to implement algorithms to solve mathematical problems on the computer.

Course Objectives
By the end of this course, the students should be able to:

  • Understand how a computer represents real numbers and performs arithmetic.
  • Solve non linear equations on a computer using Python with various algorithms.
  • Perform numerical interpolation from a dataset.
  • Compute numerical approximations of derivatives and integrals.
  • Solve linear systems of equations with direct and iterative methods.
  • Numerically integrate ordinary differential equations on a computer using Python.

Prerequisites

(MATH 20750 or MATH 30650 or ACMS 20750) and (ACMS 20210 or ACMS 20220)

Class Info

  • Instructor: D. Schiavazzi TA: Yihao Hu
  • Office: 101G Crowley Hall
  • Email: dschiavazzi(at) nd.edu
  • Phone: (574)631-0420
  • Class Location: Hayes Healy Center 127
  • Class Schedule: Monday, Wednesday, Friday 9:25AM - 10:15AM
  • Office Hours: Tuesday 12:15PM - 2:00PM either in person in 101G Crowley Hall or online.
  • Office Hours (TA): Thursday 2:00PM - 4:00PM via zoom.

Textbook and other references

  • Class notes and theory slides from the instructor.
  • Source code on GitHub
  • Burden R.L., Faires J.D. and Burden A.M., Numerical Analysis 10th Edition, Cengage learning, 2016.

Required Work and Grading Criteria

The required work consists of homework problems, one midterm exam, and one final project. The breakdown of marks is:

  • Attendance and participation in class: 10%
  • Homeworks: 30%
  • In-class exams: 30%
  • Computer projects: 40%

Python programming - If you are unfamiliar with Python, I strongly recommend you to go through the online tutorial at this link, specifically: 1. Getting started with Python for science, 1.1. Python scientific computing ecosystem, 1.2. The Python language, 1.4. NumPy: creating and manipulating numerical data and 1.5. Matplotlib: plotting. A video review on these topics is available through Panopto and the first homework will allow you to familiarize with the language.

Homework Assignments - Homework Homework assignments will be based on the material either presented in class or available online. The students will be asked to solve problems, answer questions from the theory. Weekly homework assignments will be made available through Canvas on Thursday and are expected to be returned by Thursday of the following week. This class has a no late return policy (no late return tolerated) and a homework not returned will received an F (60/100 points). However, the two lowest homework grades will be dropped.

Midterm Exam - There will be a take home mid-term exam.

Final Project - Students will be asked to propose a project that combines their research activities with some of the topics discussed in class. This may involve, for example, reproducing (and critically reviewing) the results of a paper in the literature. Alternatively, a project will be assigned by the instructor. Each project may be performed individually or in groups, and will be presented to the rest of the class during the last class meeting.

Honor Code - All students must familiarize themselves with the Honor Code on the University’s website and pledge to observe its provisions in all written and oral work, including oral presentations, quizzes and exams, and drafts and final versions of essays.

Program (tentative)

Week n. Tentative Content
Week 1 Review of calculus, computer arithmetic, rate of convergence.
Week 2 Bisection method and fixed point iteration.
Week 3 Newton's Method.
Week 4 Lagrange interpolation and divided differences.
Week 5 Hermite interpolation and cubic splines.
Week 6 Numerical differentiation, Newton-Cotes integration formulae.
Week 7 Numerical integration, Simpson's rule and Gauss quadrature.
Week 8 Linear systems. Gaussian elimination, pivoting.
Midterm
Week 9 Direct solution based on matrix factorization.
Week 10 Jacobi and Gauss-Siedel iterations. Relaxation techniques.
Week 11 Conjugate gradient method with preconditioning.
Week 12 Intro to ODE. Euler's Methods.
Week 13 Runge-Kutta methods.
Week 14 Multistep methods.