3 ms·
Maybe I'm mistaken, but I don't think of Octave, Matlab or numpy as operating in the same space as a computer algebra system -- to me, those are all numerics or
by vector_spaces 2y ago
Maybe I'm mistaken, but I don't think of Octave, Matlab or numpy as operating in the same space as a computer algebra system -- to me, those are all numerics oriented languages/libraries, used to obtain numerical solutions to problems vs exact symbolic expressions. They complement each other and are often used together, like Mathematica and mathics seem to support both paradigms, but they aren't the same.
- klysm 2y agoI generally agree, but Matlab does have algebraic capabilities
- fph 2y agoMatlab's symbolic toolbox is actually a wrapper around another proprietary CAS, Mupad.
- wenc 2y agoIf I recall correctly, the symbolic toolbox data structures were not first-class citizens in the MATLAB world (where the fundamental data structure was the matrix). I used the Symbolic Toolbox in grad school to try to simplify equation systems, but once I got the result, I had to rewrite it in real MATLAB code.
- SubjectToChange 2y agoThe numeric capabilities of Mathematica are far, far closer to Matlab's than the symbolic capabilities of Matlab are to Mathematica's.
- deleted 2y ago[deleted]
- 3abiton 2y agoThese were my thoughts too. The use case for Mathematica is extremely different than Octave.
- williamstein 2y agoWhen you go into battle to solve a computational mathematics problem, the problem sometimes doesn't care about these boundaries. E.g., you might think that you're solving a problem in "computer algebra", but a sufficiently fast solution might end up involving numerical linear algebra in surprising ways. (E.g., enumerating elliptic curves over the rational numbers is reduced to exact linear algebra because of a Wiles work on Fermat's last theorem, and often exact linear algebra can be done via clever tricks much more efficiently using floating point matrices, which happen to be insanely fast to work with due to GPU's...). It's thus valuable, at least for research, to have large mathematical software systems that span these boundaries.
- wenc 2y agoYou're correct. The engines are actually quite orthogonal (symbolic vs numerical). There's the rare cross-over, but for the most part they are used to obtain different types of solution. Mathematica can do both, but it's much stronger in symbolic than numerics. I wouldn't try to implement large-scale numerical models in Mathematica.
- SubjectToChange 2y agoIt isn't that simple. Yes, Mathematica has emphasized symbolic computation since day 1, but it has also had numerical capabilities like NIntegrate since day 1 too. There's no good reason why the symbolic capabilities of Mathematica should necessarily hurt its numerical performance. In particular, Mathematica and Matlab often use the exact same libraries for many numerical operations, e.g. Intel's MKL for many matrix operations or SuiteSparse for sparse matrices. Any inefficiencies in calling out to those libraries between Matlab and/or Mathematica are usually down to a few tweaks. In the vast majority (90% or more) of cases the performance between Matlab and Mathematica is identical or within the margin of error. And where performance does differ substantially, Matlab isn't always coming out on top. So the question then becomes whether or not your work depends on those particular use cases. In my eyes, the Wolfram Language is fundamentally superior to Matlab. And even if Mathematica/WL lags behind Matlab is some numerical aspects, Wolfram Research will have a far easier time fix or improving that deficiency than MathWorks will have improving the poverty of symbolic computation in Matlab. Of course, the factors in practical use cases are quite a bit more complex than what I've said above. If you're working at an engineering firm that's already knee-deep in Simulink and various Matlab Toolboxes, then the choice has been already been made for you. And sometimes it's not a question of performance but one of feature parity, e.g. Compile in the Wolfram Language vs Matlab Compiler/Runtime. Also, the complexity of the Wolfram Language is not a benefit for users looking to simply write code and get a result ASAP.