Description: From background removal to Google’s PageRank algorithm! Matrices form the backbone of today Computer Science! As the title says, this project will give you a whole new perspective on what you’ve been learning from school (matrices) and probably life too! This project aims to give you a good understanding of some of the algorithms that make all this possible. We will build a matrix library, and then see it’s applications in solving linear recurrences, specifically for competitive programming (Project Euler 25, 258 and more possibly) Our library would be lightweight, optimised and templated with functionality similar to how matrices work in MATLAB or NumPy. It would also support Matrix factorizations (LU, QR, SVD and Spectral Decomposition) and would only depend on the standard library. We will then use all the knowledge gained to build a linear equation solver.
|Week Number||Tasks to be Completed|
|Week 1||Brush up on Linear Algebra Concepts, and learning new things such as QR, LU, SVD|
|Week 2||Brush up on C++, with high focus on OOP concepts. Understanding a few DSA topics (complexity analysis, std::vectors)|
|Week 3||Building a base matrix template class, and implementing a simple QR decomposition to test it.|
|Week 4||Adding various factorisations to help solve linear equations. Stress testing our code and writing docs.|
|Week 5||Understanding Linear Recurrences, starting with basic stuff like Fibonacci calculations using matrices and end by solving PE258!|