GNU Octave

from Wikipedia, the free encyclopedia
GNU Octave

official Octave logo
Octave visualization
GNU Octave 4.0.0 GUI
Basic data

Publishing year 1988
Current  version 5.2.0
( January 31, 2020 )
operating system GNU / Linux , macOS , Solaris , Unix , OS / 2 , Windows
programming language C ++
category Mathematics , control engineering , modeling
License GPL ( Free Software )
www.gnu.org/software/octave/

GNU Octave [ ˈɒktɪv ] is free software for the numerical solution of mathematical problems, such as matrix calculations, solving (differential) equation systems , integration etc. Calculations can becarried outin Octave with a scripting language that is largely similar to the proprietary Matlab and also free FreeMat is compatible.

history

The concept of Octave originated in 1988. It was initially planned as software to accompany a student textbook for chemical reactors, which was written by James B. Rawlings ( University of Wisconsin-Madison ) and John G. Eherdt ( University of Texas ). Alternatively, Fortran could have served this purpose, since it seemed to be particularly suitable as a technical programming language. However, it found that students spent a lot more time getting used to the language and looking for the bugs in the code than they did in chemical engineering .

First of all, special tools for solving construction problems of chemical reactors were realized. When the developers realized that Octave could be used to solve other problems, it was decided to develop it into a more flexible program. They therefore decided to create an interactive environment for the program in which one could learn the basics within a very short time. The aim of the development was to make sophisticated calculations very easy.

Full-time development by John W. Eaton began in spring 1992 and the first alpha version appeared on January 4, 1993. Since then, GNU Octave has been fundamentally revised several times and is now integrated into most Linux distributions .

For the Free Software Foundation , the further development of Octave into a free MATLAB replacement until January 2017 was one of around a dozen "High Priority Projects".

Technical characteristics

Octave is implemented in C ++ , but it can also be expanded with modules written in Octave itself or in other languages, for example Fortran , C or C ++. As of version 4.0.0, an integrated graphic toolkit based on Qt (library) is used by default for the graphic output of 2D and 3D plots . The gnuplot and FLTK used in earlier versions can still be used. But alternative graphics packages such as EpsTk can also be used.

A big advantage of Octave is that it can be adapted to any computer . For example, the full address space can also be used with 64-bit computers.

The other way around, all Octave libraries can also be used in C ++ programs, so that Octave also represents a numerical library for C ++.

MATLAB compatibility

The GNU Octave scripting language, which is derived from MATLAB, is mostly compatible, and in some cases has been extended to it. The functional compatibility of GNU Octave with the basic version of MATLAB (without toolboxes) is also largely given. Almost complete compatibility with MATLAB can be achieved with the additional package octave-forge and other free replacement functions of the Mathworks FileExchange . External MEX functions written for MATLAB in C or C ++ can often be compiled and used for Octave without code adjustments.

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

Graphic user interfaces (GUI)

From version 4.0.0, GNU Octave is delivered with its own graphical user interface ( GUI ) based on the Qt toolkit . Version 3.8.0 already had the GUI, which was experimental at the time. However, this was not activated by default and could be octave --force-guistarted with. Octave can still be operated based on the command line, as the command window offers a complete terminal emulation.

Unofficial third party GUIs

  • Cantor (Linux) - user interface for GNU Octave, Sage , Maxima , R and KAlgebra.
  • Xoctave (Windows, Linux) - Xoctave encapsulates GNU Octave using pipes and additional tools to make it easier to use. Formerly free software, now proprietary.
  • Octavenb - Integration of GNU Octave in NetBeans IDE, supports SVN, multilingual, license: GPL-2.0
  • QtOctave (Windows, Linux) - graphical extension, further development was discontinued in favor of the official GUI published in version 3.8
  • Anoc (Android) - user interface for GNU Octave. The calculations are carried out on a dedicated server for better performance

User interfaces as a web interface

Development history

time event
1988/1989 First discussions (textbook and software)
February 1992 Start of development
January 1993 Announcement on the web (version 0.60)
February 1994 First release (version 0.6.x to 1.xx)
December 1996 Second major release (version 2.0.x) with transfer to Windows ( Cygwin )
March 1998 Version 2.1
November 2004 Version 2.9 (jump in preparation for the release of 3.0)
December 2007 Release of version 3.0 (major update)
June 2009 Release of version 3.2 (major update)
February 8, 2011 Version 3.4.0 (major update)
February 22, 2012 Release of Octave 3.6.1 (major update)
December 31 2013 Release of Octave 3.8.0 (experimental GUI)
May 29, 2015 Version 4.0.0 (stable GUI and extended syntax for OOP )
November 14, 2016 Version 4.2.0 (gnuplot 4.4+)
April 30, 2018 Version 4.4.0 (new main direction for GUI QT Toolkit, FLTK secondary)
1st March 2019 Release of Octave 5.1.0 (QT5 preferred)

See also

Web links

Commons : GNU Octave Diagrams  - collection of images, videos, and audio files

Individual evidence

  1. GNU Octave 5.2.0 Released . January 31, 2020 (accessed February 9, 2020).
  2. ^ About-Page Octave. Retrieved October 27, 2017 (English).
  3. Matt Lee: High Priority Free Software Projects ( English ) www.fsf.org. March 2, 2012. Retrieved July 14, 2012: "GNU Octave, free software Matlab replacement"
  4. ^ Changelog for the High Priority Projects list
  5. https://www.gnu.org/software/octave/NEWS-1.html
  6. https://www.gnu.org/software/octave/NEWS-2.html
  7. https://www.gnu.org/software/octave/news/2012/12/31/news-archive.html
  8. https://www.gnu.org/software/octave/NEWS-3.html
  9. https://www.gnu.org/software/octave/NEWS-3.2.html
  10. https://www.gnu.org/software/octave/NEWS-3.4.html
  11. https://www.gnu.org/software/octave/NEWS-3.6.html
  12. https://www.gnu.org/software/octave/news/release/2013/02/21/octave-3.6.4-released.html
  13. https://www.gnu.org/software/octave/NEWS-3.8.html
  14. https://www.gnu.org/software/octave/news/release/2013/12/31/octave-3.8.0-released.html
  15. https://www.gnu.org/software/octave/news/release/2014/03/04/octave-3.8.1-released.html
  16. https://www.gnu.org/software/octave/NEWS-4.0.html
  17. https://www.gnu.org/software/octave/news/release/2015/05/29/octave-4.0.0-released.html
  18. https://www.gnu.org/software/octave/news/release/2016/03/23/octave-4.0.1-released.html
  19. https://www.gnu.org/software/octave/news/release/2016/07/02/octave-4.0.3-released.html
  20. Release Notes Version 4.2.0 ( Memento from November 19, 2016 in the Internet Archive )
  21. https://www.gnu.org/software/octave/NEWS-4.2.html
  22. https://www.gnu.org/software/octave/news/release/2017/02/24/octave-4.2.1-released.html
  23. https://www.gnu.org/software/octave/news/release/2018/03/13/octave-4.2.2-released.html
  24. https://www.gnu.org/software/octave/NEWS-4.4.html
  25. https://www.gnu.org/software/octave/news/release/2018/04/30/octave-4.4.0-released.html
  26. https://www.gnu.org/software/octave/news/release/2018/08/09/octave-4.4.1-released.html
  27. https://www.gnu.org/software/octave/NEWS-5.1.html
  28. https://www.heise.de/developer/meldung/Matlab-Alternative-GNU-Octave-in-Version-5-1-erschienen-4324927.html