Take the 2-minute tour ×
MathOverflow is a question and answer site for professional mathematicians. It's 100% free, no registration required.

I want some recomendation on which software I should install on my computer, 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. Altough probably those are not designed por abstract mathematics.

Any suggestions?

share|improve this question
13  
Community wiki? –  Andrew Stacey Mar 22 '10 at 20:30
add comment

20 Answers

up vote 48 down vote accepted

Here are some links.

  • Axiom and Maxima are good general purpose computer algebra systems.
  • 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.
share|improve this answer
3  
I would like to add FriCAS (fricas.sourceforge.net) which is a fork of Axiom, to this very nice list. –  Martin Rubey Mar 22 '10 at 20:06
2  
A propos Maxima, I also recommend wxMaxima for a good front end. –  Willie Wong Mar 22 '10 at 20:35
8  
He wants to do algebraic geometry, and there's no mention of Singular?? –  Mikael Vejdemo-Johansson Mar 22 '10 at 20:55
2  
@Mikael +1. It is also included in SAGE [cf. sagemath.org/links-components.html] –  AlB Mar 22 '10 at 21:01
2  
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. –  Tom Braden Jul 25 '10 at 13:32
show 1 more comment

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

share|improve this answer
1  
Why "essentially"? Doesn't SAGE straight up include GAP? –  Omar Antolín-Camarena May 18 '12 at 15:22
add comment

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

share|improve this answer
add comment

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

share|improve this answer
add comment

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.

share|improve this answer
add comment

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

share|improve this answer
add comment

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.

share|improve this answer
5  
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. –  Jacques Carette Mar 22 '10 at 21:39
add comment

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/).

share|improve this answer
add comment

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

share|improve this answer
add comment

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.

share|improve this answer
add comment

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

share|improve this answer
add comment

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.

share|improve this answer
add comment

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.

share|improve this answer
add comment

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.

share|improve this answer
    
"For kids to play with": geogebra is used a lot in schools. geogebra.org/cms –  Kjetil B Halvorsen Jul 7 '12 at 4:08
    
@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. –  Federico Poloni Mar 29 at 18:56
add comment

... 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.

share|improve this answer
add comment

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.

share|improve this answer
1  
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). –  Max Horn Jan 12 '12 at 10:00
add comment

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

share|improve this answer
add comment

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.

share|improve this answer
add comment

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.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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