CSC336 Numerical Methods
Course information for current students:
- 2023-09-20:
Extra office hours :
Monday, Sept 25, 2023, 4:30-5:30 PM,
Friday, Sept 29, 2023, 3:30-4:30 PM,
Monday, Oct 2, 2023, 4:30-5:30 PM,
besides the regular ones
Tuesday, Sept 26, 2023, 4:30-5:30 PM,
Tuesday, Oct 3, 2023, 4:30-5:30 PM.
- 2023-09-19: Assignment 1 has been posted.
Assignment 1 has been posted on the course website:
Due Wed Oct 4, 2023, at ***6 PM***.
MarkUs will open a few days before the submission deadline.
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.
-
The course starts on Tuesday, September 12, 2023, 6-9 PM, in BA 1170.
Note that we start at 6:10 PM.
-
No classes
the week 6-10 November 2023 (Fall break / Reading week -- A&S calendar).
-
Bulletin board for csc336 Fall 2023
-
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 336a1.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.
-
MATLAB, etc remotely on cdf:
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.
The basic Matlab is free for students.
See https://www.mathworks.com/academia/tah-portal/university-of-toronto-676468.html
So you can also install it on your computer/laptop,
and run it locally.
You can also consider free (perpetually) alternatives to Matlab,
such as Octave.
-
To use matlab on cdf, through the linux shell, 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
or
/usr/local/bin/matlab -nodesktop
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.
-
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 2023.
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)
Material to be covered in the course
(with textbook sections in parentheses)
2023-09-12 (3 hours)
0. What is Scientific Computing? (1.1, 1.2.1)
1. Computer arithmetic; data and computational errors
1.1 (Human) Representation of nonnegative integers
- Algorithm for converting base b integers to decimal
- Algorithm for converting decimal integers to base b
1.2 (Human) Representation of reals
- Algorithm for converting base b fractions to decimal
- Algorithm for converting decimal fractions to base b
1.3 Computer representation of numbers (1.3.1-7)
- floating-point numbers, mantissa, exponent, normalized mantissa,
significant digits, overflow, underflow, range of representable numbers,
representable numbers, chopping, rounding
- The IEEE Standard
1.4 Round-off error (1.3.5)
1.5 Absolute and relative errors (1.2.2)
1.6 Computer arithmetic -- saturation in addition (1.3.8)
1.7 Machine epsilon (1.3.5)
1.8 Error propagation in simple arithmetic calculations (1.3.8-9)
- Multiplication, division, addition/subtraction
- catastrophic cancellation
1.9 Error propagation in computation: conditioning of problems (1.2.6)
- condition number of function
1.10 Error propagation in computation: stability of algorithms (1.2.7)
1.11 Forward and backward errors (1.2.3-5)
Propagated data error
Truncation (discretization) and rounding errors, computational error
Total error
1.12 Taylor series
2023-09-19 (3 hours)
1.13 O(n^b) and O(h^a) notations
Tutorial on matlab
Tutorial on computer arithmetic
2023-09-26 (3 hours)
2. Direct methods for solving square linear systems
2.1 Vectors and matrices -- review of terminology and properties
2.2 Solving lower triangular linear systems [2.4.2]
Forward substitution (f/s)
2.3 Solving upper triangular linear systems [2.4.2]
Back substitution (b/s)
2.4 Equivalent linear systems - row operations [2.4.1]
2.5 An example of solving a linear system by GE and b/s
2.6 Gaussian elimination (GE) [2.4.3, 2.4.4, 2.4.6-7]
2.7 LU factorization [2.4.3, 2.4.4, 2.4.7]
elementary Gauss (elimination) transformation matrices
2.8 Symmetric and symmetric positive definite matrices [2.5.1, 2.5.2]
LDL^T and Choleski factorizations
2023-10-02 (3 hours)
2.9 Banded matrices [2.5.3]
Banded LU/GE and b/f/s
2.10 Computing the inverse of a matrix [2.4.7]
Properties of inverse
[more on elementary Gauss (elimination) transformation matrices]
Tutorial 3 (matrices, operation counts, GE/LU, inverse)
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
Tutorial notes
- Tutorial on MATLAB, 1-page
[photo: matrices, sum geom series, roots of quadratic],
- Tutorial 2, 1-page,
[photo: matrices, sum geom series, roots of quadratic],
[photo: diff of cosines, sum .aaa...],
[photo: diff of cosines, exp(x)],
Assignments
Other