Octave

From Coder Merlin
Within these castle walls be forged Mavens of Computer Science ...
— Merlin, The Coder

Octave[edit]

GNU Octave is software featuring a high-level programming language, primarily intended for numerical computations. Octave helps in solving linear and nonlinear problems numerically, and for performing other numerical experiments using a language that is mostly compatible with MATLAB.[1]

Preparation[edit]

In this exercise, you'll be generating graphic files by using Octave. In order to view these files, you'll save them in a special directory called "~www" which must be created in your home directory. The following instructions will instruct you on how to create this directory.

Create a directory to be served by the web server. If the directory already exists, no error will occur.

amrit-gupta@codermerlin:~$ mkdir --parents ~/www


Enter the directory.

amrit-gupta@codermerlin:~$ cd ~/www


Set the permissions so that the files can be accessed by the web server. If permission errors are encountered, re-execute this command.

amrit-gupta@codermerlin:~$ chmod -R a+rX ~/www

Graphing[edit]

Octave may be started by typing 'octave' in the shell. It's easiest to perform this in your www directory so the files that you create will be saved there.

liang-xue@codermerlin:~$ cd ~/www

liang-xue@codermerlin:~$ octave

You'll know you're in Octave when you see the Octave prompt.

octave:1> 

In order to enable graphics plotting, execute the following command:

octave:1> graphics_toolkit("gnuplot")

We'll begin with a 3-D example to demonstrate the power of Octave and the ease with which complex graphs can be created.

Examples[edit]

3-D Sombrero Plot[edit]

octave:2> tx = ty = linspace (-8, 8, 41)';

octave:3> [xx, yy] = meshgrid (tx, ty);

octave:4> r = sqrt (xx .^ 2 + yy .^ 2) + eps;

octave:5> tz = sin (r) ./ r;

octave:6> mesh (tx, ty, tz);

octave:7> xlabel ("tx");

octave:8> ylabel ("ty");

octave:9> zlabel ("tz");

octave:10> title ("3-D Sombrero plot");

We can now print the plot to a file with:

octave:11> print -dpng sombrero.png

It may take a few seconds to produce the file; be patient.

It's necessary to adjust the file's permissions to enable web server access. This may easily be performed from within octave using the following command:

octave:12> system("chmod -R a+rX ~/www")

When the prompt returns, the file may be viewed in a browser. Every user has a personal URL. Your file may be viewed here: You must be logged in to view your personal URL.

Random Numbers[edit]

We can produce results similar to those of throwing a six-sided die by using the rand function which returns a random value in the interval (0, 1).

octave:13> rand

Try executing this command several times and observe the results. In order to obtain integer values in the range from 1 to 6 we'll multiply the result of rand by 6, add 1, and then take the floor of this result.

octave:16> floor(6*rand + 1)

Try executing this command several times and observe the results.

References[edit]

  1. Gnu Octave. (2022, February, 10). In Wikipedia. https://en.wikipedia.org/wiki/GNU_Octave