Basic ideas and concepts: vector, matrix, linear equations, Gaussian elimination, matrix decomposition, complexity, vector geometry with scalar and cross product, determinant, vector spaces, linear independence, basis, linear transformations, eigenvalues, eigenvectors, least squares method, orthogonality, inner product, the Gram Schmidt method, complex numbers, the axiom of induction, fundamental theorem of algebra.
Computational aspects: programming in matlab, solution of linear equations, Gaussian elimination, LU decomposition, condition number, full and sparse matrices, complexity, least squares method, calculation of eigenvalues and eigenvectors, visualization of results.
An overall goal of the course is that students will develop a good understanding of basic mathematical concepts in algebra and geometry, and use these for mathematical modelling of engineering and scientific problems.
The student should develop skills to illustrate key concepts and solve applied problems, by using a computer and using standard functions from the programming language library. In addition, the student should be able to visualize and present results in a clear manner.
After completing the course students should
- know and be able to use key concepts and methods such as: vector spaces, inner product spaces, subspaces, linear dependence and independence, dimension, bases, norms, inner products, orthogonality, projections, the Gram-Schmidt method.
- know and be able to use key concepts in geometry in R³: cross product, straight line, plane, normals, surfaces, volumes.
- know and be able to use the L²-norm and polynomial basis functions.
- know definitions and concepts of matrices, such as: rank, null space, row space, column space, singularity, norms, symmetry, orthogonality.
- be able to calculate the inverse of small matrices analytically and the inverse of large matrices with existing software.
- be able to solve systems of linear equations analytically by Gaussian elimination and pivoting for small systems, and know and be able to use existing software for large systems.
- know the different types of matrix decomposition and apply LU decomposition.
- know the concept of condition number and understand its relevance and calculate it with existing software.
- know the complexity of Gaussian elimination for full and sparse matrices.
- be able to compute eigenvalues and eigenvectors analytically for small systems and for larger systems using existing software, and be able to explain their relevance and connection to physical examples.
- use eigenvalues and eigenvectors to determine if a matrix is diagonalizable.
- formulate the method of least squares for solving overdetermined linear systems of equations and solve small problems by hand and large problems with existing software. In addition, be able to explain important concepts, such as: residual, orthogonality and give a geometric interpretation of a least squares solution in a low dimensional setting.
- know and be able to calculate with complex numbers and their polar form.
- to use the axiom of induction in order to verify simple relations.
- know and be able to use the fundamental theorem of algebra on the connection between factorizations of a polynomial and its zeros.
- break down large problems into manageable parts, and implement these parts as functions in the program language.
- use control flow and data structures.
- manage files in different ways, both for input and output.
- use standard functions from the programming language libraries (eg Matlab library) for calculation, visualization and efficient programming.
- write well-structured programs.