Explore Elementary Linear Algebra concepts and algorithms through over 110 interactive Jupyter Notebooks. This repository is ideal for learners, educators, and researchers looking to deepen their understanding of linear algebra with Python, Julia, and visual tools.
- Explore the Wiki.
- In particular, see Highlights
Enhance your learning with detailed video lectures and tutorials that accompany the notebooks:
Run the notebooks interactively in your browser (slow):
The Index.ipynb notebook provides an overview and links to individual notebooks categorized by topic.
The Notes directory contains Obsidian-compatible markdown files summarizing the headings in each notebook. This is ideal for creating personalized notes.
- notebooks/: Read-only directory containing the lecture notebooks.
- work/: Writable directory for creating new notebooks and running computations.
- tmp/: Temporary directory for file storage during computations.
Simplify your environment setup using our pre-built Docker image:
docker pull ea42gh/la_imageTo build the Docker image locally, navigate to the binder subdirectory and issue the following command:
docker build . -t la_imageTo fetch the latest notebooks, use the following commands:
git fetch --all
git reset --hard origin/mainNote: This command will reset all changes in the repository except those in the work directory.
This repository leverages both Julia and Python programming languages to provide robust and interactive learning tools. Below are the key software packages and tools utilized:
- matrixlayout (Python): Layout engine for matrix/table TeX and SVG rendering.
- LAFigureSpecs (Python): Algorithms that build matrixlayout specs for GE/QR/eigen/SVD figures.
- jupyter-tikz (Python): LaTeX toolchain for rendering SVG in notebooks.
- LAlatex (Julia): LaTeX display helpers for Julia objects and symbolic expressions.
- GenLAProblems (Julia): Problem generators and display helpers used in notebooks.
- Holoviews and Panel: High-level libraries for interactive plotting and data visualization.
- Website: Holoviz
The complete list of dependencies and their installation commands is provided in the binder/Dockerfile.
This repository offers a comprehensive suite of interactive resources for learning linear algebra, including:
- Extensive Coverage: Over 100 Jupyter Notebooks, categorized by topic, covering a wide range of linear algebra concepts:
- Matrix Decompositions: LU, QR, Cholesky, and Singular Value Decomposition (SVD)
- Gaussian Elimination: Step-by-step guides for solving linear systems
- Eigenvalues and Eigenvectors: Detailed explanations, computations, and applications
- Applications: Explore uses in Data Science, Graph Theory, Cryptography, and more
- Multilingual Implementations: Examples and algorithms implemented in both Python and Julia for versatility and flexibility.
- Interactive Learning: Integration of visualizations, interactive tools, and LaTeX-styled equations for intuitive understanding.
- Practical Examples: Real-world applications and computational examples to bridge theory and practice.
We encourage contributions and feedback from the community to improve and expand this repository.
- Fork this repository: Create a copy of the project under your GitLab account.
- Create a feature branch: Work on your changes in a new branch for better organization.
- Submit a pull request: Clearly explain the purpose of your changes and how they enhance the repository.
Have questions, suggestions, or bug reports?
Open an issue on this repository to share your feedback or start a discussion.
This project would not have been possible without the support of the open-source community and the collaborative efforts of contributors worldwide. We are grateful to everyone who has contributed directly or indirectly to this repository.
- Holoviz: For providing high-quality libraries like Holoviews and Panel, enabling seamless interactive visualizations in Jupyter Notebooks.
- Website: Holoviz
We also extend our gratitude to educators, researchers, and learners who have shared their insights and feedback, helping us refine and expand this resource.
Enjoy exploring the fascinating world of linear algebra, and thank you for being part of our community!