Important notices
Introduction
Topic guide for revision
Software & reading material
Resource CD (online copy)
Tutorial sheets
Topic Guide (for end-of-semester revision)
The following list provides an overview of the topics (not in chronological order)
to be explored during the semester.
Modelling and Computation
- Computer-assisted problem solving; methodology.
- Algorithms and their representation: sequence, selection, iteration.
- Conceptual model of a computer.
- Graphical representation of data.
- Python as a calculator.
- Program tracing.
Numerical Methods
- Numerical methods and types of error: truncation and round-off error.
- Representation of numbers and floating-point arithmetic.
- Propagation of error, machine precision.
- Solution of a nonlinear equation: bisection, fixed-point iteration
Newton-Raphson and secant methods.
Rates of convergence.
- Modelling dynamic systems with ordinary differential equations.
Solving first-order ODEs using Euler, Huen and Runge-Kutta methods.
Taylor series and graphical descriptions.
Local and global errors, stability and convergence.
- Solution of systems of linear equations.
Direct methods (Gauss-Jordan elimination) and iterative methods
(Jacobi and Gauss-Siedel).
Sensitivity and condition number.
- Interpolation of data using the monomial basis and the Lagrange basis.
Ill-conditioning and the selection of sample points.
- Numerical differentiation via interpolation and
via Taylor series expansion.
- Quadrature using Newton-Cotes methods.
Adaption of panel-size based on a recursive implementation.
- Data modelling via least-squares curve fitting.
Formulation with monomial and more general basis functions.
- Optimisation: one-dimensional search using Golden section,
mutlidimenesional search using the (nonlinear) simplex method.
Application to function-solving, curve-fitting, design, etc.
Programming in Python
- Lexical structure of Python:
- lines and indentation: physical lines, logical lines,
- comments,
- statements: simple and compound,
- tokens, identifiers, keywords, operators, delimiters and literals.
- Simple data types: integer, floating-point and complex numbers.
- Sequence data types: strings, tuples, lists, dictionaries.
- Variables, assignments, namespaces, objects and object-space.
(This topic is also part of discussion on functions and modules.)
- Expressions and operations on data:
arithmetic, comparison, logical, indexing, slicing.
- Simple output: print statement.
- String interpolation: % operator and conversion specifiers.
- Simple input: raw_input function and conversion from strings to other types.
- Control structures for program flow:
if, while, break, continue
and pass statements.
The for statement and the range function.
- Defining your own functions.
- Passing information to and returning data from a function.
- Multiple return values and default parameters for functions
- Recursive functions.
- Namespaces and scope.
- Program modules to help organise your program; import statement.
- Reading and writing of files.
- Documentation: doc strings in modules and functions.
- Debugging.
- The use of classes to organise your program (optional, advanced).
- Matrices and vectors in Python: lists-of-lists and the Numeric
extension.
|