GNU Octave Introduction and Resources

GNU Octave is a high-level programming environment for doing numerical calculations for science and engineering. It is the most obvious free alternative to MATLAB, because its programming language is compatible with it.

In addition to the base programming language, GNU Octave features a large set of tools for performing common numerical calculations. What's more, Octave can use functions written in C++ and Fortran.

The History of GNU Octave

GNU Octave was originally developed (starting around 1988) as an aid to teach college students about chemical reactor design. The designers were dissatisfied with using Fortran, because their students were spending too much time debugging coding and thus not learning the subject. So they wanted an interactive tool.

GNU Octave was first released in alpha form at the beginning of 1993. The first official release (Version 1.0) came the following year. In May 2015, Version 4.0 of Octave was released. It has a full graphical user interface and is available on all major operating systems.

Features

GNU Octave is far more than an equation solver.

  • Matrices are utilized as a standard data type.
  • The use of complex numbers is supported.
  • It includes a large mathematics function library.
  • It includes file name, variable, and function completion.
  • Unlimited command undo is available.
  • There are various options for organizing data into structures.
  • It provides support for argument and return lists as well as short-circuit Boolean, decrement, and increment operators.

Online Resources

  • GNU Octave: the official website for the application. It includes download links to all major operating systems.
  • GNU Octave Reference: the complete documentation provided for the software. You can also download an 800 page PDF of the reference.
  • GNU Octave Wiki: this is similar to the documentation, but as a wiki it is constantly changing based on moderators and contributors.
  • Programming Differences between Octave and MATLAB: this article is part of the MATLAB Programming wikibook. It provides a good overview of the differences between these very similar products.

Books

  • GNU Octave Primer for Beginners (2016) by S Nakamura: this beginner guide has exercise problems and answers for running through the software. Chapters include topics such as commands, programming, branch statements, how to plot, bar charts, and much more.
  • GNU Octave Beginner's Guide (2011) by Jesper Schmidt Hansen: a good choice for visual learners. It's similar to the Nakamura book, but filled with more screenshots and step-by-step examples, making it perfect for the total beginner.
  • GNU Octave 4.0 Reference Manual: Free Your Numbers (2015) by Eaton, et al: for those who want the official reference in book form. Volume 1 starts with simple Octave examples and goes on to cover topics like the Java interface and packages. Volume 2 contains information on everything from creating permutation matrices to managing explicit and implicit conversions.
  • Foundation of Numerical Analysis: Implementation with GNU Octave/MATLAB (2016) by S Nakamura: this book covers areas like linear algebra, polynomials, polynomial interpolations, and numerical integrations.

Courses

Communities

  • Help-Octave: this is an active mailing list for contributing developers. But you can sign up for it if you'd like to send in your own thoughts or learn from the this very experience community.
  • Freenode Channel: if you're looking to chat with GNU Octave developers from all over the world, this is the place to do it. Freenode covers all sorts of categories, so you'll need to go to the #octave channel.
  • Google Plus: while this community isn't meant for direct support, it's good for finding out about updates and other news.

Should You Learn GNU Octave?

GNU Octave is not a complete replacement for MATLAB. But it is close. What's more, GNU Octave code is mostly MATLAB compatible. So moving from GNU Octave to MATLAB should be easy. If your future involves science or engineering, GNU Octave is a great tool to learn.


Further Reading and Resources

We have more guides, tutorials, and infographics related to mathematical and scientific computing:

What Code Should You Learn?

Confused about what programming language you should learn to code in? Check out our infographic, What Code Should You Learn? It not only discusses different aspects of the languages, it answers important questions such as, "How much money will I make programming Java for a living?"