18
$\begingroup$

What is some good free software for doing physics calculations?

I'm mainly interested in symbolic computation (something like Mathematica, but free).

$\endgroup$
3

8 Answers 8

21
$\begingroup$

Some software I have used or has been recommended to me for physics-related work:

  • WolframAlpha -- when I don't have Maple around, I use it for simple symbolic calculations
  • Maxima -- free open source alternative to Maple/Mathematica
  • DataMelt -- another free and open-source software that runs under the Java platform on all Java-supported OS
  • Sage -- quite an interesting open source symbolic/numerical package, you can try it online at sagenb.org
  • Scilab/GNU Octave -- alternatives to Matlab, best if you want to any numerical computations
  • R -- powerful programming language used for statistical analysis
  • OpenOffice Calc -- I'll put it here for completeness as Excel and its variants seem to be the software of choice for most experimental calculations.
$\endgroup$
3
  • $\begingroup$ Maxima has a units package, as do the commercial software systems. $\endgroup$ Commented Dec 24, 2010 at 19:17
  • 2
    $\begingroup$ Maybe throw Gnuplot into the mix? I love it for quick and easy plots of functions and data series, and when I then need something more polished I can very easily reuse the gnuplot code from other examples. Better than pointing and clicking to get results. $\endgroup$
    – Lagerbaer
    Commented Apr 3, 2011 at 16:11
  • 3
    $\begingroup$ SymPy should also probably be added to this list. $\endgroup$
    – Simon
    Commented Jun 25, 2011 at 6:59
11
$\begingroup$

It is probably worth your while to buy Mathematica, Maple, or Matlab, depending on your needs. I wish it weren't so, but this is one area in which the commercial tools are still vastly better than their free counterparts.

If you are a student, you can buy these at fairly afforable prices. Maple 14 Student Edition is only $99. Mathematica for Students is \$140, and Matlab/Simulink is \$99 for students. It is also possible that your school or department already has a site license, allowing you to obtain and use this software for no additional cost.

For symbolic calculations, you want either Mathematica or Maple, with Maple being more user-friendly, and Mathematica being more prevalent (in my experience) in actual research environments. Matlab's focus is on numerical calculations.

$\endgroup$
1
  • 2
    $\begingroup$ Not to mention that your institution can probably provide you shared licences (licence server) of Mathematica or Matlab. $\endgroup$
    – Cedric H.
    Commented Nov 4, 2010 at 23:18
10
$\begingroup$

I've recently discovered Cadabra.

A field-theory motivated approach to computer algebra

I'm really impressed.

$\endgroup$
2
  • $\begingroup$ didn't knew it, +1 $\endgroup$
    – lurscher
    Commented Apr 3, 2011 at 16:13
  • $\begingroup$ Cadabra uses many of the same index algorithms as the Mathematica package xAct. Although xAct is more focused on General Relativity calculations, while Cadabra is more field theory oriented. $\endgroup$
    – Simon
    Commented Jun 25, 2011 at 6:56
7
$\begingroup$

Sage is a Python based system (including Numpy and Scipy) which includes a symbolic computation module.

From the Sage homepage:

Sage is a free open-source mathematics software system licensed under the GPL. It combines the power of many existing open-source packages into a common Python-based interface. Mission: Creating a viable free open source alternative to Magma, Maple, Mathematica and Matlab.

$\endgroup$
3
  • $\begingroup$ Do you have any experience with it? If so, how does it compare in usefulness to Mathematica? $\endgroup$
    – nibot
    Commented Nov 4, 2010 at 21:52
  • 2
    $\begingroup$ I tend to use Python with Numpy barebones as it were, without the Sage environment around it. I prefer the combination of interactive and scripting methodologies which I can use with Python rather than the notebook methodology of Mathematica. Sage (at least through the web interface) is more like Mathematica and does cover many of the things you might do in Mathematica. I do sometimes crank up Mathematica to plot a quick graph (Manipulate is a great exploratory tool) but tend to get aggravated by things I would know how to do easily in Python. $\endgroup$
    – ihuston
    Commented Nov 4, 2010 at 23:45
  • 2
    $\begingroup$ If you are into Python, the combination of NumPy, SciPy and matplotlib will cover any need for numerical or scientific computing or graphing you may have. There also is a SymPy for symbolic calculations, but I have never used it. A friend of mine has his own open-source Python library for unit management: juanreyero.com/open/magnitude $\endgroup$
    – Jaime
    Commented Dec 27, 2010 at 23:34
7
$\begingroup$

I'd like to add that GNU Octave is a very good free alternative to Matlab.

Contrary to Scilab which does not aim at being compatible with Matlab, you can practically run your Matlab scripts with Octave with very few modifications (at least with their latest version).

$\endgroup$
4
$\begingroup$

GiNaC is a c++ symbolic manipulation framework oriented to high-energy physics computations. It has a couple of interactive frontends, although its main usage is as part of the Root framework at CERN.

A derivative of GiNaC is Pynac, which forms the backend for symbolic expressions in Sage.

$\endgroup$
3
  • $\begingroup$ Can you provide links/descriptions of its frontends? $\endgroup$
    – Simon
    Commented Jun 25, 2011 at 6:53
  • $\begingroup$ i think the most used is "gTybalt" wwwthep.physik.uni-mainz.de/~stefanw//gtybalt.html although i can't asess its usability because i've used ginac mostly as a library in my own code $\endgroup$
    – lurscher
    Commented Jun 25, 2011 at 11:55
  • $\begingroup$ Thanks - I'll have a look at it. I spent some time playing with GiNaC about 1 year ago, but never really used it, since I couldn't justify learning it for my one off calculation. Instead, I took the computationally slow but familiar route of using Mathematica. $\endgroup$
    – Simon
    Commented Jun 25, 2011 at 13:04
2
$\begingroup$

I used this software in my energy transfer courses, I never used it for symbolic, so I don't know if you can do symbolic computation, however it is very good at solving equations. As well as for conversions. It is not free, however you can download a student version, which I used the whole semester without problems. It is called ees. The company I think is called f chart. I know it is not exactly what you asked for, however it's a useful software to have around, especially when working with a lot of equations, since the software actually warns you about any inconsistency in the units.

It is also useful if you want to calculate say for example entropy, the software can do it for you if you have the pressure or temperature.

http://www.mhhe.com/engcs/mech/ees/download.html http://www.fchart.com/ees/

$\endgroup$
1
$\begingroup$

I think DataMelt (Computation and Visualization Environment) is one of the best free software programs for physics.

  • It was developed for High-Energy Physics at the DESY (Germany) and then ANL physics lab (US)
  • It runs on Linux and Mac, which is the usual environment in physics
  • It has "physics" Java module for calculations
  • It has very detailed manual (but a lot of material is totally free)
$\endgroup$
1
  • 2
    $\begingroup$ Welcome to the site! If you have any specific ties to this software or its producers, it is best if you include a full disclaimer. $\endgroup$ Commented May 29, 2014 at 0:50

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