A practical introduction to numerical and linear algebra methods in Python, with implementations and tests for core algorithms used in computer science.
This repository contains exercises, homework-style implementations, and supporting scripts from the Numerical Methods course at the University of Zurich (Fall Semester 2025).
Grade: 5.25/6.0 | ECTS: 6
- Scientific Computing Basics: Working with NumPy, vectorized operations, and numerical workflows
- Linear Systems: Gaussian elimination, pivoting, consistency checks, and structured problem solving
- Matrix Factorization: LU decomposition with permutation matrices and determinant computation
- Linear Algebra Foundations: Basis transformations, subspace checks, and orthonormalization
- Eigenvalue Methods: Power method and inverse power method
- Data Approximation: Polynomial interpolation and linear least squares
- PCA (2D): Principal direction estimation from centered data
- Numerical Solvability Concepts: Rank, invertibility, and model reconstruction
├── Exercise 0/
│ └── exercise_00.py
├── Exercise 1/
│ ├── backend.py
│ └── backend_test.py
├── Exercise 2/
│ ├── backend.py
│ ├── backend_test.py
│ ├── exercise_02.py
│ └── frontend.py
├── Exercise 3/
│ └── Exercise_3_Practice/
│ ├── backend.py
│ ├── backend_test.py
│ ├── exercise_03.py
│ └── frontend.py
├── Exercise 4/
│ └── Exercise_04_Practice/
│ ├── backend.py
│ ├── backend_test.py
│ ├── exercise_04.py
│ └── frontend.py
├── Exercise 5/
│ └── Exercise_05_Practice/
│ ├── backend.py
│ ├── backend_test.py
│ ├── exercise_05.py
│ └── frontend.py
└── Scripts/
├── 1.4 Interpolation.ipynb
├── 2.5 LU Example.ipynb
└── 2.9 Solvability.ipynb
Materials are provided as Python modules and Jupyter notebooks:
backend.pyfiles for algorithm implementationsbackend_test.pyfiles for automated validationfrontend.pyfiles for visualizations- Notebook scripts for conceptual demonstrations and experimentation
- Implement stable numerical algorithms for solving linear algebra problems
- Analyze matrix properties (rank, solvability, decomposition quality)
- Apply eigenvector-based techniques to extract dominant directions from data
- Use least squares and interpolation for data fitting and approximation
- Build tested, modular scientific Python code
This repository reflects hands-on coursework with focus on correctness, numerical stability, and reproducibility.
Course instructors: Renato Pajarola and team