-
Notifications
You must be signed in to change notification settings - Fork 2
MV algebra & technical computing frameworks
Two core components of technical computing are formalism and constructivism. By formalism, we mean an algebra or notation that allows you to express equations that model scientific problems, and their solutions. By constructivism, we mean the software that allows you to reliably compute such equations with real-world numeric values, often at large scales. We call the partnership between formalism and constructivism a framework. Currently, the matrix/vector (MV) framework, made up of MV algebra and MV software, is the dominant paradigm in technical computing.
Consider MATLAB. Anyone who has used MATLAB knows that it is built with MV algebra in mind. In fact, the core datatype in MATLAB is the matrix. That is because MV algebra is incredibly useful in representing linear equations applied to vectors, i.e., linear algebra. Along with calculus, MV algebra makes up an huge amount of the math you need to perform within engineering and the sciences.
MATLAB also incorporates very mature and fast MV computational routines that can execute the MV algebra you program with.
So a user can fill two matrices with values, either sparse or dense, and then perform computations with it:
C=A*B; %perform matrix multiplication
c=A\b; %solve system of linear equations
Thus, a user need not be well-versed in the intricacies and pitfalls of MV computations in order to perform useful calculations. Even better, a user can conceptualise a solution to a scientific on paper, using MV algebra, and then execute computations will real-world data with little to no cost in translating the same calculations to software.
This idea is so powerful and useful that MATLAB is probably the largest technical computing software today. But, there are solutions in many different languages, including C++ and python, that give you similar capabilities. In addition, other frameworks exist too, ones that do not rely on MV algebra. For instance, LibNT and NTToolbox can be seen as part of a numeric tensor framework that is designed for high-dimensional computations....