Skip to main content

Python scripts for NUS MA1522 Linear Algebra for Computing

Project description

linear-algebra

About

This project builds on SymPy's Matrix class and is designed for students taking NUS MA1522 Linear Algebra for Computing. It has implementations of most of the algorithms taught during the course (as of Sem 1 AY24/25). Documentation of the code is still a work in progress.

Key Features

  1. Import matrices from $\rm\LaTeX$ directly. $\rm\LaTeX$ expression can be obtained from Canvas by right-clicking on the equations.
  2. Step-by-step workings for most algorithms (including LU Factorisation and SVD)

Installation and Usage

Installation

Prerequisites

This project is best supported in a Jupyter Notebook environment with Python 3.10+. You can download Python from here.

Install Dependencies

It is recommended to use a virtual environment for managing dependencies.

  1. Create a virtual environment:

    python -m venv venv
    
  2. Activate the virtual environment:

    • On Windows:
      venv\Scripts\activate
      
    • On macOS/Linux:
      source venv/bin/activate
      
  3. Install the library:

    pip install ma1522-linear-algebra
    

    It is recommended to use a Jupyter Notebook environment to run the code.

    pip install notebook
    

Usage

Create a Jupyter Notebook test.ipynb. Within the notebook, run the following code.

from ma1522 import *

# Create Matrix objects
A = Matrix([[1, 2, 3],
            [4, 5, 5],
            [7, 8, 9]])

b = Matrix([[1], 
            [2], 
            [3]])

# Join matrices along the columns via `row_join`. 
augmented_matrix = A.aug_line().row_join(b)

# `aug_line` adds a visual line that can be seen using `display`
display(augmented_matrix)

# Solution to the matrix equation Ax = b can be found using `solve`.
A.solve(rhs=b)

# Alternatively, the full steps with LU Factorisation can be found using `ref` with the appropriate options.
augmented_matrix.ref(verbosity=2)

Documentation of more functions can be found here.

More usage examples can be found under the examples folder. Proper documentation would be coming soon for all functions found in symbolic.py.

FAQ

Development

Work in Progress

  • Include better documentations for how to use the functions.
  • Better ref algorithm to determine boundary conditions for a given matrix.

Credits

I would like to thank @DenseLance for his contributions.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ma1522_linear_algebra-1.0.0.tar.gz (49.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ma1522_linear_algebra-1.0.0-py3-none-any.whl (41.8 kB view details)

Uploaded Python 3

File details

Details for the file ma1522_linear_algebra-1.0.0.tar.gz.

File metadata

  • Download URL: ma1522_linear_algebra-1.0.0.tar.gz
  • Upload date:
  • Size: 49.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for ma1522_linear_algebra-1.0.0.tar.gz
Algorithm Hash digest
SHA256 7c69fc02340fc6ab77848885b9e0bf790dfd0daf51bedcc9d4e2d78a598a2c9b
MD5 51908b2dd990373239e168dd46b5e8a7
BLAKE2b-256 6e7e0152b62df4781822ea0628f41ff97e45cc79c4be1e9871556ef1433a67e6

See more details on using hashes here.

Provenance

The following attestation bundles were made for ma1522_linear_algebra-1.0.0.tar.gz:

Publisher: release.yml on YeeShin504/linear-algebra

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ma1522_linear_algebra-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for ma1522_linear_algebra-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d6d07006dfe865461f6cd9c23f537e3ef016823954a8d3fcbb7eba041d7b7fbc
MD5 9998b7552926a70df84fcb8613720623
BLAKE2b-256 08d63ccfd2c380c58e8d223a968922a7f12a038a6753716fb75bf9fe39f8ec47

See more details on using hashes here.

Provenance

The following attestation bundles were made for ma1522_linear_algebra-1.0.0-py3-none-any.whl:

Publisher: release.yml on YeeShin504/linear-algebra

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page