40
$\begingroup$

I want some recommendation on which software I should install on my computer. I'm looking for an open source program for general abstract mathematical purposes (as opposed to applied mathematics).

I would likely use it for group theory, number theory, algebraic geometry and probably polytopes.

The kind of program I have in mind is Mathematica or Matlab. Although probably those are not designed for abstract mathematics.

Any suggestions?

$\endgroup$
0

23 Answers 23

65
$\begingroup$

Here are some links.

  • Axiom and Maxima are good general purpose computer algebra systems.
  • DataMelt is a free Java-based math software with a lot of examples
  • GAP is a system for computational discrete algebra (with particular emphasis on computational group theory).
  • PARI/GP is a CAS for fast computations in number theory.
  • SAGE is a kind of unified framework for several systems, including GAP, PARI, and Maxima.
  • Octave is a system for numerical computations (it is close to Matlab).
  • Cadabra is a computer algebra system designed for the solution of the field theory problems.
  • CoCoA stands for "Computations in commutative algebra".
  • KANT / KASH stands for "Computational Algebraic Number Theory".
  • Macaulay 2 is a system for research in commutative algebra and algebraic geometry.
  • Snap is a computer program for studying arithmetic invariants of hyperbolic 3-manifolds.
  • Symmetrica is an object oriented computer algebra system for representations, combinatorics and applications of symmetric groups.
$\endgroup$
6
  • 4
    $\begingroup$ I would like to add FriCAS (fricas.sourceforge.net) which is a fork of Axiom, to this very nice list. $\endgroup$ Mar 22, 2010 at 20:06
  • 5
    $\begingroup$ A propos Maxima, I also recommend wxMaxima for a good front end. $\endgroup$ Mar 22, 2010 at 20:35
  • 12
    $\begingroup$ He wants to do algebraic geometry, and there's no mention of Singular?? $\endgroup$ Mar 22, 2010 at 20:55
  • 2
    $\begingroup$ @Mikael +1. It is also included in SAGE [cf. sagemath.org/links-components.html] $\endgroup$
    – user2171
    Mar 22, 2010 at 21:01
  • 4
    $\begingroup$ Polymake (opt.tu-darmstadt.de/polymake/doku.php/start) is a system for studying convex polytopes and related objects such as fans and simplicial complexes. $\endgroup$
    – Tom Braden
    Jul 25, 2010 at 13:32
14
$\begingroup$

GAP is fantastic for group theory, combinatorics and and number theory. Sage is becoming very popular and essentially includes GAP as well.

$\endgroup$
2
  • 4
    $\begingroup$ Why "essentially"? Doesn't SAGE straight up include GAP? $\endgroup$ May 18, 2012 at 15:22
  • $\begingroup$ @OmarAntolín-Camarena: For some reason SAGE only includes GAP without any of its (very useful) packages. Most of them can be easily installed later (there are a few tricky ones, however). But this is why "essentially" is quite appropriate here, I think. $\endgroup$
    – eins6180
    Aug 7, 2015 at 7:47
13
$\begingroup$

Oberwolfach recently started a site listing mathematical software, sorted by subject: Oberwolfach References on Mathematical Software.

$\endgroup$
11
$\begingroup$

The kind of program I have in mind is Mathematica or Matlab. Altough probably those are not designed por abstract mathematics.

