View Full Version : Matrici e vettori, quale linguaggio?
Albitexm
28-06-2009, 03:07
Devo scrivere un programma lavorando principalmente su vettori e matrici.
Questo codice, essenzialmente manipola vettori e matrici e ripete con loop consecutivi le operazioni. Secondo voi qual'è il linguaggio di programmazione più adatto per fare questo tipo di lavoro? C, C++, Fortran o altro?
Albitexm
28-06-2009, 22:49
Matlab ?
ci avevo pensato anche io. Sicuramente dal punto di facilità di scrittura
è meglio del C/C++ per queste cose. La matrice la devi 'dichiarare' e basta(quasi), mentre con i C devi "costruirla".
Ma a livello di prestazioni? Voi m'insegnate (vedi sezione quale linguaggio scegliere) che i linguaggi interpretati sono più lenti.
D'altronde è anche vero che il C++ è pieno di opzioni e sfumature che a questo scopo non mi servono assolutamente nulla...
:what:
forse come al solito aveva ragione Galileo: "provare una cosa , almeno per tre volte, verificandone i risultati".
!k-0t1c!
29-06-2009, 01:38
Mathematica. Ottime performance, un sacco di operazioni già implementate, sintassi semplice.
cdimauro
29-06-2009, 07:40
Ci sarebbe anche Python con la libreria SciPy (http://www.scipy.org/). Soluzione "gettonata" persino da matematici... :D
Io direi che per la matematica va bene qualsiasi linguaggio...
per C++ ci sono un mare di librerie matematiche, c'è la Sony Vector Math ottimizzata per Cell e SIMD, c'è CML che implementa di tutto per qualsiasi dimensione di matrici e vettori, c'è GMTL, insomma ce ne sono a centinaia e tutte piuttosto concorrenziali :D
Ovviamente dipende tutto dalla tua preferenza per prestazioni<->usabilità :D
Per quanto CML (che uso io stesso) sia usabilissima... per di più è header-only.
Non c'è una risposta definitiva. Se cerchi la semplicità di scrittura degli algoritmi e prestazioni discrete Matlab può andare bene.
Se vuoi andare oltre con le prestazioni, puoi testare varie librerie per C e C++ e confrontarle con il risultato ottenuto con Matlab.
Inoltre certe volte può essere più importante un algoritmo efficiente che il metodo con cui si fanno i calcoli. Soprattutto quando si lavora con le matrici è molto importante studiare l'algoritmo più efficiente per diminuire la complessità dei calcoli.
Imho implementa comunque l'algoritmo con Matlab o con Mathematica, a questo punto usalo come riferimento per gli altri test ;)
Albitexm
01-07-2009, 23:44
Non c'è una risposta definitiva.
Imho implementa comunque l'algoritmo con Matlab o con Mathematica, a questo punto usalo come riferimento per gli altri test ;)
Questo mi sembra una delle soluzioni migliori.
Albitexm
01-07-2009, 23:53
Io direi che per la matematica va bene qualsiasi linguaggio...
per C++ ci sono un mare di librerie matematiche, c'è la Sony Vector Math ottimizzata per Cell e SIMD, c'è CML che implementa di tutto per qualsiasi dimensione di matrici e vettori, c'è GMTL, insomma ce ne sono a centinaia e tutte piuttosto concorrenziali :D
Ovviamente dipende tutto dalla tua preferenza per prestazioni<->usabilità :D
Per quanto CML (che uso io stesso) sia usabilissima... per di più è header-only.
Grazie per i riferimenti.
Ma perchè il fortran non lo considera mai nessuno?
Ma perchè il fortran non lo considera mai nessuno?
E' veramente buono dal punto di vista delle prestazioni, ma con l'utilizzo di librerie esterne pareggi sicuramente le prestazioni del Fortran, anche perché magari le librerie sono scritte proprio in Fortran :D
Grazie per i riferimenti.
Ma perchè il fortran non lo considera mai nessuno?
Non lo considera quasi nessuno perche' e' poco usato (purtroppo), e c'e' la tendenza (soprattutto dai piu' giovani o da chi non lo conosce a fondo) a considerarlo sorpassato, cosa assolutamente falsa. Consiglio a chi fosse interessato di frequentare il newsgroup comp.lang.fortran per farsi un'idea.
Io te lo consiglio (dal F90 in poi) anche perche' la gestione delle matrici avviene in modo molto intuitivo. BTW il compilatore gfortran e' gratuito e disponibile in Windows, Linux etc.
Come diceva Cionci io partirei da Matlab e poi implementerei in Fortran (o qualche altro linguaggio) nel caso di inefficienze.
ciao
tiMo
Albitexm
17-07-2009, 18:57
Non lo considera quasi nessuno perche' e' poco usato (purtroppo), e c'e' la tendenza (soprattutto dai piu' giovani o da chi non lo conosce a fondo) a considerarlo sorpassato, cosa assolutamente falsa. Consiglio a chi fosse interessato di frequentare il newsgroup comp.lang.fortran per farsi un'idea.
Io te lo consiglio (dal F90 in poi) anche perche' la gestione delle matrici avviene in modo molto intuitivo. BTW il compilatore gfortran e' gratuito e disponibile in Windows, Linux etc.
Come diceva Cionci io partirei da Matlab e poi implementerei in Fortran (o qualche altro linguaggio) nel caso di inefficienze.
ciao
tiMo
BTW nonlo sapevo, è un'informazione utile. Grazie
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.