GNU Octave

GNU Octave [ ɒktɪv ] is a free software for the numerical solution of mathematical problems, such as matrix algebra, solution of (differential ) equations and integration, calculations can be performed in Octave with a scripting language that is largely compatible with the proprietary MATLAB.


The concept of Octave was built in 1988. Initially, it was planned as a companion software for a student textbook for chemical reactors, the James B. Rawlings ( University of Wisconsin -Madison ) and John G. Eherdt ( University of Texas ) was written.

First of special tools for solving design problems of chemical reactors were realized. As the developers realized that Octave could be used to solve other problems, it was decided to develop it into a more flexible program. Initially Octave should be written in Fortran, as this seemed to be particularly suitable as a technical programming language. The developers failed but with this approach, as they had to invest a lot more time for it to cope with the language and to look for the errors in the code, than to learn something in Chemical Engineering by it. They decided therefore to create an interactive environment for the program in which you could learn the basics in no time. The aim of the development was very easy to make demanding calculations.

The full-time Development by John W. Eaton began in the spring of 1992 and the first alpha was released on 4 January 1993. Since GNU Octave was repeatedly revised and is now integrated into Debian GNU / Linux and SUSE Linux.

For the Free Software Foundation is the development of Octave to a free MATLAB spare one of about a dozen " High Priority Projects".

Technical Details

Implements Octave is in C , but it is also expandable by modules that have been written in Octave itself or in other languages ​​, such as Fortran, C or C . Gnuplot default for graphical output of 2D and 3D plots will be used. It is also possible alternative graphics packages such as EpsTk be used.

A major advantage of Octave is the ability to adapt to each computer. As a simple example of the full address space even with 64 -bit machines use.

The other way round, all Octave libraries in C programs are available, so that Octave is a numerical library for C .

MATLAB compatibility

The derived MATLAB scripting language GNU Octave is mostly compatible, partially extended to this. The Funktionskompatiblität of GNU Octave for the basic version of MATLAB (no toolboxes ) is also largely immobile. Almost complete compatibility with MATLAB can be achieved by the additional package octave- forge and other free replacement functions of the Mathworks File Exchange. Also written for MATLAB MEX external functions in C or C are often without code changes for Octave compile and use.

Octave used as a library for vector and Matrizoperationen BLAS, optionally in the ATLAS variant, whereas MATLAB now uses the commercial version MKL BLAS from Intel.

Currently, Octave, unlike MATLAB, not yet delivered as an integrated suite with solid development environment and GUI. The input is therefore usually, similar to MATLAB command window, command line based directly. With version 4.0, but should also GNU Octave receive such a development environment, however, a full-featured terminal emulation for the Command Window will be used. This has the advantage that a user, who previously worked only in the terminal, still can enjoy all the benefits of a real terminal emulation. This was never possible with the existing front ends and therefore always an exclusion criterion for inclusion as an official frontend. Furthermore, the soon to be released development environment is directly coupled to GNU Octave shared memory, instead of the previous only called as a command line program.

User interface

Octave comes not with a graphical user interface (GUI) or integrated development environment ( IDE). However, it can be extended with a graphical front-end.

With version 4.0 Octave is to be delivered with its own, based on the Qt toolkit, graphical user interface, which is located in a wide stage of development already in the official source code repositories. The development is primarily aimed at the GNU / Linux - based systems, but there are already compiled files for MacOSX and Windows. With the release of version 3.8.0 the graphical interface was transferred to the official branch. However, this is not enabled by default and can be octave - to start force -gui.

Graphical user interfaces ( GUI)

  • Programmed MATLAB -like user interface for GNU Octave and Yacas in Qt4, using Ruby - Kalculus ( Linux). Since mid-2008, no new versions are released.
  • Cantor (Linux) - user interface for GNU Octave, Sage, Maxima, R and KAlgebra.
  • Xoctave (Windows, Linux) - Xoctave encapsulates GNU Octave using pipes and an additional tools to make the application easier. Previously, free software, now proprietary.
  • Octavenb - Integration of GNU Octave in NetBeans IDE, SVN support, multilingual, License: GPL 2.0
  • QtOctave (Windows, Linux) - Graphical expansion, development was in favor of appearing soon set official GUI
  • Anoc (Android) - User interface for GNU Octave. The calculations are performed for better performance on a dedicated server

User interfaces as Web interface

  • Online LaTeX and Octave Editor - Online editor, among other things, for GNU Octave with graphical output and storage capability
  • Online access for GNU Octave - Allow other simple calculations with GNU Octave

Development History