GNU Octave is one of the open-source numerical-software packages which is greatly known for its compatibility with commercial package MATLAB. It solves linear and nonlinear problems numerically, and for performing other numerical experiments using a language that is mostly compatible with MATLAB. Octave has been built with great MATLAB compatibility in mind so as it treats incompatibility with MATLAB as a bug; therefore, it could be considered a software clone of MATLAB itself. Being open-source and free it has become one of the most popular software packages in research.

In this series, we are going to look into GNU Octave starting from a beginner’s perspective, i.e. from installation to running scripts. We will implement and solve multiple algorithm examples to increase the understanding of the reader by practice. We strongly encourage to install the package and practice example sets by self (without looking at solutions) to enhance the learning experience. For extended learning beyond this article series, one can refer to GNU Octave PDF documentations or web documentation.

### Target Audience

- Students who have started undergraduate courses and requirements to develop a better understanding of mathematical algorithm development and testing in a short span of time.
- Engineers starting to work in an industry requiring multiple data modeling analysis and representation in the least amount of time.
- Refresher for those who are willing to explore an open-source alternative to MATLAB.
- Fresher students/engineers who wish to use MATLAB at a later stage but don’t want to deal with licensing right now.
- Newbie Innovator who want an easy solution to solve mathematical complexities in their path without going into details of some high-level language.

## Introduction

Octave was originally developed as companion software to an undergraduate coursebook on chemical reactor design. Lead designer Dr. J.W. Eaton later redesigned the complete product to utilize the complexities of software and usefulness is enhanced, which is commonly used in industry and academia. It is particularly designed for matrix computations: solving simultaneous equations, computing eigenvectors and eigenvalues and so on. In many real-world engineering problems, the data can be expressed as matrices and vectors. It can be thought of as a very powerful, programmable, graphical calculator. Octave is designed to solve mathematical problems numerically, that is by calculating values in the computer’s memory. This means that it can’t always give an exact solution to a problem, and it should not be confused with programs such as Mathematica or Maple, which give symbolic solutions by doing the algebraic manipulation.

### Why Octave?

There are many languages capable of solving all the engineering issues. C++, Java, and Python are the industry standard to create software but when it comes to prototyping and concept development phase, main requirement is implementation speed i.e. time required to implement the algorithm. MATLAB/Octave is specially designed to solve this kind of problem, perform calculations, and display the results. Although final implementation is still done in other high-level languages. 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.

#### Use Cases

- Research and concept development in the industry as well as academia
- Getting familiar to MATLAB without purchasing the license
- Developing and testing mathematical algorithms

#### e.g.

- NASA uses this package to develop spacecraft docking systems
- Jaguar racing use it to display and analyze data transmitted from their Formula 1 cars
- Sheffield University uses it to develop software to recognize cancerous cells.

It makes it very easy to write mathematical programs quickly, and display data in a wide range of different ways.

## Installing Octave

### Source

The latest released version of Octave is always available from:

Building instructions can be easily found on the wiki page of the software. Executable versions of GNU Octave for GNU/Linux, Windows, BSD, and macOS systems are provided by the individual distributions. Distributions known to package Octave include Debian, Ubuntu, Fedora, Gentoo, OpenSUSE, FreeBSD, OpenBSD macOS and windows native binaries. These packages are created by volunteers hence the delays between an Octave source release and the availability of a package for a particular distribution varies.

### Octave Forge

It is the central location for the collaborative development of packages for Octave. This repository expands Octave’s core functionality by providing field specific features via Octave’s package system e.g. Image and signal processing, fuzzy logic, instrument control, and statistics… and more! generally, installers bundle several Octave Forge packages so they don’t have to be installed separately. If some required package is not installed by default they can be added later via this repository.

- GNU Octave – Scientific Programming Language
- Octave:1> Getting Started
- Octave:1> Variables and Constants
- Octave:1> Expressions and operators
- Octave:1> Built-In Functions, Commands, and Package
- Octave:2> Vectors and Matrices Basics
- Octave:2> Scripts and Algorithm
- Octave:2> Conditional Execution
- Octave:2> Functions
- Octave:3> File Operations
- Octave:3> Data Visualization