2010-07-18 11 views
5

Estoy tratando de reescribir una secuencia de comandos MATLAB bastante simple en Haskell. Estoy buscando un equivalente de fsolve (buscador de raíz numérica) de MATLAB y ode15s (uno de los solucionadores de ODE). En Hackage parece haber un paquete de interfaz MATLAB. ¿Es este el camino a seguir (en términos de velocidad, simplicidad, etc.) o hay otros paquetes que serían más adecuados?¿Qué paquete de Haskell contiene una función más similar a "fsolve" de MATLAB?

Gracias, Ben

Respuesta

7

que no han utilizado la interfaz de MATLAB, pero he tenido buenos resultados con hmatrix. Exporta funciones GSL, incluidos los solucionadores de ODE y el descubrimiento de raíz multidimensional no lineal, que creo que hará lo que requiera. Parece que ode15s es comparable a Numeric.GSL.ODE.odeSolveV con Gear1 o Gear2 como método, aunque uno de los otros métodos puede ser más adecuado para su problema. También exporta la interfaz LAPACK, que es muy útil.

Que es más fácil de construir/instalar depende de su sistema operativo y las bibliotecas disponibles. En Linux o Unix deberían ser igualmente simples, pero si estás en Windows la instalación de cualquiera de ellos podría ser dolorosa. Si usa hmatrix, podría ejecutar el software en sistemas sin Matlab, lo que podría ser un beneficio.

Encontré hmatrix fácil de usar incluso sin experiencia previa de GSL o LAPACK; está bien documentado y tiene muy buen rendimiento. A partir de una inspección superficial, parece que necesitaría estar familiarizado con la API C de Matlab para hacer un buen uso de los enlaces.

+1

Gracias! He estado leyendo el tutorial muy útil: http://code.haskell.org/hmatrix/ Parece ser justo lo que necesito. :) – Ben

Cuestiones relacionadas