I highly recommend SciPy - it is free, looks like Matlab (but is Python), and takes only a few lines to get it done! scipy.org/Cookbook/…
–
JobFeb 20 '11 at 1:51

1

MATLAB. Numerical solution of systems of differential equations is a solved problem, and has been for quite some time. If your objective is to crunch your numbers, use the tools that have been developed over the last several decades to do just that. Don't reinvent the wheel, no matter how much fun it might be. You will save yourself a lot of time and aggravation.
–
John R. StrohmJan 9 '14 at 14:59

First of all, I want to make the unusual statement that for numerical computations, high-level languages are much more useful in the long run than low-level languages. Let me loosely quote a researcher from Fraunhofer Institut working in numerical simulations used in weather forecasts.

In the last decade, CPUs became 1000 times faster while algorithms became 1000*1000 faster. This means, that today's algorithms running on yesterday's CPUs will beat yesterday's algorithms running on today's CPUs by a factor of 1000.

Obviously, there is much more parameters to take into account as CPU speed and algorithms, like disks or RAM, but that statement helps us to undestand that, if you choose a low-level language, you focus on the wrong factor (1000 instead of 1000*1000).

Of course, given any specific numerical algorithm one can expect C or Fortran to beat OCaml or Common Lisp by a (actually not that) large factor. But if you are actually interested in numerical problems and are willing to improve algorithms, you should then pick a high-level language that will allow you to express your ideas at a high level and to easily improve algorithms.

As a side note, if you consider writing numerical code in OCaml, you should definitely know about how OCaml pass parameters to functions, inline functions and unbox floats. All of this is detailed in Xavier Leroy's notes.