# Course 5044 - Introduction to Numerical Analysis II - Spring 2023

Official Information
Course Number:Math 5044.001
CRN:38528
Course Title:Introduction to Numerical Analysis II
Times:TR 5:10-6:30
Places:Wachman Hall 413

Instructor: Benjamin Seibold
Instructor Email: seibold(at)temple.edu
Instructor Office:Wachman Hall 518
Instructor Office Hours:T 4:00-5:10, R 2:00-3:00

Course Textbook: Randall J. LeVeque, Finite Difference Methods for Ordinary and Partial Differential Equations - Steady State and Time Dependent Problems, SIAM, 2007
Official:Course Syllabus
Topics Covered: This course provides a rigorous introduction to numerical methods for ordinary differential equations, establishing both knowledge and understanding of modern and efficient methods, as well as tools of analysis to understand when and why different methods work (or fail). Particular topics: Runge-Kutta, multistep, and Taylor series methods. Deferred correction. Convergence and stability. Error analysis. Stiff problems. Boundary value problems. Finite differences. Stochastic ODEs.
Course Goals: Provide a rigorous mathematical basis for numerical methods for ordinary differential equations, and lay the groundwork for more advanced courses on numerical differential equations. Provide insight and intuition to fundamental challenges inherent to many problems in computational science and engineering.
Attendance Policy: Students are expected to attend every class. If a student cannot attend a class for some justifiable reason, he or she is expected to contact the instructor before class.
Course Grading: Homework: 50%; exams: 50%.
Final Exam Date:05/05/2023.
Course Schedule
01/17/2023   Lec 1
Introduction: Ordinary differential equations, Linear ODE
01/19/2023   Lec 2
Predator-prey model, Lipschitz continuity, IVPs vs. BVPs
01/24/2023   Lec 3
Fundamental concepts in numerical methods for ODEs
01/26/2023   Lec 4
Taylor series methods: advantages and drawbacks

01/31/2023   Lec 5
Runge-Kutta methods: Butcher tableau
02/02/2023   Lec 6
General Runge-Kutta methods, ERK-DIRK-IRK
02/03/2023   Lec 7
Order conditions
02/09/2023   Lec 8
Embedded methods, adaptive time-stepping, dense output, Richardson extrapolation
02/14/2023   Lec 9
Linear multistep methods: order conditions
02/16/2023   Lec 10
02/21/2023   Lec 11
Zero-stability and convergence: failure of zero-stability, difference equations
02/23/2023   Lec 12
Zero-stability and convergence theorems
02/28/2023   Lec 13
Absolute stability: stability regions for different methods
03/02/2023   Lec 14
Boundary locus method, linear systems

03/14/2023   Lec 15
Stiff problems: Schemes for different stiffness types, A-stability, L-stability
03/16/2023   Lec 16
Mildly stiff problems, RK-Chebyshev methods, stiffness in nonlinear problems

03/21/2023   Lec 17
Order reduction

03/23/2023   Lec 18
Implementation of implicit RK methods

03/24/2023   Lec 19
Semi-implicit methods: ImEx Runge-Kutta methods
03/28/2023   Lec 20
ImEx stability

03/30/2023   Lec 21
ImEx multistep methods
03/31/2023   Lec 22
Other methods and special problems: SSP schemes, Hamiltonian ODEs
04/04/2023   Lec 23
Symplectic methods
04/06/2023   Lec 24
Deferred correction

04/18/2023   Lec 25
Stochastic differential equations: examples
04/20/2023   Lec 26
Euler-Maruyama and Milstein method, weak and strong convergence
04/25/2023   Lec 27
Boundary value problems: shooting methods
04/27/2023   Lec 28
Finite difference discretizations, pathways to PDE
05/05/2023 Final Examination
Matlab Programs
Introduction:
temple5044_linear_ode_2x2.m Vector field and phase flow for linear 2x2 ODE systems
Visualizes the different cases that can arise with 2x2 systems of ODE, via quiver plot, eigen-directions, and deformation of the unit circle.
temple_abm_population_local.m   Population dynamics models via 2x2 nonlinear ODE systems
The dynamics of two species are demonstrated in various cases: predator-prey, logistic growth, competition, and mutalism.

Runge Kutta methods:
ode1.m
ode2.m
ode3.m
ode4.m
ode5.m
Runge-Kutta methods of orders 1,2,3,4, and 5
Initial value problem ODE are solved approximated equidistant time steps.
temple5044_rk_order_conditions.m Check Runge-Kutta order conditions
This code verifies whether the order conditions (up to order 5) are satisfied or not for a generic Runge-Kutta scheme, provided via its Butcher tableau.
Example file: temple5044_rk_order_conditions_example.m, applies the code to three example methods.
temple5044_voyager.m Simulation of jupiter swing-by of the Voyager 1 space probe
A four-body problem of celestial mechanics, involving the sun, earth, jupiter, and Voyager 1, is solved numerically with an RK4 discretization that is far too inaccurate.

Absolute stability:
temple5044_absolute_stability_region_rk.m   Plot regions of absolute stability for Runge-Kutta methods
Provided are 9 examples of Runge-Kutta schemes, defined via their Butcher tableaus.

Semi-implicit methods:
temple5044_stability_region_imex_rk.m Plot stability regions for ImEx Runge-Kutta methods
Provided are 6 examples of ImEx Runge-Kutta schemes, applied to the test problem u'=αu+iβu.

Stochastic differential equations:
temple5044_euler_maruyama.m Error convergence study of Euler-Maruyama method
for the stochastic differential equation (geometric Brownian motion) dX = μ X dt + σ X dW.
Boundary value problems:
mit18336_poisson1d_error.m Numerical error analysis for the 1D Poisson equation
A differentiable but oscillatory right hand side is considered.
Homework Problem Sets