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.
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.
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.
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)
-- + -- + x
So whereas it is in a lot of ways not as advanced or feature complete as Mathematica it deserves a closer look.
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.
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.
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.
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 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.
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.