https://github.com/jeremywildsmith/linear_algebra
Code implementing different theories / concepts behind linear algebra. Finding eigen values / vectors, matrix operations, solving linear systems, hillcipher encryption etc
https://github.com/jeremywildsmith/linear_algebra
Last synced: 2 months ago
JSON representation
Code implementing different theories / concepts behind linear algebra. Finding eigen values / vectors, matrix operations, solving linear systems, hillcipher encryption etc
- Host: GitHub
- URL: https://github.com/jeremywildsmith/linear_algebra
- Owner: JeremyWildsmith
- Created: 2022-02-17T09:49:13.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2022-02-17T09:57:44.000Z (over 3 years ago)
- Last Synced: 2025-01-22T21:14:45.646Z (4 months ago)
- Language: Python
- Size: 6.84 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Linear Algebra Theory and Programming
The purpose of this repository is to experiment and apply different concepts and theories I've learned from studying linear algebra and implement them in python.This repository implements the following:
- Basic matrix operations. multiplication, dot, cross, euclidean distance
- Finding matrix eigen values and eigen vectors
- Solving systems of linear equations using inverse (found with GJ Elimination, using cofactors or apply direct gauss-jordan elimination)
- Example of hillcipher encryption and decryption using matrices
- Using cross product to find planes containing set of three pointsNone of the implementations of the algorithms in this repository are meant to be fast or memory efficient. The aim to to keep them easy to understand and mirror the processes I have studied for manually applying the above theory.
# 3rd-Party Dependencies
I use numpy and sympy to solve systems of equations that fall outside of the scope of the linear algebra I am studying or are
difficult to do systematically. For example, sympy is used to solve the roots of a polynomial equations produced when finding eigen values or eigen vectors.# Usage
You can refer to examples (all methods starting with `example_`) as examples for usage. This is code is not meant to be used in production.1. Create a python venv `python3 -m venv venv`
2. Activate your venv `source ./venv/bin/activate`
3. Install the requirements (requirements.txt) into your venv. `pip install -r requirements.txt`
4. Run the examples by invoking the matrix.py script `python src/matrix.py` (The examples will execute and print to console)# License
The license for all code contained in this repository is BSD 3