Stack Exchange network consists of 183 Q&A communities including Stack Overflow, the largest, most trusted online community for developers to learn, share their knowledge, and build their careers.
Are there any paid-for or open source alternatives to Mathematica which produce equal or even better functionality, specifically with regard to solving, manipulating and visualising algebraic expressions.
A similar question from 2008 was asked on Stack Overflow: Best open-source Mathematica equivalent. However, the present question is targeted at users of Mathematica.SE.
$\begingroup$Since Mathematica.SE is where the users of Mathematica on StackOverflow went, I don't think that is a reason that justifies re-asking of the question. It is possible that five more years has changed the answers, but to be honest I think this question is borderline off-topic. I will leave that judgement to the community, but it is possible that others will agree and put the question on hold.$\endgroup$
$\begingroup$Alternatives for which part of Mathematica? Symbolic calculations? Numerical solution of ODEs? PDEs? Numerical programming? Static visualization? Dynamic visualization? The answer will be different for each.$\endgroup$
$\begingroup$I did consider the above. However, I felt five years in technological terms is very long. Further the previous question states an open-source requirement, whereas this question is more general. @Verbeia$\endgroup$
$\begingroup$For a time I used Sage a bit under Windows. I did so using VMWare Workstation. Once that was installed, installing the Sage VM itself was no big deal. Under Mac OS X and Linux, Sage installs natively.$\endgroup$
$\begingroup$I think I've tried or even used seriously most of the free or for-free "general-purpose" CAS systems, and I've not found any of them anything like the well-documented, beautifully integrated numerics, symbolics, and graphics of Mathematica. That all documents are notebooks (or packages), even the Documentation Center pages, facilitates the ease of use and power. So does the paradigm that "everything is an expression". The Mathematica front end is a masterpiece of inspiration and design.$\endgroup$
Sage. It is a great project using a nice and clean programming language (Python). Many parts of its functionality comes from other free software. The usual stuff you are expecting (integration, ODEs, solving equations) is implemented using Maxima. For example for specialised group theory GAP is used.
$\begingroup$Although it has to be said that sage is currently more of a poor-man's mathematica. So things are equal, some might even be better but for example the simplification of results is awful compared to mathematica.$\endgroup$
$\begingroup$It really depends on what you are doing. Of course there are some important branches where there is virtually no support in Sage, but there are Mathematica packages.$\endgroup$
$\begingroup$I had a programming background before trying any math software, and Sage was great. I tried Maple before but it respects no programmer's conventions, uses an awkward declarative language and overall is clearly not designed with programmers in mind. Sage is probably a good fit for programmers in terms of usability (I barely had to look at the documentation to do what I wanted with it), but I can't speak for the quality of its features because I don't use much math software.$\endgroup$
You can try Maxima. It is small, free and closest look alike to Mathematica and install easily in both Windows and Linux.
But if you want to strictly impose "which produce equal or even better functionality" condition, I am afraid, I have to withdraw my answer. Honestly speaking, I think there would not be any answer at all.
Big List
You can find a big list of software here (from Wikipedia) with a comparison of their features (and price, if applicable).
A complete alternative to Mathematica will be pretty difficult to find. Not quite there but developing at an impressive speed is Sympy. It started out as a small library for python but today it can do quite a lot of symbolic mathematics.
The feature list contains from basic arithmetic over calculus, solving differential equations to group theory, geometry and a small statistics module a wide area of mathematics. Somewhat weaker areas such as plotting are complemented by matplotlib. Together with the recently developed ipython notebook at least the goal of the developers is to replace Mathematica.
The syntax is also quite easy to understand:
>>> from sympy import *
>>> x = Symbol('x')
>>> integrate(x**2 + x + 1, x)
3 2
x x
-- + -- + x
3 2
So whereas it is in a lot of ways not as advanced or feature complete as Mathematica it deserves a closer look.
$\begingroup$FYI, sympy supports pretty printing nice integrals/symbols (i.e. like the output of Latex) when you run your sympy command in ipython graphical console$\endgroup$
If you are interested in group theory than you need to have "GAP" and "Magnus".These are open source and way beyond the functionality that Mathematica supports at this time.
Comparing more precisely with respect to group theory, Mathematica is like a starter in group theory though it supports all tools upon which you can build your Computational Group Theory algorithm implementations. While GAP is so mature that it provides almost all the functionalities that is in Group theory of advanced level.It has been used to study groups of order of 10,000 and beyond.
If you don't have idea I would say that simple algorithms to find subgroups of any group result in out of memory problem(with 4gb) with group of order 6 and with GAP's highly optimized approach you can calculate for order of 10,000.
They are also willing to step in on working with "Computational Algebraic Geometry algorithms in which again Mathematica is a beginner. GAP has advantage because CAG algos will need interaction with group and ring theory which it has already achieved.
$\begingroup$I've heard similar things about FORM for tensor calculus, although I haven't used it. I think it's very important that we as Mathematica users realise that the software does have limitations, understand where these lie, and know of other (complementary) packages to help us in solving large problems more quickly than Mathematica can currently manage.$\endgroup$
$\begingroup$@OleksandrR.:I do agree completely with every thing you are saying, I wanted to share information on specialized softwares because Mathematica is still more of generic in its approach of development.$\endgroup$
$\begingroup$The Sage documentation says that GAP, along with many other specialized packages, is used by Sage. See sagemath.org/links-components.html.$\endgroup$
$\begingroup$@murray:Sage provides interface to lot of other packages, even syntax doesn't match in Sage and GAP.Both are programmed in different languages(Sage=Python,GAP=GAP programming language)$\endgroup$
$\begingroup$@OleksandrR. FORM is great, fast and cool and there is a link to Mathematica (and FeynCalc) described [here] (xxx.lanl.gov/abs/1212.3522)$\endgroup$
When Maple was mentioned as an alternative, that reminded me of another program that's sort of an alternative to Maple, especially for anything up to high-school level. It's only an alternative to Mathematica in a narrow range of applications in mathematics education. But in that field, it does extremely well for a piece of free software:
It's great for visualization and has typesetting capabilities similar to $\LaTeX$. It follows an object oriented paradigm, and has a set of basic algebra functionality, as shown in this screen shot:
This shows the interface is more like a programmable calculator, and therefore has more in common with Maple than with Mathematica. But you can build rather complex applications with Geogebra, too.
What I show in the screen shot is some algebra functionality, and some calculus. The difference between symbolic and numerical algebra is clearly indicated. But this also leads to some results that a Mathematica user wouldn't expect. E.g., the constant $\pi$ in numerics is rationalized when you input as $\pi$, but not when you input it as Pi (see last line).
This is just the kind of thing you have to get used to in any new environment.
Often Matlab is mentioned in the same breath as Mathematica and Maple, but it's an entirely different beast. Though it does compete in the area of large calculations. Matlab began life as a numerical computation engine, whereas Mathematica began life as a symbolic engine. Mathematica now firmly encroaches on Matlab's numerical territory. Here is a speed comparison showing very similar results between Matlab and Mathematica (and where Maple is a good bit slower). Matlab is said to be much easier to learn than Mathematica, and is preferred by students.
$\begingroup$I think this is well known, but there are not many users of both packages. If you are one such, please add some commentary on their comparative advantages and disadvantages to make this answer more useful.$\endgroup$
$\begingroup$Alas, I am not that user. I have been using Mathematica for about 25 years, but I only have used Maple for a few days in a Maple training course. I was not impressed by Maple, but it was a short exposure. Maple has a lot of menu-driven operations to make it easier for users who don't want to be power users. I am not aware of such a thing for Mathematica. I was most impressed at the time by MapleSim, for which Wolfram did not have a counterpart. Though now Wolfram does in SystemModeler. I have not tried to directly compare MapleSim with SystemModeler.$\endgroup$
$\begingroup$WRI used to sell CalcCenter, which was a simplified menu-driven version of Mathematica. I never used it, and evidently it didn't sell very well, as it was abandoned in favor of the Home Edition versions of the full product.$\endgroup$
For completeness, perhaps it's worth mentioning MathStudio, found at mathstudio.net.
It's a $20 app with an ambitious scope and functionality that will remind you of some basic things in Mathematica, as this screen shot of a manual page illustrates:
A testimonial on the front page describes it as "Mini Mathematica"...
It was formerly known as SpaceTime, and I remember having a copy of that before the author re-branded it as MathStudio which required re-purchasing. It was quite difficult to use on a touch device, with an odd and sometimes clumsy interface that stuck to its own logic.
If nothing else, it shows that simple interactive mathematics, such as CDF documents, can happily run on an iPad-style device, and that there is perhaps a demand for this. In fact MathStudio even runs on an iPhone. On YouTube there's a demo of CDF running on an iPad by Theo Gray, from last year; perhaps it will be released soon.
$\begingroup$+1 from me, since i love the idea to do mathematics on an ipad. that's why i wrote about the "thing we're not allowed to talk about, even if it should be shared on social networks".$\endgroup$
Magma for higher number theory (and algebra etc.), and Macaulay2 for commutative algebra (and algebraic geometry). I know about these primarily through colleagues. They are rather specialized systems and not strictly comparable with Mathematica. The Magma crowd tends to chuckle at the mention of Mathematica. Apparently it's very good at what it does.
There are two reasonable free packages especially helpful in commutative algebra developed by small scientific groups (1. and 2.) and available for the main platforms Windows, Linux/Unix, Mac OS:
There are quite numerous communities using these packages.
Programming in the both systems is closely related to that of C langauage (they are written in C as well). Mathematica users however can miss all the graphics and visualisation capabilities. Nonetheless in the field of algebra they are even more useful.
Those whom interested in java based API solution there is open source project called jscience It includes:
Implementation of Units of Measurement services.
A coordinates module compliant with OGC/ISO specifications for the development and deployment of geographic applications.
A rigourous mapping of mathematical structures (e.g. Group, Ring, Field, VectorSpace ) to Java interfaces.
A linear algebra module, which includes a first (and I believe unique) parameterized matrix class capable of resolving linear system of equations involving any kind of elements (e.g. Complex, ModuloInteger, RationalFunctions)
A functions module for symbolic calculations and analysis.
Different types of numbers such as real numbers of arbitrary and guaranteed precision, or the always exact rational numbers.
Support for exact or arbitrary precision measurements (also strongly typed).
Support for Standard , Relativistic , High-Energy , Quantum and Natural physical models.
A monetary module for precision-guaranteed calculations and currencies conversions.
R is also an option. Easy to download just 48 Mb and install. Free ware and add those adds on which you required.
Advantages of R:
R is the most comprehensive statistical analysis package available. It incorporates all of the standard statistical tests, models, and analyses, as well as providing a comprehensive language for managing and manipulating data. New technology and ideas often appear first in R.
R is a programming language and environment developed for statistical analysis by practising statisticians and researchers. It reflects well on a very competent community of computational statisticians. R is now maintained by a core team of some 19 developers, including some very senior statisticians.
The graphical capabilities of R are outstanding, providing a fully programmable graphics language that surpasses most other statistical and graphical packages. The validity of the R software is ensured through openly validated and comprehensive governance as documented for the US Food and Drug Administration (R Foundation for Statistical Computing, 2008). Because R is open source, unlike closed source software, it has been reviewed by many internationally renowned statisticians and computational scientists.
R is free and open source software, allowing anyone to use and, importantly, to modify it. R is licensed under the GNU General Public License, with copyright held by The R Foundation for Statistical Computing.
R has no license restrictions (other than ensuring our freedom to use it at our own discretion), and so we can run it anywhere and at any time, and even sell it under the conditions of the license.
Anyone is welcome to provide bug fixes, code enhancements, and new packages, and the wealth of quality packages available for R is a testament to this approach to software development and sharing.
R has over 4800 packages available from multiple repositories specializing in topics like econometrics, data mining, spatial analysis, and bio-informatics.
R is cross-platform. R runs on many operating systems and different hardware. It is popularly used on GNU/Linux, Macintosh, and Microsoft Windows, running on both 32 and 64 bit processors.
R plays well with many other tools, importing data, for example, from CSV les, SAS, and SPSS, or directly from Microsoft Excel, Microsoft Access, Oracle, MySQL, and SQLite. It can also produce graphics output in PDF, JPG, PNG, and SVG formats, and table output for LATEX and HTML.
R has active user groups where questions can be asked and are often quickly responded to, often by the very people who developed the environment.
New books for R (the Springer Use R! series) are emerging, and there is now a very good library of books for using R.
The coding of R is smiler to Mathematica, new user of R which is frequent in Mathematica easily pick and under stand the codes of R.
$\begingroup$Thank you for providing more details about R. However, you cannot just copy and paste from a book. This is copyright infringement. Additionally, it should be noted that for all its statistical prowess, R is not in any way a CAS.$\endgroup$
$\begingroup$The question specifies: $$ equal.or.even.better.functionality, specifically.with.regard.to solving, manipulating.and. visualising.algebraic.expressions$$ R is essentially a numerical package of wide scope and even wider variance. Notwithstanding various attempts by various hopefuls to add some symbolic tools, it would be frankly laughable to suggest this meets the requirement of 'equal or better'. The above answer that suggests R as a substitute to mma borders on ridiculous.$\endgroup$
$\begingroup$@wolfies. NLMixed and NLME solved non-linear mixed equations through system of equations, it is an algebraic capability. I believe all numerical procedures are available in SAS and R also available in Mathematica but we may not prefer Mathematica. e.g Likelihood Ratio Criterion which I stated above available on Mathematica Adds on "Statistical Inference Package" but in my case Mathematica cannot work. At all Mathematica algebraic capabilities are outstanding, I think no other software work like that and it is our choice in which situation which software gives us more easy and usefull output.$\endgroup$
$\begingroup$@Azeem No - it is not an algebraic capability. It would be helpful if you looked up the HELP manual before posting incorrect information here. For instance, the NLMixed procedure for SAS can be found at: support.sas.com/rnd/app/da/stat/procedures/nlmixed.html ... it primarily uses adaptive Gaussian quadrature and a first-order Taylor series approximation ... i.e. a numerical method. Not symbolic. The problem is you don't appear to understand the difference between algebraic/exact/symbolic (on the one hand) and approximate numerical approaches (on the other).$\endgroup$
SCaVis computational environment is one of the alternatives to Mathematica. It has been developed for the last 10 years and have many users. It is also a free program.
.
There are several features that makes the program useful:
Easy to install and run since it is Java. One can run it on Linux,
Mac and Windows
Multi-core support
One can use programming languages, such as Java. But
the main language is either Python (Jython), Groovy or Ruby.
It is designed to analyze large data
One can plot functions in 2D, 3D
It has very good support for linear algebra and matrix operations
Support for symbolic computations
I also like the fact it has very extensive manual and about 400 examples built in inside the program, that are also be found on the web.
Look at SCaVis web site to learn more.
I would recommend checking out SageMathCloud (https://cloud.sagemath.com/). Note it has recently migrated from sagenb.org/.
Great benefit is the cloud-based computing option. Love to prototype here. I just started playing around with it, so not super familiar, but claims are pretty powerful and convincing (sagemath.com/#features).
A neat program I find myself using to type up notes with inline calculations is Calca. It has versions for Mac OS X, iOS, and Windows. You can define functions, lookup values inline, and mix units. It also supports modularity and namespaces (via headers). Vectors and matrix math, complex numbers, and even formatting with Markdown. All-in-all, it's pretty powerful.