Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Which Haskell package contains a function most similar to MATLAB's "fsolve"?

Tags:

haskell

I'm trying to rewrite a fairly simple MATLAB script in Haskell. I'm looking for an equivalent to MATLAB's fsolve (numerical root finder) and ode15s (one of the ODE solvers). On Hackage there seems to be a MATLAB interface package. Is this the way to go (in terms of speed, simplicity, etc.) or are there other packages that would be more suitable?

Thanks, Ben

like image 864
Ben Avatar asked Jul 18 '10 21:07

Ben


1 Answers

I haven't used the MATLAB interface, but I've had good results with hmatrix. It exports GSL functions, including ODE solvers and nonlinear multidimensional root finding, which I think will do what you require. It looks like ode15s is comparable to Numeric.GSL.ODE.odeSolveV with either Gear1 or Gear2 as the method, although one of the other methods may be better suited to your problem. It also exports the LAPACK interface, which is very useful.

Which is easier to build/install depends upon your OS and available libraries. On Linux or Unix they should be equally simple, but if you're on Windows installation of either could be painful. If you use hmatrix you'd be able to run the software on systems without Matlab which could be a benefit.

I found hmatrix easy to use even with no prior GSL or LAPACK experience; it's well-documented and has very good performance. From a cursory inspection it appears that you'd need to be familiar with Matlab's C API to make good use of the bindings.

like image 60
John L Avatar answered Sep 27 '22 23:09

John L