CSC436 Numerical Algorithms
[Announcements]
[Material covered]
[Lectures, Tutorials, Assignments (with pass)]
Announcements, Course information for current students:
- 2026-02-11
Term test 1, on Tue 24 Feb 2026, 6-7PM, will take place in class,
and will cover all the material up to (but NOT including) Gauss integration.
That is, all of interpolation (incl. spline interpolation)
and Newton-Cotes quadrature, including error estimators,
and adaptive quadrature are in.
See more info and some practice questions here.
Office hours and extra office hours:
Tuesday, 17 Feb 2026, 16:30-17:30,
Thursday 19 Feb 2026, 15:30-16:30,
Monday, 23 Feb 2026, 13:30-14:30,
Tuesday, 24 Feb 2026, 16:30-17:30.
If none of the above fits you or you need to meet remotely
through Zoom, please send me e-mail ahead of time.
- 2026-02-09:
Assignment 2 is posted, due Tue Mar 10, 2026, 6 PM.
Marks for A1 are released on MarkUs.
Solutions will be discussed in class, Tue 10 Feb 2026.
- 2026-02-03:
MarkUs
is open.
- 2026-01-23:
Updated notes1int-pp.pdf
and notes1int-pp-1.pdf,
with a correction (factor of 6) in Equations (44), (46) and (47).
- 2026-01-21:
Assignment 1 is posted, due Wed Feb 4, 2026, 6 PM.
Note that this deadline is one day later than the one in the outline (but this is only for this assignment).
Extra and regular office hours:
Tuesday 27 Jan 2026, 4:30-5:30 PM,
Friday 30 Jan 2026, 1-2 PM,
Monday 2 Feb 2026, 2:30-3:30 PM (note the change),
Tuesday 3 Feb 2026, 4:30-5:30 PM.
-
The first meeting of the course is
Tuesday 6 January 2026, 6-9 PM. (Starts at 6:10 PM).
The room is MP 134 (MacLennan Physics)
No classes
February 16-20, 2026 (Spring break / Reading week -- A&S calendar).
-
To access the assignment, or the notes, you will need to type
your CDF (teaching labs) username (same as UTorId) as loginname,
and last 5 digits of your student number as password.
This password (for accessing the website) cannot be reset,
and it is only for accessing the website.
If you registered for the course today, please wait a day,
to check access to the website.
Please note that to access the servers/computers,
the password is different.
There is an initial password set by the system (usually the student number),
and then you can set it to whatever you want.
-
Bulletin/discussion board for csc436 Spring 2026.
Need to register with your utoronto.ca e-mail address.
-
Important note on the use of bulletin boards:
No parts of or whole answers to the assignment/exam problems
should be posted to the boards (or anywhere else),
even after the assignment is due.
Questions and answers (even written by you) should never
be shared with anyone or anywhere.
Any violation of this rule will bring trouble to the poster.
Please use judgement before posting.
Any questions posted on the bulletin boards should be general enough
and should not reveal intermediate or final results (correct or wrong).
If unsure, ask by e-mail to instructor.
-
All assignments and exams are to be done individually by each student.
See the course outline
about academic integrity and additional information.
- Here is a latex example file,
with associated files
spyalt.eps, spyblock.eps,
trochoid1.m,
assign.bib, to compile correctly,
and output 436a1.pdf.
You can use it for assignments, but you may also use you own latex template.
Please always use font size 12 and linespread 1.1, as shown in the sample file.
Do NOT use dark background in any page or figure.
See the course outline for more details on presentation.
-
CDF/Teaching Labs:
Please see http://www.cdf.toronto.edu
or http://www.teach.cs.toronto.edu
(they are the same), especially the
Resources, Intro to new students tab, and the
Using Labs, Remote Access Server tab.
-
Running remotely, etc:
If you want to run matlab and other applications remotely
on teach.cs (CDF), and you are using Windows or Mac OS
on your computer/laptop, you will need the so-called
X forwarding on your computer/laptop.
X forwarding allows you to run any application, including matlab,
remotely on teach.cs (CDF) and the output/display/plots/etc
be shown on your computer/laptop.
See
https://www.teach.cs.toronto.edu/using_cdf/x2go.html
for a way to have X forwarding on your computer/laptop.
-
Matlab:
The basic Matlab is free for students. (UT pays for it.)
See https://www.mathworks.com/academia/tah-portal/university-of-toronto-676468.html
However, you need to first register with matlab, as shown
in the above page.
(You do this only once.)
You can also consider free (perpetually) alternatives to Matlab,
such as Octave.
-
To use matlab on cdf, through the linux shell, on the workstations
in the teaching labs,
first you need to register with matlab as in
https://www.mathworks.com/academia/tah-portal/university-of-toronto-676468.html
(You do this only once.)
Then, on one of the workstations in the teaching labs, you type
/usr/local/bin/matlab -softwareopengl
or
/usr/local/bin/matlab -nodesktop -softwareopengl
The first time it is slow, as it loads lots of stuff,
but the second time and on, it should be faster.
-
To use matlab on cdf, through the linux shell, remotely,
you need to register and use it once on the workstations in the teaching labs,
then, you can use it remotely.
You need to login via ssh
(on an xterm or other terminal in unix, linux, mac, or cygwin,
and on putty in windows,
or through some free X forwarding application such as mobaxterm, or X2Go)
with a command such as
ssh -X user@cdf.toronto.edu
or
ssh -l user -X -f wolf.cdf.toronto.edu xterm
where ``user'' is your cdf username, then, once on cdf, run
/usr/local/bin/matlab -softwareopengl
or
/usr/local/bin/matlab -nodesktop -softwareopengl
Within matlab, you may want to go to a certain directory, say ~/matlab,
and for this you can use the unix shell command
cd ~/matlab
within matlab. You may also want to have a startup.m file
in that directory, to always run some standard commands
(e.g. format compact) every time you start matlab.
-
Textbook: The textbook for this course is Michael Heath's,
Scientific Computing: an introductory survey,
SIAM 2018 (Revised Second Edition).
This is the same book used for CSC336 Spring 2025.
https://my.siam.org/Store/Product/viewproduct/?ProductId=30156464
The list price is approximately $94.00 USD, but
there is also a 30% discount for SIAM members
(students are able to take advantage of this if they sign-up
for a free SIAM Student membership).
https://www.siam.org/Membership/Join-SIAM/Individual-Members/Student
This book was also published by McGraw-Hill Inc in the past,
but because the price was quite higher,
we ordered custom-made copies through the UT bookstore,
which were cheaper.
This year we did not order those copies,
as the SIAM price is reasonable.
However, if you find those copies from past students,
they are equivalent (not identical, but equivalent) to the SIAM edition.
This book covers most of what is needed in the course.
-
Textbook web page (see educational modules)
-
Another textbook appropriate for this course is
Uri Ascher and Chen Greif's,
A first course in Numerical Methods, SIAM.
This book is available electronically at the UT library
(free for UT students)
-
Lecture and tutorial times
may be used interchangeably, when the need arises.
You should not be skipping the tutorials or the lectures.
Material to be covered covered in the course (Spring 2026):
(Textbook sections in parentheses:
H = Heath, AG = Ascher and Greif, KC = Kincaid and Cheney, BF = Burden and Faires)
You may consult any of the following references.
The primary textbook is Heath's.
-
Michael Heath,
Scientific Computing: an introductory survey,
SIAM 2018 (or McGraw-Hill Inc.)
-
Uri Ascher and Chen Greif,
A first course in Numerical Methods,
SIAM 2011 (e-book on library)
-
David Kincaid and Ward Cheney,
Numerical Analysis,
Brooks/Cole
-
Richard L. Burden and J. Douglas Faires,
Numerical Analysis,
Brooks/Cole
First couple of lectures may go a bit fast over things that
were done in csc336. A few more things will be added.
Later lectures go on to new material.
2026-01-06 3 hrs
1 Interpolation
1.1 Approximation and interpolation - Introduction [H 7.1, KC 6.0, BF 3, AG 10.1]
1.2 Polynomial approximation - Weierstrass theorem [KC 6.1, BF 3]
1.3 Evaluating a polynomial -- Horner's rule (nested multiplication)
[H 7.3.1, KC 6.1, BF 2.6 pgs 92-94, AG 1.3 pgs 10-11]
1.4 Polynomial interpolation using monomial basis functions [H 7.3.1, KC 6.1, BF 3.1, AG 10.2]
1.5 Polynomial interpolation using Lagrange basis functions [H 7.3.2, KC 6.1, BF 3.1, AG 10.3]
1.6 Existence and uniqueness of polynomial interpolant [H 7.2, KC 6.1, BF 3.1, AG 10.1+2]
1.7 Polynomial interpolation using Newton's basis functions
and the Divided Differences Table [H 7.3.3, KC 6.1-2, BF 3.2, AG 10.4]
1.8 Comparison of the three bases
1.9 Error of the polynomial interpolant [H 7.3.5, KC 6.1, BF 3.1, AG 10.5]
Proof of Theorem
Remarks on Theorem
Theorems relating the polynomial interpolation error with Newton's DD
(we will do these next time)
1.10 Linear independence of functions/polynomials [BF 8.2, AG 10.1 pg 297]
1.11 Polynomial interpolation with derivative data [KC 6.3, BF 3.3, AG 10.7]
Most general (Birkoff) polynomial interpolation problem
A less general (Hermite) polynomial interpolation problem -- existence and uniqueness
An even less general (Hermite) polynomial interpolation problem
Standard Hermite polynomial interpolation problem
1.12 Hermite polynomial interpolation using monomial basis
1.13 Hermite polynomial interpolation using Lagrange basis [KC 6.3, BF 3.3]
1.14 Hermite polynomial interpolation using Newton's basis [KC 6.3, BF 3.3, AG 10.7]
2026-01-13 3 hrs
1.9b Remarks on polynomial interpolation error Theorem
Theorems relating the polynomial interpolation error with Newton's DD
1.10 Linear independence of functions/polynomials [BF 8.2, AG 10.1 pg 297]
Tutorial 1, only Q4, rest are from csc336
Tutorial 2, Taylor's and interpolation, case of no or inf solutions
Tutorial 3, Hermite, monomials, Lagrange, NDD, error, Hermite-Birkhoff
1.17 Pitfalls of polynomial interpolation [H 7.3.5]
[KC 6.1, pg 319, comp. probl pg 338] [BF 3.4, Figures 3.9, 3.10, 3.12]
[AG 10.6, 11.1]
1.18 Piecewise polynomials and splines [H 7.4, KC 6.4, BF 3.4, AG 11.1]
1.19 Linear spline interpolation (Lagrange form) [AG 11.2]
Error in linear spline interpolation
1.20 Cubic spline interpolation -- choice of end-conditions
[H 7.4.2, KC 6.4, BF 3.4, AG 11.2-3]
Error in cubic spline interpolation
Spline interpolation in MATLAB
2026-01-20 3 hrs
1.21 Construction of a clamped cubic spline interpolant [AG 11.3]
1.22 Piecewise polynomial basis functions [H 7.4.3, KC 6.5, AG 11.4]
1.23 B-splines [H 7.4.3, KC 6.5, AG 11.4]
1.24 Linear B-spline basis functions [KC 6.5, AG 11.4]
1.25 Linear spline interpolation using B-splines as basis functions [KC 6.5-6, AG 11.4]
1.26 Cubic B-spline basis functions [KC 6.5, AG 11.4]
1.27 Cubic spline interpolation using B-splines as basis functions [KC 6.5-6]
1.28 Piecewise cubic Hermite interpolation [H 7.4.1]
Tutorial 4, piecewise polynomials, splines and interpolation
2026-01-27 3 hrs
2 Numerical Integration [H Ch 8, KC Ch 7, BF Ch 4, AG Ch 15]
2.1 Introduction [H 8.1, KC 7.2, BF 4.3, AG 15.1]
2.2 Midpoint rule and error formula [H 8.3.1, KC 7.2, BF 4.3, AG 15.1]
2.3 Composite midpoint rule and error formula [H 8.3.5, KC 7.2, BF 4.4, AG 15.2]
2.4 Trapezoidal rule and error formula [H 8.3.1, KC 7.2, BF 4.3, AG 15.1]
2.5 Alternative derivation of quadrature rules based on model intervals [H 8.2]
2.6 Transforming quadrature rules to other intervals [H 8.3.3, KC 7.2, BF 4.7]
2.7 Simpson's rule and error formula [H 8.3.1, KC 7.2, BF 4.3, AG 15.1]
2.8 Corrected trapezoidal rule and error formula
2.9 Convergence of polynomial interpolatory quadrature rules
2.10 Newton-Cotes quadrature rules [H 8.3.1, KC 7.2, BF 4.3]
2.11 Composite quadrature rules and error formulae [H 8.3.5, KC 7.2, BF 4.4, AG 15.2]
2.12 Error estimators for quadrature rules [H 8.3.1, KC 7.5, parts of 7.4, BF 4.6, AG 15.4]
2.13 Adaptive quadrature [H 8.3.6, KC 7.5, BF 4.6, AG 15.4]
2026-02-03 3 hrs
Tutorial 5
2.14 Gauss quadrature rules [H 8.3.3, KC 7.3, BF 4.7, AG 15.3]
2.15 Comparison of NC and Gauss rules
2.16 Romberg integration [H 8.7, KC 7.4, BF ~4.2, 4.5, AG 15.5]
Tutorial 6
Appendix pgs 301-308
2.x Inner products and norms of functions
2.y Orthogonal polynomials, orthonormal, monic, Chebyshev, Legendre
2026-02-10 3 (2.5) hrs
Discussion on A1
2.17 Infinite (and semi-infinite) integrals [H 8.4.2, BF 4.9, AG 15.3,4 (examples)]
2.18 Singular integrals [H 8.4.2, BF 4.9, AG 15.3,4 (examples)]
2.19 Numerical integration in multiple dimensions [H 8.4.2, 8.4.4, AG 15.6]
Tutorial 7
2026-02-24 3 (2.5) hrs
term test 1
3 Ordinary Differential Equations [H Ch 9, KC Ch 8, BF Ch 5, AG Ch 16]
3.1 Introduction: DEs, ODEs, PDEs and IVPs [H 9.1, KC 8.1, BF 5.1, AG 16.1]
3.1 Introduction: DEs, ODEs, PDEs and IVPs [H 9.1, KC 8.1, BF 5.1, AG 16.1] end
3.2 Existence and uniqueness of solution of an IVP-ODE [H 9.2, KC 8.1, BF 5.1]
3.3 Second order ODEs and BVPs [H 9.1, KC 8.6, BF Ch 11, intro. pgs 624-625, AG 16.1]
3.4 nth order ODEs and IVPs for ODEs [H 9.1, KC 8.6, BF 5.9]
Systems of ODEs [KC 8.12, BF 5.13, AG 16.1]
3.5 Stability of ODEs -- Jacobian [H 9.2]
3.6 Stiff ODEs [KC 8.12]
3.7 Numerical methods for first order IVPs for ODEs
3.8 Forward Euler's method [H 9.3.1, KC 8.2, BF 5.2, AG 16.2]
Global and local truncation errors [H 9.3.2, KC 8.2, 8.5, AG 16.2]
Order of a numerical method for IVPs-ODEs [H 9.3.2, KC 8.2, BF 5.3 pgs 269-270, AG 16.2]
Stability of the numerical method [H 9.3.2, KC 8.5, BF ~5.10]
Region of absolute stability [H 9.3.2, KC 8.12, BF 5.11, AG 16.2]
Stiff ODEs [H 9.3.4, KC 8.12, BF ~5.11]
Systems of ODEs [KC 8.12]
Control of magnitude of LTE
Global error bound without round-off errors [KC 8.5, BF 5.2]
2026-03-03 3 hrs
Global error bound with round-off errors [BF 5.2]
3.9 Backward Euler's method [H 9.3.3, KC 8.4, BF 5.6, AG 16.2, 16.5]
Accuracy and stability of BE
3.10 Explicit versus implicit
3.11 Trapezoid method [H 9.6, BF 5.11]
3.12 Linear multistep methods [H 9.3.8, KC 8.4, BF 5.6, AG 16.4]
Tutorial 8
2026-03-10 3 hrs
3.13 Runge-Kutta methods [H 9.3.6, KC 8.3, BF 5.4, 5.5, AG 16.3, 16.6]
3.14 Software for IVP-ODEs
Other methods for IVPs
Some notes on numerical stability of methods for IVPs
Tutorial 9
Notes and handouts:
Course information
Outline
Access to the data below requires that
you type in your CDF (teaching lab) username
(as login) and
last 5 digits of your student number
(as pass).
This password (for accessing the website) cannot be changed.
Notes
- Interpolation 1 - monomials,
1-page,
- Interpolation 2 - Lagrange, Newton, error,
1-page,
- Interpolation 3 - Hermite (monomials, Lagrange, Newton), pitfalls,
1-page,
- Spline Interpolation and basis functions,
1-page,
photos:
strictly diag. dom.,
linear spline basis functions,
cubic spline basis functions,
model Hermite cubic spline basis functions,
quadratic spline basis functionsand model,
- Quadrature (Numerical integration),
1-page,
photos: trapezoid, midpoint,
compound rules, sharing fun evals,
midpoint (open) rule, refining, no re-use of fun evals,
semi-inf and singular integrals,
multi-dimensional quadrature rules,
Appendix on Quadrature,
1-page,
- ODEs I, existence, uniqueness, Lipschitz, Jacobian, stable ODE, stiff ODE,
1-page, photos:
Lipschitz,
Jacobian for nonlinear system,
systolic (Lipschitz < 1),
spectral radius,
convergence of FE,
- ODEs II, numerical methods for IVP-ODEs,
1-page, photos:
FE: LTE, GTE, stability restriction, LTE \le tol,
FE: GTE, round-off,
FE: practical stepsize,
LMMs, extrapolation,
Tutorials
- Interpolation I - monomials, Lagrange, NDD, error,
1-page,
- Interpolation II - Taylor's and interpolation, existence, uniqueness,
1-page,
- Interpolation III - Hermite, monomials, Lagrange, NDD, error, Hermite-Birkhoff,
1-page,
- Splines and interpolation,
1-page, (updated with an extra page at end),
photo: loglog error vs n,
- Quadrature I, Newton-Cotes, adaptive, error estimators,
1-page
- Quadrature II, Gauss, construction,
1-page
- Quadrature III, singularity,
1-page
- ODEs I, existence, uniqueness, Lipschitz, conversion,
1-page
- ODEs II, IVP-ODEs,
1-page
Assignments
If you are new to MATLAB, you may be interested in
A brief introduction to MATLAB,
Christina C. Christara and Winky Wai
Tutorial on MATLAB,
Christina C. Christara