What would be extremely useful to the progress of abstract mathematics would be a library of mathematical algorithms which were formally verified for correctness. Results obtained via such a library could be routinely cited in research papers without any doubt as to their correctness. The authors of SAGE suggest open source software as a means of achieving "research grade" mathematical software in [ http://www.ams.org/notices/200710/tx071001279p.pdf ][ http://wstein.org/mathsoftbio/history.pdf ], but arguably they don't go far enough.

None of the "open source" mathematical software mentioned here currently meets this standard; the closest is C-CoRN [ http://c-corn.cs.ru.nl/ ], a library of constructive mathematics for the Coq proof assistant.

Now don't get me wrong, building a comprehensive library of formalized mathematics covering even the undergrad curriculum would be a vast undertaking. But the benefits would be huge, not just for computational mathematics but for all kinds of mathematical practice. The main obstacle is the nature of the work involved, which tends to be tedious and offering little reward to professional mathematicians, if occasionally playful and addictive. Perhaps undergraduate students should be encouraged to take courses in logic and contribute to such efforts.

$\endgroup$
2
  • 7
    $\begingroup$ Computer scientists are working on this (formally verified mathematical software). Most of them bemoan the fact that they can't seem to attract the attention of very many mathematicians. If you know enough mathematics and enough computer science, it's not as big a job as it looks. Ideas from category theory to code generation can all be brought to bear, which significantly reduce the amount of work which needs to be done 'by hand'. This is a very active area of research - see the Calculemus community for example. $\endgroup$ Mar 22, 2010 at 21:39
  • 2
    $\begingroup$ I personally do not find this project of extreme importance: A software used extensively enough by mathematicians is likely to be very reliable, at least for the proofs based on it. Trusting referees or intuition is often no less a gamble, and the best sieve for errors is time and usage of the results, which is applicable to both types of results. $\endgroup$ Jul 31, 2015 at 2:57
8
$\begingroup$

Kenzo and Chomp are for computing homology. Kenzo for instance can take an arbitrary abstract simplicial complex and compute the simplicial homology groups, and it has various spaces already built in. You can compute the homology of products and other neat things with it.

$\endgroup$
6
$\begingroup$

For commutative algebra and algebraic geometry, in addition to the already mentioned CoCoA, there is Singular.

$\endgroup$
4
$\begingroup$

For all sorts of Groebner bases-related computation (I believe you might need some at least for questions in algebraic geometry), I would recommend Bergman (http://servus.math.su.se/bergman/).

$\endgroup$
4
$\begingroup$

I'll second the votes for Sage, Macsyma as Maxima and Wxmaxima, Scilab, Octave, R, and GAP.

For kids to play with are KGeometry KiG (K-interactive-Geometry), letting you draw out geometric relationships and actively move points around, letting all defined subcomponents change with it: e.g. draw three points, define+draw the line segments between the points, define+draw the perpendicular bisectors of these line segments, define+draw a circle that touches the three points of the triangle. Now drag any of the three points of the triangle around and watch all of the defined components move along to remain the bisectors / intersections / circles consistently. It's a great way to play around with geometric constructions.

Also, you can't go wrong with using awk, sed, and bash on the command line.

$\endgroup$
5
  • 1
    $\begingroup$ "For kids to play with": geogebra is used a lot in schools. geogebra.org/cms $\endgroup$ Jul 7, 2012 at 4:08
  • $\begingroup$ @KjetilBHalvorsen I am not sure that Geogebra is open source. Its webpage geogebra.org/cms/en/license claims that: (1) Geogebra is open source (2) Geogebra is free of charge for non-commercial use only (3) the Geogebra source code is available under the GPL. As far as I know, (2) is in contradiction with both (1) (per the OSI open source definition) and (3) (per the GPL terms). Strange indeed. $\endgroup$ Mar 29, 2014 at 18:56
  • $\begingroup$ @FedericoPoloni: Not at all. The GPL certainly doesn't forbid charging for software. You just have to provide the source code to whoever you sell it to. In fact, a great deal of software which costs money is open source. $\endgroup$ Nov 16, 2014 at 3:28
  • $\begingroup$ @kundor Sure, but you cannot forbid those who already have the software from redistributing it (even to commercial users), which usually makes selling it quite pointless. The commercial use clause falls under the "further restrictions" cause and is invalid in my view. And the contradiction (1)-(2) stands clear in the OSI definition, if one assumes that as the definition of open source. $\endgroup$ Nov 16, 2014 at 11:01
  • $\begingroup$ @kundor Actually the Geogebra page on licensing now seems clearer than when I wrote my previous comment. The program itself is GPL, and the additional restrictions are on additional components such as the web plugin, the installer and the translations of the interface in other languages. I still disagree with the claim "GeoGebra is open source software", but at least everything is consistent. $\endgroup$ Nov 16, 2014 at 11:07
3
$\begingroup$

The only mathematical software I've learned to use so far is gnuplot, which does 2D and 3D plots.

It's very easy to use, at least for basic tasks such as "plot $x \log(x)$ for $0 \leq x \leq 1$". It comes ready-installed on many Linux distributions.

$\endgroup$
1
  • $\begingroup$ OP wanted abstract mathematics, and plotting is mostly about numerical mathematics and applied mathematics. $\endgroup$ Apr 24, 2015 at 10:58
3
$\begingroup$

I am using SAGE for computing over elliptic curves. It is very convenient and has lots of implementations of algorithms. But I have not found a way to instal in under windows environment without virtual box.

$\endgroup$
1
3
$\begingroup$

Michael Rubinstein's lcalc is a fast and easy-to-use program for calculating values of L-functions including the Riemann zeta function. It can be downloaded from:

http://pmmac03.math.uwaterloo.ca/~mrubinst/L_function_public/L.html

$\endgroup$
2
$\begingroup$

I like kig. Very useful software for simple geometric constructions. Also it can help if you want to make a figure for a paper.

$\endgroup$
2
$\begingroup$

I like LiE for computations with Lie algebras, especially roots and weights computations, plethysms,... It also has a web form interface.

$\endgroup$
2
$\begingroup$

... and probably polytopes.

I recommend polymake for general polytope computations, LattE for lattice-point enumeration, Normaliz for computations related to lattice polytopes, and 4ti2 for Gröbner basis computations.

$\endgroup$
2
$\begingroup$

I can't believe that Python and its vast scientific application libraries are not mentioned in this thread. Let me be little bit bias and mention projects like PyDSTool. What makes Maple or Mathematica language simpler than Python? Similarly time proven but proprietary computer algebra system MuPad now a part of MATLAB is not mentioned. FreeMat, the cleanest (other two being GNU Octabe and Scilab) reimplementation of MATLAB API, is also not mentioned. PostScript, page description language (arguably proprietary), is not mentioned. It is wonderful language for teaching geometry and programming pictures.

P.S. I was surprised that people even mentioned things like Maple and Mathematica. I personally have not meet a person who had a look at the source code of these two systems. However, I have friends who have worked for MathWorks and have seen the source code of MATLAB.

$\endgroup$
2
  • 1
    $\begingroup$ Neither Python nor PostScript seem to qualify as software for general abstract mathematical purposes (which is what the question was about). However, software written in these langes of course may fall into this category (such as Sage, PyDSTool, which have been mentioned). $\endgroup$
    – Max Horn
    Jan 12, 2012 at 10:00
  • $\begingroup$ Not to forget: SymPy $\endgroup$
    – Jim
    May 2, 2023 at 22:18
2
$\begingroup$

We are taught to use Sage to replace Matlab and Mathematica, now it also supports the online version via web browser which is very convenient and cross-platform.

In addition, Sage is python based, it's easy to combine python programming which is more and more popular in scientific computation nowadays.

$\endgroup$
2
$\begingroup$

REDUCE is also an interesting free computer algebra system to have a look at. It allows especially quantifier elimination by means of Redlog library (http://redlog.eu) The following is from the REDUCE homepage (http://reduce-algebra.com):

REDUCE is an interactive system for general algebraic computations of interest to mathematicians, scientists and engineers. It has been produced by a collaborative effort involving many contributors. Its capabilities include:

  • expansion and ordering of polynomials and rational functions;
  • substitutions and pattern matching in a wide variety of forms;
  • automatic and user controlled simplification of expressions;
  • calculations with symbolic matrices;
  • arbitrary precision integer and real arithmetic;
  • facilities for defining new functions and extending program syntax;
  • analytic differentiation and integration; bullet factorization of polynomials;
  • facilities for the solution of a variety of algebraic equations;
  • facilities for the output of expressions in a variety of formats;
  • facilities for generating optimized numerical programs from symbolic input;
  • calculations with a wide variety of special functions;
  • Dirac matrix calculations of interest to high energy physicists.

Screenshot

$\endgroup$
2
  • $\begingroup$ Is the list of capabilities missing, or is it the empty set? :) $\endgroup$ Nov 16, 2014 at 13:27
  • $\begingroup$ Sorry, the set of capabilities has now some elements. $\endgroup$
    – Jae
    Nov 16, 2014 at 19:25
1
$\begingroup$

Rubinstein's lcalc is part of Sage

http://www.sagemath.org/doc/reference/sage/lfunctions/lcalc.html

$\endgroup$
1
$\begingroup$

Scilab (http://www.scilab.org/) is also numerical software which is free and open source, akin to Octave and Matlab. It's been developed at INRIA and ENPC. I also highly recommend Octave for numerical analysis and statistical analysis.

Maxima is also on many gnu/linux installations and can be used in a text window or terminal without any graphics. The WxMaxima front end works in a graphical-user-environment and has better visualization of formulas and allows for menu-level interaction, instead of having to have all of the commands memorized.

$\endgroup$
1
$\begingroup$

I recommend PascGalois Project software for visualizing abstract mathematics. Classroom resources also available.

$\endgroup$
0
$\begingroup$

I would recommend SCaVis (Scientific Computation and Visualization Environment). First, it is Java and runs on any platform. I has a nice editor and you can program in 4 scripting languages (including Python, Ruby). The graphics includes 3D. There is also about 300 examples and very extensive SCaVis online manual which covers

  • Functions (parametric, not-parametric)
  • General math (integration, differentiations)
  • Linear algebra
  • Data analysis, mining, histograms
  • Statistics
  • Symbolic calculations

and all of this can be integrated with plot canvaces in 2D and 3D.

$\endgroup$
0
$\begingroup$

Haven't yet tried it out, but Julia seems to be an interesting recent language with focus on (fast) mathematics.

$\endgroup$
-1
$\begingroup$

DataMelt numeric software is close to what you need. This math program is free and includes many numeric libraries.

$\endgroup$
1
  • 1
    $\begingroup$ Thank you for your contribution. PLease note however that this software was already mentioned mathoverflow.net/a/161805 $\endgroup$
    – user9072
    Apr 24, 2015 at 11:24

Not the answer you're looking for? Browse other questions tagged or ask your own question.