There exists an OpenSource 'replacement' for the ubiquitous and popular propriety Matlab (MATrix LABoratory) called "Octave". It provides the user with a FREE numerical computing environment in the form of a structured computing environment with a language slightly reminescent of C.
The syntax is mostly compatible with Matlab's and if you know matlab, you'll be OK. It is apparently possible, with some planning, to write programs that is compatible with both Matlab and Octave.
It even has the ability to produce graphs. Where Matlab uses its own devices to produce graphical output, Octave falls back to sending instructions to Gnuplot and/or Grace, two well-known OpenSource graphing packages. Here's an example of such where I have entered the following lines:
[X,Y] = meshgrid(-8:.5:

;
R = sqrt(X.^2 + Y.^2)+eps;
Z = sin(R)./R;
surf(X,Y,Z)
into KOctave, a KDE front-end to Octave:

Dependencies: ATLAS (Automatically Tuned Linear Algebra Software) and GnuPlot (blas-atlas, lapack-atlas, gnuplot). If you are a KDE user, koctave might interest you as well.
Enjoy!
Riaan