-
-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Welcome to the lnagb.js wiki!
lnagb.js is a project started by Nguyen Hoang Duong (@you-create) in order to learn how Linear Algebra can be programmed into code. It is primarily meant for educational purposes: you are encouraged to read the code as well as the articles on the website and in this wiki to learn new things.
This page is the Home page of the lnagb.js wiki, and it is only the beginning; scroll down (or click here) for a full list of pages in this wiki. The list is also in the sidebar on the right. 👉
lnagb.js is a JavaScript library that digitalizes the subject of Linear Algebra in the form of JavaScript code. It is currently being developed solely by a Linear Algebra student.
The library encodes Linear Algebra quantities (e.g. linear equations, vectors, matrices, etc.) in form of classes. Each class then has class methods that encode operations specific to the quantity that the class encodes. For example, lnagb.js has a class dedicated to matrices, and you can create a new instance of that class with:
let a = new Matrix();
Here, Matrix
is a class inside lnagb.js, and the instance (in this case, a
)
now encodes, or represents, a matrix. It currently encodes a 2-by-3 zero matrix.
We can change its dimensions and entries like this:
a.setDimensions( 3, 3 ).set( 6, 7, - 12, 9, - 2, 8, 4, - 5, 10 )
Now a
encodes a 3-by-3 matrix. Here, setDimensions
and set
are class
methods which manipulate our instance. setDimensions
is used to set the number
of rows and columns of the matrix, and set
is used to set the entries for that
matrix. These are only 2 out of many class methods inside the class Matrix
.
Those class methods can perform matrix operations, too:
a.addRowTimesScalarToRow( 2, 3, - 1 ); // Elementary row operation type III
a.reduce( true ); // Reduce the matrix to reduced row-echelon form
a.transpose(); // Transpose the matrix
That is only a small demonstration of lnagb.js. Don't forget, there are linear equations, vectors, systems, spaces, etc., all of which have been encoded into one JavaScript library.
The website of lnagb.js was initially a place for the lnagb.js documentation, and currently most of it is still for the documentation. The documentation shows, in great details, what each class in lnagb.js does and what each method inside that class does. As such, it is a place to go to when you need help on how to use a function in lnagb.js.
The wiki, on the other hand, does not dive into explaining what each class method does. Instead, it has every information you need to start using lnagb.js, have a good understanding of how lnagb.js works, and have a quick overview of how the project is organized and developed. It is, hopefully, a good place for you to accumulate new knowledge for yourself to begin coding Linear Algebra someday. Take a look at the Pages in this wiki section below to see what the wiki has to offer.
- Want to learn Linear Algebra? Read books and/or take a course!
- Want to learn Linear Algebra and how to use lnagb.js? The Learning Area on the lnagb.js website is promised to provide you with what you need. Unfortunately, it is currently a work in progress and not yet available.
- Just want to learn how to use lnagb.js? Start with the Getting Started section on the lnagb.js website to familiarize yourself with the components of lnagb.js, then turn to the Documentation to dive deeper.
- Want to try lnagb.js without downloading it? Head to the Lab!
- Need help downloading lnagb.js or including it in your project? Congratulations! You're in the right place! Scroll down and find the page you are looking for.
- Want to learn how lnagb.js works? Want to start coding Linear Algebra on your own? More congratulations! See the pages listed below, you will find what you need.
For easier navigation, the pages are grouped into different categories. Clickable entries lead you to the desired page, while ones that are not links are pages being worked on and have not yet finished.
How to download lnagb.js
How to load lnagb.js
Setting up for a Node project
How to build lnagb.js manually
How to download the lnagb.js website
How to download the lnagb.js wiki
How to compile the documentation manually
Components of lnagb.js
Developer's notebook
Git branches
Directory structure
Difference between UMD and ESM
Start coding Linear Algebra on your own!
Coded, documented, and built with ❤️ by Zach. Since 2019.