Solutions to two university assignments in MATLAB / Octave, covering six independent problems — from solving linear systems iteratively to digital signal processing and matrix factorisation. Each homework has its own directory and a README explaining the method behind every task.
| Task | Problem | Method |
|---|---|---|
| Markov is coming | Probability of escaping a maze from every cell | Markov chain solved by Jacobi iteration, sparse matrices |
| Linear regression | Predicting house prices from mixed numeric and categorical features | Gradient descent, normal equation with conjugate gradient, Ridge and Lasso |
| MNIST 101 | Recognising handwritten digits | Feedforward neural network trained by backpropagation |
| Task | Problem | Method |
|---|---|---|
| Numerical music | Synthesising and analysing audio | FFT, spectrograms with Hann windowing, frequency-domain filtering, convolution reverb |
| Robotzii | Interpolating a trajectory through waypoints | Vandermonde polynomials vs. cubic splines with C² continuity |
| Recommendations | Recommending items from a sparse rating matrix | Truncated SVD, cosine similarity |
- Linear systems = Jacobi iteration, conjugate gradient, convergence criteria
- Sparse matrices = storage and why it matters for graph-like problems
- Optimisation = gradient descent, regularisation, the bias–variance trade-off
- Signal processing = FFT, windowing, spectrograms, filtering, convolution
- Interpolation = Vandermonde systems, conditioning, cubic splines
- Matrix factorisation = SVD and latent feature extraction
The code targets MATLAB and also runs in GNU Octave. Each task directory is self-contained: add it to the path and call the functions from there.
cd homework-1/markov-is-coming
Labyrinth = parse_labyrinth('labyrinth.txt');
Adj = get_adjacency_matrix(Labyrinth);The datasets, audio files and test harnesses were provided with the assignments and are not included in this repository.
homework-1/mnist-101/fmincg.m is Carl Rasmussen's conjugate gradient minimiser,
distributed with the course materials. It is included because the training code
calls it, but it is not my work. Everything else here is.