|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Sep 2005
Messaggi: 89
|
Consiglio scelta linguaggio di programmazione
Carissimi, vi scrivo per un consiglio...
per via della tesi mi trovo a dover scrivere un programma per risolvere un problema matematico altamente complesso, che implica la risoluzione di sistemi di equazioni differenziali alle derivate parziali e roba simile. Potete consigliarmi il linguaggio di programmazione (C, C++, fortran, java, matlab o quant'altro) che meglio si addice alla stesura di questo programma. Concludo dicendo che apparte qualche piccola base di fortran77, sono all'asciutto riguardo alla conoscienza di qualsiasi linguaggio, quindi qualsiasi sia la scelta dovrei sempre impararlo. Quello che più mi preme è fare un buon lavoro, professionalmente valido ma soprattutto vorrei imparare qualcosa che mi possa servire in futuro. Cosa consigliate allora? Grazie mille a tutti per l'aiuto e la pazienza! Ultima modifica di Mazuego75 : 26-10-2006 alle 10:55. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
sono semisicuro che per problemi matematici meglio del matlab ci sai davvero poco o niente....
__________________
My gaming placement |
|
|
|
|
|
#3 | |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
Quote:
anche io credo che dovresti iniziare a vedere cosa ti permette di fare questo matlab (che purtroppo non conosco), ma il fatto che in futuro matlab non potrà più tornarti utile non deve essere un problema nella tua scelta di ora; se pensi che in futuro userai spesso Java, per ora fregatene e impara matlab sempre che sia valido per quello che devi fare eh... ribadisco che non conosco matlab, solo sentito nominare. |
|
|
|
|
|
|
#4 | |
|
Member
Iscritto dal: Sep 2005
Messaggi: 89
|
Ok... vada per matlab... se comunque servisse un linguaggio vero e proprio... cosa consigliate...fortran77, fortran90, C, C++? Cmq grazie per il consiglio
Quote:
|
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jun 2006
Messaggi: 1077
|
Se non è necessario l'utilizzo di un linguaggio di programmazione vero e proprio la scelta da fare è il Matlab. Non c'è dubbio.
|
|
|
|
|
|
#6 |
|
Member
Iscritto dal: Sep 2005
Messaggi: 89
|
Il fatto è che il programma che scriverò dovrà essere poi usato all'interno di labview che io non conosco assolutamente come programma... Quindi non so quale è meglio.... voi che dite? Cmq penso che a questo punto andrò su matlab...
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Jun 2006
Messaggi: 1077
|
Il labview ti permette di interagire facilmente con dei programmi in matlab, quindi questo non è un problema. Comunque perchè non chiedi al tuo relatore? Lui certamente conosce di preciso quello che devi fare è può consigliarti meglio. Inoltre a quanto intuisco la programmazione non è il tuo settore di studio, quindi penso che le uniche scelte possibili siano matlab e labview. Utilizzare solo il labview (senza il matlab) per fare calcoli numerici è possibile, ma tutto dipende dalla complessità e pesantezza dei calcoli da fare.
Ribadisco conviene che ti fai consigliare dal tuo relatore o altrimanti installati il matlab e il labview e fatti un idea tu di cosa permettono di fare. Ultima modifica di mattia.pascal : 24-09-2006 alle 23:16. |
|
|
|
|
|
#8 |
|
Member
Iscritto dal: Sep 2005
Messaggi: 89
|
Hai perfettamente colto nel segno pascal. Io sono uno studente di ingegneria aerospaziale ed ho fatto un solo esame di informatica all'interno del quale ho studiato solamente il Fortran. Per quanto riguarda il mio relatore, non penso che mi possa dare una mano, anche perchè mi ha detto "il linguaggio fai come vuoi" e detto fra noi non penso che lui ne capisca un granchè... per quanto riguarda la difficoltà di quello che devo fare, ti posso dire che il problema da risolvere è altamente complesso. Penso quindi che, con il bene placido del mio relatore, mi butterò su matlab e sulla sua interconnessione con LabView. Penso che sia la cosa migliore no? In ogni caso un linguaggio di programmazione lo devo pur sempre imparare.... Grazie cmq per l'aiuto e la pazienza.... se avete altri consigli bene vengano.....
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Secondo me hai due possibilità: MatLab o Fortran.
Matlab se ti serve uno strumento per descrivere velocemente il tuo problema a livello algoritmico, perché ha un linguaggio molto semplice ed estremamente orientato alla manipolazione di oggetti con una sintassi filo-matematica. Scrivere l'algoritmo sotto forma di codice sarà quindi un'operazione ben più veloce di qualunque altro linguaggio "non scientifico". Fortran, invece, se ti serve uno strumento per risolvere velocemente (in termini di tempo di calcolo) il tuo problema: i compilatori Fortran sono quelli che generano il miglior codice per questo tipo di problemi, e inoltre per quest linguaggio esiste un'infinità di librerie già belle e pronte e ottimizzate per la risoluzione di problemi scientifici. Scrivere un algoritmo produrrà un codice che completerà prima il lavoro. La "complessità" del tuo problema è quindi da meglio definire. Devi decidere, insomma, fra facilità di implementazione (minor tempo per scrivere l'algoritmo) o velocità di esecuzione (minor tempo di esecuzione del codice per arrivare alla soluzione).
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
#10 | |
|
Member
Iscritto dal: Sep 2005
Messaggi: 89
|
Quote:
|
|
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Se ti serve soltanto per la tua tesi di laurea, per implementare l'algoritmo velocemente e in forma più leggibile (anche da presentare: è decisamente più comprensibile, anche a chi mastica soltanto matematica e non informatica, rispetto a un programma in Fortran), ti consiglierei MatLab.
Se invece il problema è "tosto" computazionalmente, quindi richiede una notevole potenza di calcolo per essere completato (leggi: lanci il programma adesso e torni la prossima settimana a controllare che abbia finito), andrei a occhi chiusi su Fortran. EDIT: mi rendo conto di non essere stato abbastanza esaustivo. Chiarisco meglio. Per valutare quale delle due scelte, bisognerebbe ovviamente effettuare una stima della complessità computazionale del tuo problema. Bisognerebbe quindi conoscere una massima del numero di operazioni necessarie per arrivare alla soluzione del problema. In questa fase non è importante la tua conoscenza dell'informatica: è sufficiente, ad esempio, conoscere la dimensione delle matrici in gioco e delle operazioni da effettuare su di esse. Se hai 2 matrici m*n e n*o da moltiplicare, sempre per fare un altro esempio, devi calcolare quante somme e prodotti saranno necessari. Se queste operazioni si devono ripete un certo numero di volte, sarà necessario tenerlo in considerazione per il calcolo del numero di operazioni totale. Quindi, in definitiva, se il prodotto delle due matrici richiederà x somme e y prodotti, e l'operazione dev'essere ripetuta z volte, grossolamente possiamo dire che la complessità computazionale dal punto di vista delle operazioni da compiere per risolvere il tuo problema sarà dato da z * (x + y). Nota questa stima (molto) approssimativa, potrai cercare (sempre approssimativamente) di capire quanto impiegherebbe un computer moderno per portarla a termine. Se prendiamo un P4 a 3Ghz, sappiamo che in linea teorica è in grado di elaborare 12 miliardi di operazioni al secondo, mentre un Athlon64 a 2Ghz arriva a circa 8 miliardi al secondo, giusto per fare due esempi. Adesso, avendo tutti i dati necessari, potrai fare una stima (MOLTO approssimativa) di quanto tempo richiederebbe il tuo problema per essere risolto. Detto ciò, sta a te decidere il da farsi, considerando che usando il Fortran ti potrai avvicinare abbastanza alla stima di cui sopra, mentre MatLab richiederebbe da uno a due ordini di grandezza quel tempo. Per contro, il tempo per scrivere l'algoritmo con MatLab può facilmente essere di un ordine di grandezza inferiore rispetto al Fortran, visto che è un linguaggio molto semplice e particolarmente orientato alla formalizzazione di problemi matematici. Penso sia tutto: la palla passa a te adesso. Magari consultati col tuo professore per cercare di avere la stima di cui sopra, e poi tira le somme e scegli qual è la strada migliore da seguire.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys Ultima modifica di cdimauro : 28-09-2006 alle 16:35. |
|
|
|
|
|
#12 |
|
Member
Iscritto dal: Sep 2005
Messaggi: 89
|
Sei un grande!!! Grazie mille ti farò sapere! Grazie ancora del tempo che mi hai dedicato! A presto!
|
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Di niente: mi fa sempre piacere aiutare qualcuno.
Buono studio e buon lavoro.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
#14 |
|
Member
Iscritto dal: Sep 2005
Messaggi: 89
|
Scusami... vorrei approfittare ancora della tua disponibilità: che differenza c'è tra fortran 77 e fortran 90 (mi sembra che esiste anche il 95)? Quale mi consigli di usare e soprattutto quale compilatore mi consigli di usare? Grazie mille!
|
|
|
|
|
|
#15 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Il fortran 90 e 95 (ma c'è anche il 2003) introducono non poche migliorie al linguaggio, che quindi diventa più flessibile, più "ricco" di costrutti ad alto livello, per cui diviene più facile (e si perde meno tempo) per il programmatore formalizzare l'algoritmo.
Per questi motivi, se è possibile, usa sempre l'ultima versione (il 2003 in questo caso). Fra i migliori compilatori Fortran al mondo ci sono quelli di Intel: se è possibile usa questi (magari all'università saranno disponibili).
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys Ultima modifica di cdimauro : 02-10-2006 alle 09:39. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:17.



















