I use GNU-Octave for my mathematical work because,
Octave is FREE. It is distributed under the terms of the GNU General Public License.
I prefer using command line interface. GNU Octave is almost compatible with Matlab ™. Although it is quite similar to Matlab ™, gnu-octave doesn’t offer the famous “Simulink” package. I treat it as a boon in disguise. I like to write the octave script as per my need and understanding so “simulink” is not really my cup of tea.
GNU Octave assumes that everything is a matrix. In short it can crunch numbers in groups and arrays. Linear algebra defines matrix arithmetic in a special way. Here the dimensions of the two operand matrices are crucial. GNU Octave can do all such operations. In addition to those, it can do element wise operations.
GNU Octave can handle complex numbers, so it is very handy for the electrical engineering related scripts.
Many “extensions” are available for the main GNU Octave. These are called as “packages”. Packages are similar to the toolboxes for Matlab. Packages for many science,engineering and mathematical topics can be very useful in dealing with specific domain. e.g. Control systems engineering package can handle complex math involved in automatic feedback control systems. I normally use packages like control , instrument-control, image and signal packages. Various other packages are available here.
While using GNU-Octave , the inbuilt help is worth using. In addition to the “help” command, commands like “doc” and “look for” are very useful. I always seek help from GNU-Octave forums, and use octave wiki.
While I use GNU-Octave , I learn a lot. This blog site is a log of my learning GNU-Octave.