View Full Version : Miglior linguaggio per gestioni matrici
fabbius69
27-01-2011, 14:49
Io spesso elaboro sistemi di numeri, faccio uso di matricci con centinaia di calcoli.
Ora attualmente uso il delphi come linguaggio, ma la velocita di calcolo non mi soddisfa.
Quale linguaggio mi consigliate da provare, per velocita di calcolo ?
Grazie
dipende cosa ci fai con il linguaggio, e cosa intendi con linguaggio, molti ambienti hanno una loro sintassi, spesso simile al C, come Matlab o Mathematica della Wolfram.
dipende se devi operare dentro un ambiente di un software di matematica, quindi con anche la possibilità di lavorare su algoritmi, elaborazione delle immagini, grafici, etc etc, oppure fare programmi con magari dell'algebra lineare o altro come accade spesso per i videogiochi ad esempio.
di sicuro il supporto che ha il C e il C++ e il Java, è raro da ritrovare in altri linguaggi; ma suppongo ti serva qualcosa con un livello di astrazione maggiore.
fabbius69
27-01-2011, 19:08
Di solito faccio ordinamenti cancellazione ecc sempre di matrici, quindi algebra lineare penso?
Cosa mi consigli?
Di solito faccio ordinamenti cancellazione ecc sempre di matrici, quindi algebra lineare penso?
Cosa mi consigli?
si, ma l'importante è lo scopo, ti serve creare programmi o verificare i tuoi oggetti matematici?
una cosa è dire "voglio simulare il comportamento delle funzioni in questa matrice" un altra è dire "sfrutto questa matrice per far muovere un personaggio o qualcosa in un ambiente virtuale da me programmato", non so se mi spiego.
Che io sappia Fortran è uno dei linguaggi usati in ambito scientifico perché ritenuto performante.
Comunque prova ad usare il C classico.
fabbius69
27-01-2011, 21:49
si, ma l'importante è lo scopo, ti serve creare programmi o verificare i tuoi oggetti matematici?
una cosa è dire "voglio simulare il comportamento delle funzioni in questa matrice" un altra è dire "sfrutto questa matrice per far muovere un personaggio o qualcosa in un ambiente virtuale da me programmato", non so se mi spiego.
Esempio: faccio delle simulazione alla roulette per vedere se una teoria di calcoli funziona, inserisco un archivio di numeri du più matrici e le confronto tra di loro per vedere quanti elementi hanno in comune.
Questo cosa significa?
Esempio: faccio delle simulazione alla roulette per vedere se una teoria di calcoli funziona, inserisco un archivio di numeri du più matrici e le confronto tra di loro per vedere quanti elementi hanno in comune.
Questo cosa significa?
che ti serve un ambiente per studiare i tuoi oggetti matematici e non un linguaggio di programmazione per fare programmi di matematica.
qualcosa come
http://eumat.sourceforge.net/
http://www.gnu.org/software/octave/
http://www.scilab.org/
questi sono gratuiti e molto affidabili e diffusi, sono software di matematica, puoi farci girare e studiare praticamente qualsiasi oggetto matematico.
tra quelli a pagamento ci sono Matlab e Mathematica, forse quelli a pagamento hanno una sintassi più facile ed una curva di apprendimento meno ripida, ma dipende molto dalla tua preparazione e dalla tua predisposizione, potresti benissimo trovare i primi 3 molto più facili da usare.
ti consiglierei scilab per iniziare.
clockover
29-01-2011, 00:54
Magari dico una cavolata ma stasera mi è venuta in mente una cosa. Forse CUDA potrebbe fare al caso tuo. Dato che si parla di GPU il calcolo matriciale è il suo pane. Forse potresti trovare quello che fa per te. Purtroppo però è disponibile solo per alcune schede NVIDIA.
fabbius69
29-01-2011, 07:36
che ti serve un ambiente per studiare i tuoi oggetti matematici e non un linguaggio di programmazione per fare programmi di matematica.
qualcosa come
http://eumat.sourceforge.net/
http://www.gnu.org/software/octave/
http://www.scilab.org/
questi sono gratuiti e molto affidabili e diffusi, sono software di matematica, puoi farci girare e studiare praticamente qualsiasi oggetto matematico.
tra quelli a pagamento ci sono Matlab e Mathematica, forse quelli a pagamento hanno una sintassi più facile ed una curva di apprendimento meno ripida, ma dipende molto dalla tua preparazione e dalla tua predisposizione, potresti benissimo trovare i primi 3 molto più facili da usare.
ti consiglierei scilab per iniziare.
ho scaricato sia scilab che una trial di Matlab, il problema che mi servirebbe una guida.
Volevo inziare a provare a scrivere poche righe per vedere la velocita di elaborazione ma non so neanche da dove cominciare.
un consiglio
Grazie
Magari dico una cavolata ma stasera mi è venuta in mente una cosa. Forse CUDA potrebbe fare al caso tuo. Dato che si parla di GPU il calcolo matriciale è il suo pane. Forse potresti trovare quello che fa per te. Purtroppo però è disponibile solo per alcune schede NVIDIA.
a parte il fatto che non è proprio quello che cerca, ma CUDA è uno dei linguaggi più inutili della storia, funziona solo sotto Nvidia, con particolari schede Nvidia e particolari driver Nvidia, se ti va di perdere tempo e denaro puoi usarlo tranquillamente; OpenCL è molto meglio.
il problema vero è che con CUDA basta essere programmatori, anche scapestrati e poco smaliziati, con OpenCL devi essere un po' ingegnere e un po' programmatore, ma di sicuro i risultati ottenuti con OpenCL sono migliori in tutto.
ho scaricato sia scilab che una trial di Matlab, il problema che mi servirebbe una guida.
Volevo inziare a provare a scrivere poche righe per vedere la velocita di elaborazione ma non so neanche da dove cominciare.
un consiglio
Grazie
basta zio Google http://www.google.it/search?hl=it&source=hp&q=scilab+matrici&aq=f&aqi=&aql=&oq= anche per questo ti ho consigliato scilab, lo usano in molti e ci sono molte guide e risorse.
clockover
29-01-2011, 11:55
a parte il fatto che non è proprio quello che cerca, ma CUDA è uno dei linguaggi più inutili della storia, funziona solo sotto Nvidia, con particolari schede Nvidia e particolari driver Nvidia, se ti va di perdere tempo e denaro puoi usarlo tranquillamente; OpenCL è molto meglio.
il problema vero è che con CUDA basta essere programmatori, anche scapestrati e poco smaliziati, con OpenCL devi essere un po' ingegnere e un po' programmatore, ma di sicuro i risultati ottenuti con OpenCL sono migliori in tutto.
Si vabbè io l'ho buttata li così... non ho mai provato ne CUDA ne OpenCL
Comunque ho dato un input su cui lavorare, niente di che in particolare..
http://numpy.scipy.org/ ;)
http://www.scipy.org/PerformancePython
Se sfoci anche in calcoli statistici, esiste il linguaggio R pensato proprio per quest'ambito:
http://www.r-project.org/
:)
fabbius69
29-01-2011, 22:30
Ora sono ancora più confuso, prima di iniziare con un nuovo linguaggio vorrei essere sicuro.
:confused: :confused:
Ora sono ancora più confuso, prima di iniziare con un nuovo linguaggio vorrei essere sicuro.
:confused: :confused:
vai tranquillo con scilab, lo usano anche nelle università e non in pochi, R è un linguaggio limitato, come detto anche da chi te lo ha consigliato, non che non sia buono, è ottimo e affidabile ed è un progetto di vecchia data, ma non te l'ho citato proprio perché serve solo a particolari studi, scilab invece è una applicazione più vasta e il suo linguaggio ha molto in comune con altri ambienti.
vai tranquillo con scilab, lo usano anche nelle università e non in pochi, R è un linguaggio limitato, come detto anche da chi te lo ha consigliato, non che non sia buono, è ottimo e affidabile ed è un progetto di vecchia data, ma non te l'ho citato proprio perché serve solo a particolari studi, scilab invece è una applicazione più vasta e il suo linguaggio ha molto in comune con altri ambienti.
semmai è il contrario, quasi tutto quello che puoi fare con Scilab lo puoi fare anche con R, in più R ha quasi 3000 librerie di routine di tutti i tipi.
http://rm.mirror.garr.it/mirrors/CRAN/web/views/
detto questo per quello che devi secondo me uno dei due va benissimo.
fabbius69
31-01-2011, 13:36
Io programmando in Pascal ed un pochino in delphi, quale linguaggio mi consigliate di quelli illustrati più che altro per la sintassi simile.
Leggendo un po scilab ho dei dubbi sulle ruotine e non ho letto manuali con esempi spiegati.
Tipo in un ciclio for come faccio a capire quante operazioni ci sono dentro al ciclo, non esistendo il begin end.
Grazie
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.