CSC2321 Matrix Calculations Fall 2026

Announcements, course information for current students:

  • 2026-09-22: Assignment 1 is posted. Due Wed Oct 7, 5:00 PM (one day later than initially stated). MarkUs will open about 3 days before the assignment is due.
    Office hours (regular and extra): Wed 23 Sept, 1:30-2:30, Thu 24 Sept, 4:30-5:30, Mon 28 Sept, 1:00-2:00 (not 1:30-2:30), Wed 30 Sept, 1:30-2:30. Thu 1 Oct, 4:30-5:30, Mon 5 Oct, 1:30-2:30, You can always request other hours by email.
    A discussion board is open under edstem.org. To join, visit https://edstem.org/us/join/EKdBWs and use your utoronto.ca address.
  • 2026-09-09: The new date for the term test is Tuesday, November 3, 2026, 5-7 PM.
  • Regular classes October 26-30, 2026 (This is the Fall break / Reading week for A&S calendar). Note that the Fall break is NOT part of the SGS schedule.
  • To access the assignments, or the notes, that will be posted later as the course proceeds, you will need to type your CDF (teach.cs, 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 csc2321 Fall 2026, https://edstem.org/us/join/EKdBWs
    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 2321a1.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-labs/remote-labs-x2go/ 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.

Material covered or to be covered in the course (with textbook sections in parentheses)
The sections mentioned correspond to textbooks found in the reference list.

no name designation = Yousef Saad, Iterative Methods for Sparse Linear Systems
HaYo = L. A. Hageman and D. M. Young, Applied Iterative Methods
GoVL = Gene Golub and Charles Van Loan, Matrix computations
Ortega2 = J. M. Ortega, Matrix theory: a second course
VL = Charles Van Loan, Computational Frameworks for the Fast Fourier Transform
Ortega = J. M. Ortega, Parallel and Vector Solution of Linear Systems
Briggs = William L. Briggs, A multigrid tutorial, SIAM
Hackb = W. Hackbusch, Iterative Solution of Large Sparse Systems of Equations

2026-09-08 (2 hours)
1.   Introduction
1.1  Scope of the course
1.2  Vectors and matrices [1.1-3, 1.6-7, 1.11, 1.13.1, HaYo 1.2, GoVL 2.1, 2.7]
1.3  Eigenvalues and eigenvectors [1.2, 1.8-9, 1.11, HaYo 1.3]
1.4  Norms and inner products [1.4-5, 1.13.2, HaYo 1.4, GoVL 2.2-3] (start)
     Definition of inner products and norms
2026-09-15 (2- hours)
1.4  Norms and inner products [1.4-5, 1.13.2, HaYo 1.4, GoVL 2.2-3]
     Condition number of a matrix
1.5  Block matrices -- Partitioned matrices [1.3, HaYo 1.5, GoVL 1.3, 4.5]
1.6  One-dimensional boundary value problems -- A model problem
1.7  Two-dimensional boundary value problems -- A model problem [2.1-2, HaYo 1.6-7]
1.8  Stencils [2.2]
1.9  Tensor products of matrices [GoVL 4.5, Ortega2 6.3, VL 1.1.10] (start)
2026-09-22 (2 hours)
1.9  Tensor products of matrices [GoVL 4.5, Ortega2 6.3, VL 1.1.10] (end)
1.10 Finding eigenvalues/vectors of tridiagonal matrices
     with constant coefficients along the diagonal

2.   Direct methods for solving linear systems
2.1  Gauss elimination, LU factorisation [GoVL 3.2]
2.2  Back and forward substitutions, solution of a linear system [GoVL 3.1]
2.3  Symmetric matrices, LDL^T decomposition, Choleski decomposition [GoVL 3.2]
2.4  Banded matrices, banded storage, 5-pt-star matrix [GoVL 3.2]
2.5  Pivoting, row, column, complete, symmetric, banded matrices [GoVL 3.4]
2.6  A mathematical description of the GE/LU algorithm [GoVL 3.2.5, 3.4,
     Ortega2 pgs 19-22]
   - Elementary Gauss transformations, no pivoting
   - Elementary permutation matrices, row pivoting, complete pivoting
2.7  Sparse matrices and storage schemes [3.4-6]
     Yale, profile, Purdue storage schemes
2026-09-29 (2 hours)
2.8  Adjacency graphs [3.2]

3.   Iterative methods for solving linear systems
3.1  General
3.2  Jacobi, Gauss-Seidel, SOR and SSOR methods [4.1, HaYo 2.3, GoVL 10.1]
3.3  Block iterative methods [4.1.1]
3.4  Convergence of vectors and matrices
3.5  Convergence of iterative linear solvers [1.8.4, 4.2.1]
3.6  Rate of convergence of iterative methods [4.2.1, HaYo 2.2]
     Three "definitions" of rate/order of convergence
2026-10-06 2 hrs
3.7  Convergence of basic iterative methods on special matrices
     Comparison of Jacobi and GS
     Diagonally dominant matrices [4.2.3]
     SPD matrices [4.2.4]
     Spectral radius of SOR
     Consistently ordered matrices - Optimal w for SOR [4.2.5]
[For the above topics, also see Young, Iter. Sol. of Large Lin. Sys.]
3.8  Preconditioning [4.1.2, 10.1-4, 10.6]
     Incomplete Factorisation preconditioning
     Block diagonal preconditioning
     SSOR preconditioning
2026-10-13 2 hrs
3.9  Symmetrisable and extrapolated methods [HaYo 2.2]
3.10 Polynomial acceleration of iterative methods [HaYo 3.1-2]
3.11 Comparison of various direct and iterative methods for the model 2D BVP
     and the 5-point-star matrix -- Computational issues [~ HaYo 2.4]

< (more to come) >

Notes and handouts:
Note on use of notes: Notes will be available when the course starts. While it may be convenient to study for the course by reading the notes, it should be made clear that the notes are not there to substitute the textbook or any relevant book. Notes are always more condensed and give less overall information than books.
Notes with math notation, etc, are difficult to read online. It may be preferable for some of you to print out the 4-page style notes on paper (preferably double-sided).


Access to the data below requires that you type in your CDF (teaching labs) username (same as UTorId) and last 5 digits of your student number as password. This password (for accessing the website) cannot be reset.

Lecture notes

Assignments Other