2010-07-18 9 views
5

Sto tentando di riscrivere uno script MATLAB abbastanza semplice in Haskell. Sto cercando un equivalente di FOLVLE MATLAB (finder root numerico) e ode15s (uno dei solutori ODE). Su Hackage sembra esserci un pacchetto di interfaccia MATLAB. È questa la strada da percorrere (in termini di velocità, semplicità, ecc.) O ci sono altri pacchetti che sarebbero più adatti?Quale pacchetto Haskell contiene una funzione più simile a "fsolve" di MATLAB?

Grazie, Ben

risposta

7

non ho usato l'interfaccia MATLAB, ma ho avuto buoni risultati con hmatrix. Esporta le funzioni GSL, inclusi i risolutori ODE e la ricerca di radici multidimensionali non lineari, che penso faranno quello che ti serve. Sembra che l'ode15 sia paragonabile a Numeric.GSL.ODE.odeSolveV con Gear1 o Gear2 come metodo, sebbene uno degli altri metodi possa essere più adatto al tuo problema. Esporta anche l'interfaccia LAPACK, che è molto utile.

Quale è più facile da compilare/installare dipende dal sistema operativo e dalle librerie disponibili. Su Linux o Unix dovrebbero essere ugualmente semplici, ma se sei su Windows l'installazione di entrambi potrebbe essere dolorosa. Se usi hmatrix potresti eseguire il software su sistemi senza Matlab che potrebbe essere un vantaggio.

Ho trovato hmatrix facile da usare anche senza precedenti esperienze GSL o LAPACK; è ben documentato e ha ottime prestazioni. Da un'ispezione superficiale sembra che avresti bisogno di familiarizzare con l'API C di Matlab per fare buon uso dei binding.

+1

Grazie! Ho letto il tutorial molto utile: http://code.haskell.org/hmatrix/ Sembra essere proprio quello di cui ho bisogno. :) – Ben

Problemi correlati