Linear algebra stands today as the epitome of accessible yet powerful mathematical theory. It has many appealing facets which radiate in different directions.
Linear algebra is one of the most useful topics you will ever learn if you work in technology. It is a foundational skill for areas like scientific computing and machine learning. It also sets the stage to build more sophisticated ideas in applied and pure sciences.
Linear Algebra provides a powerful set of problem-solving tools. By mastering it and integrating it with programming, one will gain invaluable problem-solving skills that can be applied in a multitude of real-world scenarios.
There is a pervasive belief in the scientific (and maybe philosophical?) community that we look at the world through the lens of linearity. We know how to solve linear problems, and we solve a non-linear problem by approximating it to a linear problem. Linear algebra is the mathematical machinery that powers this lens.
It also forms the bedrock of modern computing and AI. The software behind it has an impressive amount of engineering ingenuity the enables efficiently implementing matrix calculus and calculating matrix products at scale.
These code snippets serve as an additional tool for explanation. There is no explanation on how the code is written. For example, the following code snippet illustrates the iterative aspect of matrix-matrix product:
def get_matrix_matrix_product(left_matrix, right_matrix):
return [
get_matrix_vector_product(left_matrix, column_vector)
for column_vector in right_matrix
]
If you can understand this code, that's great. But if you can't, you can still rely on plain text and the good old latex.
Some other great resources worth mentioning here are:
Why this series then?
Each page has a canvas with an editor at the bottom where one can type out commands. The text will also have commands to draw a simple vector. Clicking on it will run the command in the editor.
The implementation of these commands is fully open source. You can also define your own functions and play with them in the editor using extensions.