Mathematical software is software used to model, analyze or calculate numeric, symbolic or geometric data.
All math software listed below are free and open-source and many of them can be used in all popular operating systems. Feel free to suggest any other free math software not mentioned in the article.
Project page: http://sagemath.org
The mission of the Sage project is to create “a viable free open source alternative to Magma, Maple, Mathematica and Matlab.” Sage may be run from a command line or within a browser as shown here.
Some of the many features of Sage are:
- A notebook document interface, for review and re-use of previous inputs and outputs, including graphics and text annotations usable from most web browsers including Firefox, Opera, Konqueror, and Safari. A secure connection via HTTPS to the notebook is supported when security or confidentiality are important, and allows Sage to be used both locally and remotely.
- A text-based command line interface using IPython.
- The Python programming language supporting procedural, functional and object oriented constructs.
- Support for parallel processing using both multi-core processors found in many modern computers, multiple processors, in addition to distributed computing.
- Calculus using Maxima and SymPy.
- Numerical Linear Algebra using the GSL, SciPy and NumPy.
- Libraries of elementary and special mathematical functions.
- 2D and 3D graphs of both functions and data.
- Matrix and data manipulation tools including support for sparse arrays.
- Multivariate statistics libraries, using the functionality of R and SciPy.
- A toolkit for adding user interfaces to calculations and applications.
- Tools for image processing using Pylab as well as the Python programming language.
- Graph theory visualization and analysis tools.
- Libraries of number theory functions.
- Import and export filters for data, images, video, sound, CAD, GIS, document and biomedical formats.
- Support for complex number, arbitrary precision and symbolic computation for functions where this is appropriate.
- Technical word processing including formula editing and the ability to embed Sage inside LaTeX documents.
- Network tools for connecting to SQL, Java, .NET, C++, FORTRAN provide by Twisted, This supports a large number of protocols including HTTP, NNTP, IMAP, SSH, IRC, FTP and others.
- Interfaces to some third-party software like Mathematica, Magma, and Maple, which allows users to combine software and compare output and performance. It is thus also a “front-end” to other mathematical tools similar to GNU TeXmacs.
- MoinMoin as a Wiki system for knowledge management.
- Documentation using Sphinx.
- An automated test-suite, which allows for testing on an end-user’s computer.
Project page: http://maxima.sourceforge.net/
Maxima is an open source computer algebra system (CAS). As such it is free for everyone to download, install, and use! In fact, its (GNU Public) license, or GPL, allows everyone the freedom to modify and distribute it too, as long as its license remains with it unmodified.
What is a CAS?
Any CAS may be thought of as a highly sophisticated calculator. It can be used to do any of the types of numerical calculations you might expect of a calculator such as trigonometric, exponential, logarithmic, and arithmetic computations. However, numerical calculation is not the main purpose of a CAS. A CAS’ main purpose, and what sets a CAS apart from most calculators, is symbolic manipulation. As such, when asked to divide 36/72, a CAS will respond 1/2 rather than 0.5 unless explicitly commanded to respond with a decimal representation. Computer algebra systems also have the ability to perform “arbitrary precision” calculations. In other words, the user can specify how many decimal places to use in floating point calculations, and does not have to worry much about overflow errors. For example, a CAS will return all 158 digits of 100! when asked. But, as already noted, the real strength of a computer algebra system is the manipulation of variable expressions. For example, a CAS can be used to differentiate x^2*sin x. It will return 2x*sin x+x^2*cos x as it should. Another feature of any CAS that should not go unmentioned is its ability to produce both 2-D and 3-D graphs.
During the early days of development, the only user interface available was the command line. This option is still available. However, several independent projects strive to give Maxima a more modern, graphical user interface. One of these projects is wxMaxima, a simple front end that allows modification of previous input and typeset output. See a screenshot on this page. The preferred front end is Cantor, however, as it can be used for interactive sessions with Maxima, Octave, R, and others.
From the Maxima Manual: Maxima is derived from the Macsyma system, developed at MIT in the years 1968 through 1982 as part of Project MAC. MIT turned over a copy of the Macsyma source code to the Department of Energy in 1982; that version is now known as DOE Macsyma. A copy of DOE Macsyma was maintained by Professor William F. Schelter of the University of Texas from 1982 until his death in 2001. In 1998, Schelter obtained permission from the Department of Energy to release the DOE Macsyma source code under the GNU Public License, and in 2000 he initiated the Maxima project at SourceForge to maintain and develop DOE Macsyma, now called Maxima.
Project page: http://www.geogebra.org/
GeoGebra is free and multi-platform dynamic mathematics software for all levels of education that joins geometry, algebra, tables, graphing, statistics and calculus in one easy-to-use package. It has received several educational software awards in Europe and the USA.
- Graphics, algebra and tables are connected and fully dynamic
- Easy-to-use interface, yet many powerful features
- Authoring tool to create interactive learning materials as web pages
- Available in many languages for our millions of users around the world
- Free and open source software
Background Information About GeoGebra
GeoGebra is dynamic mathematics software for schools that joins geometry, algebra, and calculus.
On the one hand, GeoGebra is an interactive geometry system. You can do constructions with points, vectors, segments, lines, and conic sections as well as functions while changing them dynamically afterwards.
On the other hand, equations and coordinates can be entered directly. Thus, GeoGebra has the ability to deal with variables for numbers, vectors, and points. It finds derivatives and integrals of functions and offers commands like Root or Vertex.
These two views are characteristic of GeoGebra: an expression in the algebra window corresponds to an object in the geometry window and vice versa.
GeoGebra’s User Interface
GeoGebra’s user interface consists of a graphics window and an algebra window. On the one hand you can operate the provided geometry tools with the mouse in order to create geometric constructions on the drawing pad of the graphics window. On the other hand, you can directly enter algebraic input, commands, and functions into the input field by using the keyboard. While the graphical representation of all objects is displayed in the graphics window, their algebraic numeric representation is shown in the algebra window.
The user interface of GeoGebra is flexible and can be adapted to the needs of your students. If you want to use GeoGebra in early middle school, you might want to hide the algebra window, input field, and coordinate axes and just work with the drawing pad and geometry tools. Later on, you might want to introduce the coordinate system using a grid to facilitate working with integer coordinates. In high school, you might want to use algebraic input in order to guide your students through algebra on into calculus.
Project page: http://www.r-project.org/
R is a language and environment for statistical computing and graphics. It is a GNU project which is similar to the S language and environment which was developed at Bell Laboratories (formerly AT&T, now Lucent Technologies) by John Chambers and colleagues. R can be considered as a different implementation of S. There are some important differences, but much code written for S runs unaltered under R.screenshot
R provides a wide variety of statistical (linear and nonlinear modelling, classical statistical tests, time-series analysis, classification, clustering, …) and graphical techniques, and is highly extensible. The S language is often the vehicle of choice for research in statistical methodology, and R provides an Open Source route to participation in that activity.
One of R’s strengths is the ease with which well-designed publication-quality plots can be produced, including mathematical symbols and formulae where needed. Great care has been taken over the defaults for the minor design choices in graphics, but the user retains full control.
R is available as Free Software under the terms of the Free Software Foundation’s GNU General Public License in source code form.
The R environment
R is an integrated suite of software facilities for data manipulation, calculation and graphical display. It includes
- an effective data handling and storage facility,
- a suite of operators for calculations on arrays, in particular matrices,
- a large, coherent, integrated collection of intermediate tools for data analysis, graphical facilities for data analysis and display either on-screen or on hardcopy, and
- a well-developed, simple and effective programming language which includes conditionals, loops, user-defined recursive functions and input and output facilities.
The term “environment” is intended to characterize it as a fully planned and coherent system, rather than an incremental accretion of very specific and inflexible tools, as is frequently the case with other data analysis software.
R, like S, is designed around a true computer language, and it allows users to add additional functionality by defining new functions. Much of the system is itself written in the R dialect of S, which makes it easy for users to follow the algorithmic choices made. For computationally-intensive tasks, C, C++ and Fortran code can be linked and called at run time. Advanced users can write C code to manipulate R objects directly.
Many users think of R as a statistics system. We prefer to think of it as an environment within which statistical techniques are implemented. R can be extended (easily) via packages. There are about eight packages supplied with the R distribution and many more are available through the CRAN family of Internet sites covering a very wide range of modern statistics.
R has its own LaTeX-like documentation format, which is used to supply comprehensive documentation, both on-line in a number of formats and in hardcopy.
R may be used from the command line, but Mathbuntu also includes a graphical user interface called Cantor (the same one that can be used with Maxima and Octave as well!) and RKWard.
RKWard is meant to become an easy to use, transparent frontend to the R-language. It will not only provide a convenient user-interface, however, but also take care of seamless integration with an office-suite. Practical statistics is not just about calculating, after all, but also about documenting and ultimately publishing the results.
Project page: http://www.gnu.org/software/octave/
GNU Octave is a high-level language, primarily intended for numerical computations. It provides a convenient command line interface for solving linear and nonlinear problems numerically, and for performing other numerical experiments using a language that is mostly compatible with Matlab. It may also be used as a batch-oriented language.
Octave has extensive tools for solving common numerical linear algebra problems, finding the roots of nonlinear equations, integrating ordinary functions, manipulating polynomials, and integrating ordinary differential and differential-algebraic equations. It is easily extensible and customizable via user-defined functions written in Octave’s own language, or using dynamically loaded modules written in C++, C, Fortran, or other languages.
GNU Octave is also freely redistributable software. You may redistribute it and/or modify it under the terms of the GNU General Public License (GPL) as published by the Free Software Foundation.
Octave was written by John W. Eaton and many others. Because Octave is free software you are encouraged to help make Octave more useful by writing and contributing additional functions for it, and by reporting any problems you may have.
Octave was originally conceived (in about 1988) to be companion software for an undergraduate-level textbook on chemical reactor design being written by James B. Rawlings of the University of Wisconsin-Madison and John G. Ekerdt of the University of Texas. We originally envisioned some very specialized tools for the solution of chemical reactor design problems. Later, after seeing the limitations of that approach, we opted to attempt to build a much more flexible tool.
There were still some people who said that we should just be using Fortran instead, because it is the computer language of engineering, but every time we had tried that, the students spent far too much time trying to figure out why their Fortran code failed and not enough time learning about chemical engineering. We believed that with an interactive environment like Octave, most students would be able to pick up the basics quickly, and begin using it confidently in just a few hours.
Full-time development began in the Spring of 1992. The first alpha release was January 4, 1993, and version 1.0 was released February 17, 1994. Since then, Octave has been through several major revisions, is included with Debian GNU/Linux and SuSE Linux distributions, and was reviewed in the in the July, 1997 issue of the Linux Journal.
Clearly, Octave is now much more than just another courseware package with limited utility beyond the classroom. Although our initial goals were somewhat vague, we knew that we wanted to create something that would enable students to solve realistic problems, and that they could use for many things other than chemical reactor design problems. Today, thousands of people worldwide are using Octave in teaching, research, and commercial applications.
Just about everyone thinks that the name Octave has something to do with music, but it is actually the name of one of the author’s former professors who wrote a famous textbook on chemical reaction engineering, and who was also well known for his ability to do quick “back of the envelope” calculations. We hope that this software will make it possible for many people to do more ambitious computations just as easily.
Everyone is encouraged to share this software with others under the terms of the GNU General Public License (GPL). You are also encouraged to help make Octave more useful by writing and contributing additional functions for it, and by reporting any problems you may have.
Project page: http://www.scilab.org/
Scilab is the free software for numerical computation providing a powerful computing environment for engineering and scientific applications.
Gathering both industrial needs and scientific advances, Scilab covers a wide spectrum of areas:
Scilab includes hundreds of mathematical functions. It has a high level programming language allowing access to advanced data structures, 2-D and 3-D graphical functions. A large number of functionalities is included in Scilab: control, simulation, optimization, signal processing… Xcos, the hybrid dynamic systems modeler and simulator is provided with the platform.
Scilab is free software distributed under CeCILL license (GPL compatible). It comes with source code, help and English user manuals. The availability of source code is of great interest in research or for strategic applications. The distribution mode of Scilab is particularly well suited for education where students can receive a free copy or as a tool for scientific cooperation without constraints.
The international scientific community, both academic and industrial spheres, invests in Scilab. Many external modules, contributions from users or from the Scilab Consortium R&D team, can also be downloaded.
Project page: http://lurchmath.org/
Lurch is a math word processor that checks the steps of the user’s work.
A step is any part of a Lurch document (but usually a single mathematical expression) to which a reason is attached (regardless of whether that reason is correct, or even left blank).
Your word processor has spelling and grammar checkers. Your math word processor should check your math. (Not just arithmetic, but algebra, calculus, and proofs as well.) That is what Lurch does; it is a simple math word processor with a general-purpose math checker built in.
Project page: http://www.kde.org/applications/education/cantor/
Cantor is a front-end to powerful mathematics and statistics packages. Cantor integrates them into the KDE Platform and provides a nice, worksheet-based, graphical user interface.
- Support for many different environments (Maxima, R, SAGE, KAlgebra, Octave, Scilab)
- Possibility to retrieve and share worksheets through Get Hot New Stuff
- Integration of the selected environment’s help in the user interface
Project page: http://www.latex-project.org/
LaTeX is a document preparation system for high-quality typesetting. It is most often used for medium-to-large technical or scientific documents but it can be used for almost any form of publishing.
LaTeX is not a word processor! Instead, LaTeX encourages authors not to worry too much about the appearance of their documents but to concentrate on getting the right content.
LaTeX is based on the idea that it is better to leave document design to document designers, and to let authors get on with writing documents.
LaTeX contains features for:
- Typesetting journal articles, technical reports, books, and slide presentations.
- Control over large documents containing sectioning, cross-references, tables and figures.
- Typesetting of complex mathematical formulas.
- Advanced typesetting of mathematics with AMS-LaTeX.
- Automatic generation of bibliographies and indexes.
- Multi-lingual typesetting.
- Inclusion of artwork, and process or spot colour.
- Using PostScript or Metafont fonts.
LaTeX is based on Donald E. Knuth’s TeX typesetting language or certain extensions. LaTeX was first developed in 1985 by Leslie Lamport, and is now being maintained and developed by the LaTeX3 Project. LaTeX is available for free by anonymous ftp.
The best source for news on TeX and LaTeX is the TeX Users Group.
And in case you were wondering, “LaTeX” is pronounced “Lah-tech” or “Lay-tech”.
Project page: http://www.lyx.org/
LyX is a document processor that encourages an approach to writing based on the structure of your documents (WYSIWYM) and not simply their appearance (WYSIWYG).
LyX combines the power and flexibility of TeX/LaTeX with the ease of use of a graphical interface. This results in world-class support for creation of mathematical content (via a fully integrated equation editor) and structured documents like academic articles, theses, and books. In addition, staples of scientific authoring such as reference list and index creation come standard. But you can also use LyX to create a letter or a novel or a theatre play or film script. A broad array of ready, well-designed document layouts are built in.
LyX is for people who want their writing to look great, right out of the box. No more endless tinkering with formatting details, “finger painting” font attributes or futzing around with page boundaries. You just write. On screen, LyX looks like any word processor; its printed output — or richly cross-referenced PDF, just as readily produced — looks like nothing else.
LyX is released under a Free Software/Open Source license, and is available in several languages
Do you have any other software to suggest?