+ All Categories
Home > Documents > Seconda Lezione SoftwareFisica Opensource

Seconda Lezione SoftwareFisica Opensource

Date post: 11-Aug-2015
Category:
Upload: bestpolar
View: 85 times
Download: 0 times
Share this document with a friend
Description:
Corso informativo sulle possibilità offerte in ambito Software Libero (Open Source) di trumenti software per lo studio della fisica.
111
Lezione 2: open-source scientifico Alessio Cimarelli Programmazione Librerie Compilatori Debugging Computazione simbolica e numerica Computazione simbolica Computazione numerica Analisi statistica Simulazione di circuiti Analisi dati e plotting Analisi dati Plotting (and reverse) E tanto altro. . . gnuplot Conclusioni disponibile su magentawww.accatagliato.org Lezione 2: open-source scientifico Seconda lezione del minicorso Open-source per fisici Alessio jenkin Cimarelli [email protected] 19 novembre 2009
Transcript
Page 1: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

disponibile su magentawww.accatagliato.org

Lezione 2: open-source scientificoSeconda lezione del minicorso Open-source per fisici

Alessio jenkin [email protected]

19 novembre 2009

Page 2: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

Sommario

1 ProgrammazioneLibrerieCompilatoriDebugging

2 Computazione simbolica e numericaComputazione simbolicaComputazione numerica

3 Analisi statistica4 Simulazione di circuiti5 Analisi dati e plotting

Analisi datiPlotting (and reverse)

6 E tanto altro. . .7 gnuplot8 Conclusioni

Page 3: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

LinguaggiC, C++, fortran, python, shell, java, php, . . .

Linguaggio compilatoPer linguaggio compilato si intende un linguaggio di programmazione cheprevede la traduzione una tantum del codice sorgente, in genere un fi-le di puro testo predisposto dal programmatore, in linguaggio macchina;la traduzione viene eseguita da un programma detto compilatore. Ese-guita la traduzione in linguaggio macchina, si ottiene un file eseguibile.

BasicC, C++, D

FortranLisp

CobolPascal

Linguaggio interpretatoUn interprete ha lo scopo di eseguire un programma in un linguaggio di alto livello,senza la previa compilazione dello stesso. Esso, infatti, ha il compito di eseguire leistruzioni nel linguaggio usato, traducendole di volta in volta in istruzioni in linguag-gio macchina. Lo scripting engine è un motore che interpreta liste di comandi,dette script, formulati con una sintassi determinata, detta linguaggio di scripting.

PerlPython

MATLABRuby

Java (±)Bash

Page 4: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

LinguaggiC, C++, fortran, python, shell, java, php, . . .

Linguaggio compilatoPer linguaggio compilato si intende un linguaggio di programmazione cheprevede la traduzione una tantum del codice sorgente, in genere un fi-le di puro testo predisposto dal programmatore, in linguaggio macchina;la traduzione viene eseguita da un programma detto compilatore. Ese-guita la traduzione in linguaggio macchina, si ottiene un file eseguibile.

BasicC, C++, D

FortranLisp

CobolPascal

Linguaggio interpretatoUn interprete ha lo scopo di eseguire un programma in un linguaggio di alto livello,senza la previa compilazione dello stesso. Esso, infatti, ha il compito di eseguire leistruzioni nel linguaggio usato, traducendole di volta in volta in istruzioni in linguag-gio macchina. Lo scripting engine è un motore che interpreta liste di comandi,dette script, formulati con una sintassi determinata, detta linguaggio di scripting.

PerlPython

MATLABRuby

Java (±)Bash

Page 5: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

LinguaggiC, C++, fortran, python, shell, java, php, . . .

Linguaggio compilatoPer linguaggio compilato si intende un linguaggio di programmazione cheprevede la traduzione una tantum del codice sorgente, in genere un fi-le di puro testo predisposto dal programmatore, in linguaggio macchina;la traduzione viene eseguita da un programma detto compilatore. Ese-guita la traduzione in linguaggio macchina, si ottiene un file eseguibile.

BasicC, C++, D

FortranLisp

CobolPascal

Linguaggio interpretatoUn interprete ha lo scopo di eseguire un programma in un linguaggio di alto livello,senza la previa compilazione dello stesso. Esso, infatti, ha il compito di eseguire leistruzioni nel linguaggio usato, traducendole di volta in volta in istruzioni in linguag-gio macchina. Lo scripting engine è un motore che interpreta liste di comandi,dette script, formulati con una sintassi determinata, detta linguaggio di scripting.

PerlPython

MATLABRuby

Java (±)Bash

Page 6: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

Sommario

1 ProgrammazioneLibrerieCompilatoriDebugging

2 Computazione simbolica e numericaComputazione simbolicaComputazione numerica

3 Analisi statistica4 Simulazione di circuiti5 Analisi dati e plotting

Analisi datiPlotting (and reverse)

6 E tanto altro. . .7 gnuplot8 Conclusioni

Page 7: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

Librerie C / C++gsl, cgal, cernlib, . . .

Si programma sempre con uno scopo preciso ben a mente:1 elaborare una strategia per giungere al risultato2 scomporla ed analizzarne tutti i passaggi necessari3 per ogni operazione elaborare un algoritmo semplice4 nel 99.99% dei casi il codice che serve è stato già scritto!5 cercare cercare cercare in Rete6 archiviare tutto ciò che si scopre e inglobare più librerie

possibili da riutilizzare

Qualche suggerimentohttp://www.trumphurst.com/cpplibs1.html

http://www.thefreecountry.com/sourcecode/cpp.shtml

http://www.google.com/codesearch

Page 8: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

Librerie C / C++gsl, cgal, cernlib, . . .

Si programma sempre con uno scopo preciso ben a mente:1 elaborare una strategia per giungere al risultato2 scomporla ed analizzarne tutti i passaggi necessari3 per ogni operazione elaborare un algoritmo semplice4 nel 99.99% dei casi il codice che serve è stato già scritto!5 cercare cercare cercare in Rete6 archiviare tutto ciò che si scopre e inglobare più librerie

possibili da riutilizzare

Qualche suggerimentohttp://www.trumphurst.com/cpplibs1.html

http://www.thefreecountry.com/sourcecode/cpp.shtml

http://www.google.com/codesearch

Page 9: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

Sommario

1 ProgrammazioneLibrerieCompilatoriDebugging

2 Computazione simbolica e numericaComputazione simbolicaComputazione numerica

3 Analisi statistica4 Simulazione di circuiti5 Analisi dati e plotting

Analisi datiPlotting (and reverse)

6 E tanto altro. . .7 gnuplot8 Conclusioni

Page 10: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

Compilatorigcc, g++, g77, . . .

Un compilatore è un programma che traduce

una serie di istruzioni scritte in un determinato

linguaggio di programmazione (codice

sorgente) in istruzioni di un altro linguaggio

(codice oggetto). Questo processo di

traduzione si chiama compilazione. Molti

compilatori implementano il linguaggio in modo

incompleto, o aggiungono estensioni

proprietarie, creando in effetti dei dialetti di

ciascun linguaggio. Per i linguaggi che

adottano uno standard nella decorazione dei

simboli, il codice oggetto generato da

compilatori differenti può essere linkato

assieme in un unico eseguibile

Compilatori C / C++: Clang (Apple), GCC/G++ (GNU), Open64(Google & others), PathScale (SiCortex), TenDRA (TenDRAProject), . . .

Page 11: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

CompilatoriGNU Make

Makefile, questo sconosciuto

make è una utility usata con i sistemi operativi della famiglia UNIXche automatizza il processo di conversione dei file da una formaad un’altra, risolvendo le dipendenze e invocando programmiesterni per il lavoro necessario. Molto frequentemente è usato perla compilazione di codice sorgente in codice oggetto, unendo epoi linkando il codice oggetto in eseguibili o in librerie. Esso usafile chiamati makefiles per determinare il grafo delle dipendenzeper un particolare output, e gli script necessari per lacompilazione da passare alla shell.helloworld: helloworld.occ -o $@ $<helloworld.o: helloworld.ccc -c -o $@ $<.PHONY: cleanclean:-rm -f helloworld helloworld.o

Page 12: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

Sommario

1 ProgrammazioneLibrerieCompilatoriDebugging

2 Computazione simbolica e numericaComputazione simbolicaComputazione numerica

3 Analisi statistica4 Simulazione di circuiti5 Analisi dati e plotting

Analisi datiPlotting (and reverse)

6 E tanto altro. . .7 gnuplot8 Conclusioni

Page 13: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

Debugginga cura di Gianluca norman86 Malato

www.topolinux.org/ezine_articles.php?art_id=39

Page 14: Seconda Lezione SoftwareFisica Opensource

   

Debugger GNU By Gianluca norman86 Malato

Cos'è un debugger?

Trovare e rimuovere gli errori di un programma è un'operazione chiamata debugging

È un programma che permette di eseguire un altro programmauna riga di codice alla volta, permettendo di controllare e modificare il valore delle variabili in ogni istante, con lo scopodi trovare e rimuovere errori nel funzionamento. 

Non si tratta di errori di sintassi (che vengono segnalati dal compilatore), ma di errori di programmazione per i quali il programma fa delle cose diverse da quelle che avrebbe voluto il programmatore.

Page 15: Seconda Lezione SoftwareFisica Opensource

   

gcc -g -o prog programma.cgcc -g -o prog programma.c

GDB è l'acronimo di GNU Debugger. È il debugger ufficiale dei sistemi Linux.

Una piccola guida in italiano sul suo funzionamento si può trovare alla pagina

Affinché un programma in linguaggio C sia controllabile da GDBè necessario compilarlo con l'opzione ­g

Debugger GNU

gdb proggdb prog

Per avviare il debugger sul programma prog, digitare da terminale

http://www.topolinux.org/ezine_articles.php?art_id=39

Page 16: Seconda Lezione SoftwareFisica Opensource

   

Debugger GNU

Avviato il debugger, la prima cosa da fare è definire un breakpoint, ovvero una riga di codice o una funzione alla quale l'esecuzione del programma va interrotta

(gdb) break main(gdb) break main

(gdb) break 71(gdb) break 71

Breakpoint all'inizio della funzione main

Breakpoint alla riga 71

(gdb) break programma.c:71(gdb) break programma.c:71 Breakpoint alla riga 71 del file programma.c

(gdb) run argomento1 argomento2 argomento3(gdb) run argomento1 argomento2 argomento3

Definiti i breakpoint, si avvia il programma con

dove argomento1, argomento2 e argomento3 sono parametri opzionali che il programma può ricevere dalla riga di comando

Page 17: Seconda Lezione SoftwareFisica Opensource

   

Debugger GNU

Il debugger eseguirà il programma e si fermerà al primo breakpoint che incontra durante l'esecuzione.

(gdb) print variabile (gdb) print variabile

(gdb) list (gdb) list

(gdb) set var variabile=valore (gdb) set var variabile=valore

(gdb) next (gdb) next

(gdb) step (gdb) step

Mostra sullo schermo il valore di variabile

Mostra alcune righe di codice prima e dopo la riga attuale

Imposta il valore di una variabile

Passa alla riga di codice successiva

Passa alla riga di codice successiva entrando nel codice di una funzione se essa è chiamata nella riga attuale

(gdb) continue (gdb) continue

(gdb) quit (gdb) quit

Continua l'esecuzione fino al successivo breakpoint

Esce dal debugger

Page 18: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

Sommario

1 ProgrammazioneLibrerieCompilatoriDebugging

2 Computazione simbolica e numericaComputazione simbolicaComputazione numerica

3 Analisi statistica4 Simulazione di circuiti5 Analisi dati e plotting

Analisi datiPlotting (and reverse)

6 E tanto altro. . .7 gnuplot8 Conclusioni

Page 19: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

Computazione simbolicaDa Mathematica a Sage

Manipolazione simbolica nell’ambito dell’algebra, dell’analisisuperiore, della teoria dei numeri, dei calcoli combinatori, . . .

Software proprietari

MathematicaSi tratta del più famoso e ver-satile software per il calcolosia simbolico che numerico,concepito originariamente daStephen Wolfram nel 1988:140$ per studenti.

Maple

Sviluppato dal 1980, ha fun-zionalità molto simili a Mathe-matica, anche se ha meno dif-fusione (merito del genio im-prenditoriale di Wolfram): 99$per studenti.

Alternative open-source

Axiom, Cadabra (algebra dei tensori, teoria dei campi), Co-coa (calcoli polinomiali), Jacal (manipolazione simbolica inte-rattiva), JAS (algebra non-commutativa), Mathomatic (algebraelementare), Maxima, . . .

Page 20: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

Computazione simbolicaDa Mathematica a Sage

Manipolazione simbolica nell’ambito dell’algebra, dell’analisisuperiore, della teoria dei numeri, dei calcoli combinatori, . . .

Software proprietari

MathematicaSi tratta del più famoso e ver-satile software per il calcolosia simbolico che numerico,concepito originariamente daStephen Wolfram nel 1988:140$ per studenti.

Maple

Sviluppato dal 1980, ha fun-zionalità molto simili a Mathe-matica, anche se ha meno dif-fusione (merito del genio im-prenditoriale di Wolfram): 99$per studenti.

Alternative open-source

Axiom, Cadabra (algebra dei tensori, teoria dei campi), Co-coa (calcoli polinomiali), Jacal (manipolazione simbolica inte-rattiva), JAS (algebra non-commutativa), Mathomatic (algebraelementare), Maxima, . . .

Page 21: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

Computazione simbolicaDa Mathematica a Sage

Manipolazione simbolica nell’ambito dell’algebra, dell’analisisuperiore, della teoria dei numeri, dei calcoli combinatori, . . .

Software proprietari

MathematicaSi tratta del più famoso e ver-satile software per il calcolosia simbolico che numerico,concepito originariamente daStephen Wolfram nel 1988:140$ per studenti.

Maple

Sviluppato dal 1980, ha fun-zionalità molto simili a Mathe-matica, anche se ha meno dif-fusione (merito del genio im-prenditoriale di Wolfram): 99$per studenti.

Alternative open-source

Axiom, Cadabra (algebra dei tensori, teoria dei campi), Co-coa (calcoli polinomiali), Jacal (manipolazione simbolica inte-rattiva), JAS (algebra non-commutativa), Mathomatic (algebraelementare), Maxima, . . .

Page 22: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

MaximaIl più completo Computer Algebra System open-source

Cos’èSviluppato dal 1982 basandosi su un progettodel 1968, è un sistema completo di algebra sim-bolica, ma possiede anche estese capacità dicomputazione numerica, anche con la possibili-tà di interfacciarsi con programmi esterni. Per laproduzione di grafici si appoggia a gnuplot.

Come appare

L’interfaccia di base è da linea di comando (stilegnuplot), ma esiste una versatile interfaccia gra-fica sviluppata mediante wxWidgets, molto similea quella di Mathematica. Si scrivono le equazio-ni in formato standard, è possibile visualizzarneun rendering, risolverle, manipolarle ed esportarequanto occorre in codice LATEX.

Page 23: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

MaximaIl più completo Computer Algebra System open-source

Cos’èSviluppato dal 1982 basandosi su un progettodel 1968, è un sistema completo di algebra sim-bolica, ma possiede anche estese capacità dicomputazione numerica, anche con la possibili-tà di interfacciarsi con programmi esterni. Per laproduzione di grafici si appoggia a gnuplot.

Come appare

L’interfaccia di base è da linea di comando (stilegnuplot), ma esiste una versatile interfaccia gra-fica sviluppata mediante wxWidgets, molto similea quella di Mathematica. Si scrivono le equazio-ni in formato standard, è possibile visualizzarneun rendering, risolverle, manipolarle ed esportarequanto occorre in codice LATEX.

Page 24: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

SageUn metaprogramma che li usi tutti

Una filosofia vincenteLa filosofia con cui William Stein ha progettatoSage è semplice e geniale:

Scrivere da zero un sistema di computazionealgebrica richiede migliaia di ore di lavoroCi sono funzione e programmi di calcolo giàben testati e funzionanti

Quindi ha prodotto semplicemente un’interfacciacomune tra più di 30 applicazioni open-source giàdisponibili.

Come appare

Il linguaggio con cui è scritto è il versatilissimo Py-thon, di cui è richiesta la conoscenza per usare ilsoftware.

Page 25: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

SageUn metaprogramma che li usi tutti

Una filosofia vincenteLa filosofia con cui William Stein ha progettatoSage è semplice e geniale:

Scrivere da zero un sistema di computazionealgebrica richiede migliaia di ore di lavoroCi sono funzione e programmi di calcolo giàben testati e funzionanti

Quindi ha prodotto semplicemente un’interfacciacomune tra più di 30 applicazioni open-source giàdisponibili.

Come appare

Il linguaggio con cui è scritto è il versatilissimo Py-thon, di cui è richiesta la conoscenza per usare ilsoftware.

Page 26: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

Sommario

1 ProgrammazioneLibrerieCompilatoriDebugging

2 Computazione simbolica e numericaComputazione simbolicaComputazione numerica

3 Analisi statistica4 Simulazione di circuiti5 Analisi dati e plotting

Analisi datiPlotting (and reverse)

6 E tanto altro. . .7 gnuplot8 Conclusioni

Page 27: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

Computazione numericaDa Matlab a Octave

Software proprietari

Matlab

È probabilmente il più potente e diffuso soft-ware per il calcolo numerico, usato soprattut-to nella modellizzazione e nell’ingegneria. Èlo standard de facto nell’industria (∼ 2400$,prezzo pieno). Il suo punto di forza è senz’altrola manipolazione del calcolo matriciale com-plesso. Il linguaggio di programmazione chene è alla base è ad oggetti.

???Incredibilmenteha fatto piazzapulita, non ci sonosoftware proprietarianaloghi, che alme-no si avvicinino alsuo livello.

Alternative open-source

GNU Octave, FreeMat, Scilab, Monkey Analytics (web interface),Python libraries, . . .

Page 28: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

Computazione numericaDa Matlab a Octave

Software proprietari

Matlab

È probabilmente il più potente e diffuso soft-ware per il calcolo numerico, usato soprattut-to nella modellizzazione e nell’ingegneria. Èlo standard de facto nell’industria (∼ 2400$,prezzo pieno). Il suo punto di forza è senz’altrola manipolazione del calcolo matriciale com-plesso. Il linguaggio di programmazione chene è alla base è ad oggetti.

???Incredibilmenteha fatto piazzapulita, non ci sonosoftware proprietarianaloghi, che alme-no si avvicinino alsuo livello.

Alternative open-source

GNU Octave, FreeMat, Scilab, Monkey Analytics (web interface),Python libraries, . . .

Page 29: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

GNU OctaveComputazione numerica compatibile con MATLAB sotto GPL

Cos’èSviluppato dal 1992 con in mente la necessità direndere il linguaggio il più possibile compatibilecon quello di MATLAB, è ormai un prodotto matu-ro, molto ben supportato, con un numero di esten-sioni e librerie aggiuntive impressionante, tantoche comincia ad essere usato ufficialmente anchein alcuni ambiti accademici e industriali.

Come appare

L’interfaccia grafica è sostanzialmente una corni-ce al terminale. Si usa un linguaggio molto vicinoa C (non è ad oggetti), tanto che è possibile inter-facciarsi con librerie C esterne. In molti aspetti èsimile a quello di MATLAB e con poche modifichelo si può trasportare dall’uno all’altro. Si appoggiaa gnuplot e Grace per la produzione dei grafici.

Page 30: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

GNU OctaveComputazione numerica compatibile con MATLAB sotto GPL

Cos’èSviluppato dal 1992 con in mente la necessità direndere il linguaggio il più possibile compatibilecon quello di MATLAB, è ormai un prodotto matu-ro, molto ben supportato, con un numero di esten-sioni e librerie aggiuntive impressionante, tantoche comincia ad essere usato ufficialmente anchein alcuni ambiti accademici e industriali.

Come appare

L’interfaccia grafica è sostanzialmente una corni-ce al terminale. Si usa un linguaggio molto vicinoa C (non è ad oggetti), tanto che è possibile inter-facciarsi con librerie C esterne. In molti aspetti èsimile a quello di MATLAB e con poche modifichelo si può trasportare dall’uno all’altro. Si appoggiaa gnuplot e Grace per la produzione dei grafici.

Page 31: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

SciLabComputazione numerica che parla francese

Cos’èSviluppato dal 1990, si tratta di un linguaggio diprogrammazione di alto livello, fortemente orien-tato alla manipolazione di oggetti complessi comevettori e matrici. I suoi punti di forza sono l’ana-lisi di segnale, l’analisi statistica, le simulazioni difluidodinamica, l’ottimizzazione numerica.

Le estensioniIl punto di forza di Scilab, così come di tutti i soft-ware open-source, è l’estensibilità infinita graziea moduli prodotti dalla comunità di utenti avanza-ti. Ad esempio SciCos, che permette di simula-re facilmente sistemi dinamici impliciti ed espliciti,continui e discreti.

Page 32: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

SciLabComputazione numerica che parla francese

Cos’èSviluppato dal 1990, si tratta di un linguaggio diprogrammazione di alto livello, fortemente orien-tato alla manipolazione di oggetti complessi comevettori e matrici. I suoi punti di forza sono l’ana-lisi di segnale, l’analisi statistica, le simulazioni difluidodinamica, l’ottimizzazione numerica.

Le estensioniIl punto di forza di Scilab, così come di tutti i soft-ware open-source, è l’estensibilità infinita graziea moduli prodotti dalla comunità di utenti avanza-ti. Ad esempio SciCos, che permette di simula-re facilmente sistemi dinamici impliciti ed espliciti,continui e discreti.

Page 33: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

ROOTDal CERN con passione. . .

Cos’èSi tratta di un mastodontico e valido software perl’analisi dati, l’analisi statistica e il data mining, svi-luppato al CERN dal 1994. Sostanzialmente sitratta di una collezione di librerie in Fortran e C++sviluppata specificatamente per la fisica delle alteenergie, ma applicabile anche in altri campi.

Come appare

Da linea di comando, la sintassi è sostanzialmen-te quella del C++. In ambiti accademici si usa perlo più in remoto. È lo standard per quanto riguardal’analisi degli eventi a LHC.

Page 34: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

ROOTDal CERN con passione. . .

Cos’èSi tratta di un mastodontico e valido software perl’analisi dati, l’analisi statistica e il data mining, svi-luppato al CERN dal 1994. Sostanzialmente sitratta di una collezione di librerie in Fortran e C++sviluppata specificatamente per la fisica delle alteenergie, ma applicabile anche in altri campi.

Come appare

Da linea di comando, la sintassi è sostanzialmen-te quella del C++. In ambiti accademici si usa perlo più in remoto. È lo standard per quanto riguardal’analisi degli eventi a LHC.

Page 35: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

Analisi statisticaDa SPSS a R

Software proprietari

SPSSAi vertici dell’analisi statisticaprofessionale dal 1968 (oggidell’IBM), è il punto di riferi-mento per tutto l’ambito del-le scienze sociali. Ha unenorme numero di strumentiper l’analisi descrittiva, la sta-tistica bivariata, le regressionilineari, l’analisi per gruppi.

STATISTICAConcorrenza della StatSoft,fa praticamente le stesse co-se di SPSS: grosso modostessi strumenti, simile lapossibilità di espanderne lecapacità comprando appositiplug-in.

Alternative open-source

Ce ne sono davvero molte, ma si distinguono GNU gretl, PSPP el’inarrivabile R.

Page 36: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

Analisi statisticaDa SPSS a R

Software proprietari

SPSSAi vertici dell’analisi statisticaprofessionale dal 1968 (oggidell’IBM), è il punto di riferi-mento per tutto l’ambito del-le scienze sociali. Ha unenorme numero di strumentiper l’analisi descrittiva, la sta-tistica bivariata, le regressionilineari, l’analisi per gruppi.

STATISTICAConcorrenza della StatSoft,fa praticamente le stesse co-se di SPSS: grosso modostessi strumenti, simile lapossibilità di espanderne lecapacità comprando appositiplug-in.

Alternative open-source

Ce ne sono davvero molte, ma si distinguono GNU gretl, PSPP el’inarrivabile R.

Page 37: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

gretlGnu Regression, Econometrics and Time-series Library

Cos’è

È specificatamente dedicato all’econometria, tan-to da vantare vari articoli nelle riviste specialisti-che del settore. È corredato di interfaccia graficae si può affiancare ad R ed a gnuplot per i grafici.

Come appare

L’interfaccia è molto scarna e richiede il carica-mento di un file di dati. Ci sono molti esem-pi da cui partire e saltano subito agli occhi lenumerosissime funzioni di analisi disponibili.

Page 38: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

gretlGnu Regression, Econometrics and Time-series Library

Cos’è

È specificatamente dedicato all’econometria, tan-to da vantare vari articoli nelle riviste specialisti-che del settore. È corredato di interfaccia graficae si può affiancare ad R ed a gnuplot per i grafici.

Come appare

L’interfaccia è molto scarna e richiede il carica-mento di un file di dati. Ci sono molti esem-pi da cui partire e saltano subito agli occhi lenumerosissime funzioni di analisi disponibili.

Page 39: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

PSPPEquivalente open-source di SPSS

Cos’è

È un clone di SPSS, che si appoggia sulle GSLper i calcoli matematici e statistici. Permette diimportare i dati in un gran numero di formati e digestire anche il formato nativo di SPSS. Non è pe-rò senz’altro all’altezza del fratellastro maggiore,avendo molte meno funzioni ed essendo ancoraun poco troppo instabile per un uso intensivo.

Come appare

L’interfaccia grafica è molto simile a quella diSPSS, ma aprendo i menu di analisi la differenzaè netta: chilometrici i secondi, molto scarni i primi.Ma è già un buon software per l’analisi statisticadi base.

Page 40: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

PSPPEquivalente open-source di SPSS

Cos’è

È un clone di SPSS, che si appoggia sulle GSLper i calcoli matematici e statistici. Permette diimportare i dati in un gran numero di formati e digestire anche il formato nativo di SPSS. Non è pe-rò senz’altro all’altezza del fratellastro maggiore,avendo molte meno funzioni ed essendo ancoraun poco troppo instabile per un uso intensivo.

Come appare

L’interfaccia grafica è molto simile a quella diSPSS, ma aprendo i menu di analisi la differenzaè netta: chilometrici i secondi, molto scarni i primi.Ma è già un buon software per l’analisi statisticadi base.

Page 41: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

RUn linguaggio di programmazione per l’analisi statistica

Cos’è

È un linguaggio di programmazione vero e pro-prio e di fatto è lo standard per chi sviluppa soft-ware statistici o fa analisi dati di questo tipo. Èestremamente potente e versatile, viene affian-cato da numerosissimi pacchetti ed estensioni (acui si può accedere automaticamente attraverso imirror CRAN) ed ha anche eccellenti capacità diplotting.

Come appare

R è un software da linea di comando, ma diver-si progetti forniscono dei front-end grafici (ad es.gretl e Sage). Esiste poi R-commander, che for-nisce una finestra sobria in cui l’unico vantaggio èavere comandi e risultati separati in due box.

Page 42: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

RUn linguaggio di programmazione per l’analisi statistica

Cos’è

È un linguaggio di programmazione vero e pro-prio e di fatto è lo standard per chi sviluppa soft-ware statistici o fa analisi dati di questo tipo. Èestremamente potente e versatile, viene affian-cato da numerosissimi pacchetti ed estensioni (acui si può accedere automaticamente attraverso imirror CRAN) ed ha anche eccellenti capacità diplotting.

Come appare

R è un software da linea di comando, ma diver-si progetti forniscono dei front-end grafici (ad es.gretl e Sage). Esiste poi R-commander, che for-nisce una finestra sobria in cui l’unico vantaggio èavere comandi e risultati separati in due box.

Page 43: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

Simulazione di circuitiDa PSPICE a gEDA

SPICE: Simulation Program with Integrated Circuit Emphasis

Si tratta dello standard per quanto riguarda la simulazione di cir-cuiti elettronici analogici (non solo disegno architetturale, ma si-mulazione vera e propria). È utilizzato a livello industriale per ve-rificare il comportamento dei circuiti prima che vengano messi inproduzione.

Software proprietari

PSpice

Si tratta di un simulatore di circuiti analogi-ci e digitali che si appoggia a Spice e gi-ra su normali personal computer, dal 1984.Usato anche nei nostri laboratori.

???Praticamentenessunaconcorrenzaproprietaria. . .

Alternative open-sourceEsistono due tipologia di software per circuiti: EDA (Electronic design automation) per

disegnarli e i simulatori come Spice. Nel primo caso troviamo gEDA, nel secondo ngSpice.

Page 44: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

Simulazione di circuitiDa PSPICE a gEDA

SPICE: Simulation Program with Integrated Circuit Emphasis

Si tratta dello standard per quanto riguarda la simulazione di cir-cuiti elettronici analogici (non solo disegno architetturale, ma si-mulazione vera e propria). È utilizzato a livello industriale per ve-rificare il comportamento dei circuiti prima che vengano messi inproduzione.

Software proprietari

PSpice

Si tratta di un simulatore di circuiti analogi-ci e digitali che si appoggia a Spice e gi-ra su normali personal computer, dal 1984.Usato anche nei nostri laboratori.

???Praticamentenessunaconcorrenzaproprietaria. . .

Alternative open-sourceEsistono due tipologia di software per circuiti: EDA (Electronic design automation) per

disegnarli e i simulatori come Spice. Nel primo caso troviamo gEDA, nel secondo ngSpice.

Page 45: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

Simulazione di circuitiDa PSPICE a gEDA

SPICE: Simulation Program with Integrated Circuit Emphasis

Si tratta dello standard per quanto riguarda la simulazione di cir-cuiti elettronici analogici (non solo disegno architetturale, ma si-mulazione vera e propria). È utilizzato a livello industriale per ve-rificare il comportamento dei circuiti prima che vengano messi inproduzione.

Software proprietari

PSpice

Si tratta di un simulatore di circuiti analogi-ci e digitali che si appoggia a Spice e gi-ra su normali personal computer, dal 1984.Usato anche nei nostri laboratori.

???Praticamentenessunaconcorrenzaproprietaria. . .

Alternative open-sourceEsistono due tipologia di software per circuiti: EDA (Electronic design automation) per

disegnarli e i simulatori come Spice. Nel primo caso troviamo gEDA, nel secondo ngSpice.

Page 46: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

gEDAGPL Electronic Design Automation

Cos’èSi tratta di uno strumento molto potente per l’E-CAD (Electronic CAD), dal 1998. Il progetto svi-luppa diversi strumenti che si integrano perfetta-mente, oltre che una lista molto estesa di librerieaggiuntive.

Come appare

L’interfaccia grafica è sobria e funzionale, il dise-gno del circuito viene fatto con il drag ’n’ drop ela gestione dei collegamenti tra i vari elementi èintelligente.

Page 47: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

gEDAGPL Electronic Design Automation

Cos’èSi tratta di uno strumento molto potente per l’E-CAD (Electronic CAD), dal 1998. Il progetto svi-luppa diversi strumenti che si integrano perfetta-mente, oltre che una lista molto estesa di librerieaggiuntive.

Come appare

L’interfaccia grafica è sobria e funzionale, il dise-gno del circuito viene fatto con il drag ’n’ drop ela gestione dei collegamenti tra i vari elementi èintelligente.

Page 48: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

Ng-SpiceL’unione fa la forza

Cos’èIntegra in un unica interfaccia tre program-mi: Spice, Cider e Xspice. In questo modola precisione della simulazione è altissima (afronte naturalmente di un aumento del tempomacchina).

Come appare

Anche in questo caso l’interfaccia grafica è sobria,permette di costruire la struttura logica del circuitoe poi lanciare la simulazione.

Page 49: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

Ng-SpiceL’unione fa la forza

Cos’èIntegra in un unica interfaccia tre program-mi: Spice, Cider e Xspice. In questo modola precisione della simulazione è altissima (afronte naturalmente di un aumento del tempomacchina).

Come appare

Anche in questo caso l’interfaccia grafica è sobria,permette di costruire la struttura logica del circuitoe poi lanciare la simulazione.

Page 50: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

Sommario

1 ProgrammazioneLibrerieCompilatoriDebugging

2 Computazione simbolica e numericaComputazione simbolicaComputazione numerica

3 Analisi statistica4 Simulazione di circuiti5 Analisi dati e plotting

Analisi datiPlotting (and reverse)

6 E tanto altro. . .7 gnuplot8 Conclusioni

Page 51: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

Analisi datiDa Origin a QtiPlot

Software proprietari

ExcelNon c’è molto da di-re, forse nel primissi-mo laboratorio qualchematricola ha ancora lamalsana idea di usa-re Excel per fare un fitlineare... sic!

Origin

È il punto di riferimento accademicoper l’analisi dati: potentissimo moto-re di fit non-lineari, un’infinità di stru-menti di analisi, supporto per i grafici2D e 3D. Molto usato anche nel no-stro dipartimento, nonostante il prez-zo: 50$ per studenti, solo in USA oCanada.

Alternative open-source

QtiPlot, LabPlot, SigmaPlot (win), gnuplot, PAW (cern), MagicPlot(java), sciGraphica, . . .

Page 52: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

Analisi datiDa Origin a QtiPlot

Software proprietari

ExcelNon c’è molto da di-re, forse nel primissi-mo laboratorio qualchematricola ha ancora lamalsana idea di usa-re Excel per fare un fitlineare... sic!

Origin

È il punto di riferimento accademicoper l’analisi dati: potentissimo moto-re di fit non-lineari, un’infinità di stru-menti di analisi, supporto per i grafici2D e 3D. Molto usato anche nel no-stro dipartimento, nonostante il prez-zo: 50$ per studenti, solo in USA oCanada.

Alternative open-source

QtiPlot, LabPlot, SigmaPlot (win), gnuplot, PAW (cern), MagicPlot(java), sciGraphica, . . .

Page 53: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

LabPlot e sciGraphicaDue tentativi di inseguire Origin

LabPlotIspirato chiaramente ad Origin, si interfaccia conle principali librerie di calcolo numerico (GSL,Qwt3d, OpenGL, FFTW, . . . ) ed è molto flessi-bile. Produce grafici adatti alla pubblicazione, manon risulta superlativo nell’ambito del fitting.

sciGraphica

Si tratta di un altro clone di Origin, ma il suo svi-luppo è rimasto molto indietro e le sue capacitàsono ancora scarse rispetto all’originale.

Page 54: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

QtiplotL’Origin del pinguino

Cos’èSi tratta del tentativo di sviluppare una validaalternativa open-source a Origin, a mio avvi-so molto promettente e già pienamente usabile.Produce grafici di ottima qualità, già adatti allapubblicazione su rivista.

Come appare

L’interfaccia grafica è identica a quella di Origin,così come le finestre dei dati. Chi già usa Ori-gin non avrà problemi ad ambientarsi e a menodi utilizzi estremi, ritroverà tutte le funzioni utili, inun sistema molto più stabile e razionale di Origin.Le funzioni modello per i fit non sono molte, mapossono essere estese definendone di nuove (ilwizard è molto intuitivo) oppure caricando plug-inesterni.

Page 55: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

QtiplotL’Origin del pinguino

Cos’èSi tratta del tentativo di sviluppare una validaalternativa open-source a Origin, a mio avvi-so molto promettente e già pienamente usabile.Produce grafici di ottima qualità, già adatti allapubblicazione su rivista.

Come appare

L’interfaccia grafica è identica a quella di Origin,così come le finestre dei dati. Chi già usa Ori-gin non avrà problemi ad ambientarsi e a menodi utilizzi estremi, ritroverà tutte le funzioni utili, inun sistema molto più stabile e razionale di Origin.Le funzioni modello per i fit non sono molte, mapossono essere estese definendone di nuove (ilwizard è molto intuitivo) oppure caricando plug-inesterni.

Page 56: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

Sommario

1 ProgrammazioneLibrerieCompilatoriDebugging

2 Computazione simbolica e numericaComputazione simbolicaComputazione numerica

3 Analisi statistica4 Simulazione di circuiti5 Analisi dati e plotting

Analisi datiPlotting (and reverse)

6 E tanto altro. . .7 gnuplot8 Conclusioni

Page 57: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

PlottingL’arte di analizzare guardando...

Capire e far capire

In qualsiasi ambito di analisi dati, uno degli strumenti più potentiper capire cosa si sta facendo è guardare i dati negli occhi. Mo-strare su grafico i dati, grezzi o elaborati, è quindi un’operazioneimportante e delicata, tra l’altro necessaria una volta che ci si met-te al lavoro su una futura pubblicazione. La chiarezza e l’usabilitàdei grafici sono caratteristiche fondamentali.

Page 58: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

GraceGRaphing, Advanced Computation and Exploration of data

Cos’è

Si tratta di uno dei migliori plotter 2D su Linux. Èmolto usato in ambito accademico per prepara-re le illustrazioni per le pubblicazioni ufficiali, mapossiede anche avanzati strumenti di analisi, co-me fit non-lineari, deconvoluzioni, trasformazionidi Fourier e smoothing.

Come appare

L’interfaccia grafica è ricchissima, ma ben or-ganizzata: a differenza di tanti altri casi Graceè maggiormente utilizzabile mediante questa ri-spetto alla linea di comando. È inoltre utilizzataspesso da altri software proprio per le funzioni diplotting (ad es. GNU Octave).

Page 59: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

GraceGRaphing, Advanced Computation and Exploration of data

Cos’è

Si tratta di uno dei migliori plotter 2D su Linux. Èmolto usato in ambito accademico per prepara-re le illustrazioni per le pubblicazioni ufficiali, mapossiede anche avanzati strumenti di analisi, co-me fit non-lineari, deconvoluzioni, trasformazionidi Fourier e smoothing.

Come appare

L’interfaccia grafica è ricchissima, ma ben or-ganizzata: a differenza di tanti altri casi Graceè maggiormente utilizzabile mediante questa ri-spetto alla linea di comando. È inoltre utilizzataspesso da altri software proprio per le funzioni diplotting (ad es. GNU Octave).

Page 60: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

AvizAtomistic Simulation Vizualization software

Cos’èGraficare aggregati discreti tridimensionali è tra lecose più difficili, soprattutto per evidenziare infor-mazioni utili per un’analisi esplicita. Aviz permettedi visualizzare facilmente strutture atomiche e so-prattutto spin-glass, anche dinamicamente duran-te una simulazione. Permette di colorare interatti-vamente gli elementi, in base a parametri passatinel file che contiene la descrizione della struttura.

Come appare

L’interfaccia grafica è molto scarna, ma la finestradi navigazione è molto funzionale (anche se pocointuitiva all’inizio) e il rendering è piuttosto veloce.

Page 61: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

AvizAtomistic Simulation Vizualization software

Cos’èGraficare aggregati discreti tridimensionali è tra lecose più difficili, soprattutto per evidenziare infor-mazioni utili per un’analisi esplicita. Aviz permettedi visualizzare facilmente strutture atomiche e so-prattutto spin-glass, anche dinamicamente duran-te una simulazione. Permette di colorare interatti-vamente gli elementi, in base a parametri passatinel file che contiene la descrizione della struttura.

Come appare

L’interfaccia grafica è molto scarna, ma la finestradi navigazione è molto funzionale (anche se pocointuitiva all’inizio) e il rendering è piuttosto veloce.

Page 62: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

g3dataRicavare i dati dai grafici pubblicati

Cos’èEcco un software inatteso e utilissimo. Quan-te volte avete trovato in un articolo grafici di da-ti... senza dati? Per esempio spettri? g3datapermette di splottare il grafico, ricavando dall’im-magine i dati originali con un certo errore as-sociato (sostanzialmente dovuto alla risoluzionedell’immagine).

Come appare

L’interfaccia grafica è molto semplice: si carical’immagine, si fissa l’origine degli assi e la scaladi misura e il programma ricava le coordinate deipunti sul grafico, fornendo una tabella dei dati.

Page 63: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

g3dataRicavare i dati dai grafici pubblicati

Cos’èEcco un software inatteso e utilissimo. Quan-te volte avete trovato in un articolo grafici di da-ti... senza dati? Per esempio spettri? g3datapermette di splottare il grafico, ricavando dall’im-magine i dati originali con un certo errore as-sociato (sostanzialmente dovuto alla risoluzionedell’immagine).

Come appare

L’interfaccia grafica è molto semplice: si carical’immagine, si fissa l’origine degli assi e la scaladi misura e il programma ricava le coordinate deipunti sul grafico, fornendo una tabella dei dati.

Page 64: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

Altri software utiliCelestia, Boinc, . . .

Celestia è un fenomenale space simulator che permette di volareattraverso la nostra Galassia ed oltre, esplorando un numero incalcolabiledi oggetti ricavati dai principali cataloghi astronomici. Richiedenaturalmente una buona scheda video. La NASA e l’ESA usano Celestianei loro programmi educativi o nelle mostre, e risulta molto utile anchecome interfaccia grafica per il programmi di analisi delle traiettorie.

Si tratta dell’infrastruttura sviluppata a Berkeley per la computazioneparallela e distribuita. Si tratta sostanzialmente di un piccolo programmalocale che comunica con server remoti, scarica sul computer dati daanalizzare e sfrutta i tempi morti della CPU per portare avanti analisi moltocomplesse, affrontabili solo con il calcolo distribuito. Il progetto più famosoè senz’altro SETI@home, ma ce ne sono decine attivi al momento.

Page 65: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

GNUplotTanto bello quanto potente. . .

L’arte del graficare dati

Curiosamente non è distribuito sotto licensa GPL, ma ne ha unapropria, che protegge il codice sorgente dalle modifiche, ma per-mette di distribuirlo gratuitamente. È probabilmente il più potentestrumento di plotting esistente, oltre a possedere una routine difitting superlativa. Tra i suoi punti di forza, la capacità di gestireun numero enorme di formati in ingresso e uscita e l’integrazio-ne stretta con la shell di Linux. Interfaccia solo mediante linea dicomando.

Page 66: Seconda Lezione SoftwareFisica Opensource

   

[email protected]

Introduzione a gnuplot

Gianluca Malato

Novembre 2009

Page 67: Seconda Lezione SoftwareFisica Opensource

   

http://www.gnuplot.info

Cos'è gnuplot? Dove si può trovare?

gnuplot è un software per la creazione di grafici. È utilizzabilecon Windows, Linux e Mac OS.

È disponibile il download gratuito dal sito

gnuplot è un programma che lavora dalla riga di comando, quindinon ha un'interfaccia grafica

Page 68: Seconda Lezione SoftwareFisica Opensource

   

Come installare gnuplot?

http://sourceforge.net/projects/gnuplot/files/

Visitare la pagina

scaricare la versione per il proprio sistema operativo e seguire le istruzioni per l'installazione contenute nel file INSTALL all'interno dell'archivio zip corrispondente

Su Ubuntu/Debian # apt-get install gnuplot

Su Fedora/Redhat # yum install gnuplot

Page 69: Seconda Lezione SoftwareFisica Opensource

   

Come avviare gnuplot?

● Su Linux o Mac OSAvviare una sessione del terminale e digitare:gnuplot

● Su WindowsPosizionarsi nella cartella dove è installato gnuplote fare doppio clic sul file wgnuplot.exe

Page 70: Seconda Lezione SoftwareFisica Opensource

   

Una finestra di gnuplot (su Linux)

Page 71: Seconda Lezione SoftwareFisica Opensource

   

plot cos(x)

Realizzare i grafici

Page 72: Seconda Lezione SoftwareFisica Opensource

   

plot cos(x) with linespoints \pointtype 3 \linecolor rgbcolor 'blue' \title 'Funzione coseno'

Realizzare i grafici

Il comando plot ammette diverse opzioni

Page 73: Seconda Lezione SoftwareFisica Opensource

   

plot cos(x) with linespoints \pointtype 3 \linecolor rgbcolor 'blue' \title 'Funzione coseno'

Realizzare i grafici

È possibile abbreviare i comandi di gnuplot

plot cos(x) w lp pt 3 lc rgb 'blue' t 'Funzione coseno'

Page 74: Seconda Lezione SoftwareFisica Opensource

   

plot cos(x), sin(x)

Realizzare i grafici

Più grafici sovrapposti

plot cos(x)replot sin(x)

Page 75: Seconda Lezione SoftwareFisica Opensource

   

set key left

Realizzare i grafici

Spostare la legenda

set key right

set key below

set key at 0,0

Legenda a sinistra

Legenda a destra

Legenda sotto l'asse delle ascisse

Legenda nel punto (0,0)

unset key Rimuovere la legenda

Page 76: Seconda Lezione SoftwareFisica Opensource

   

set xtics 1

Realizzare i grafici

Tacche sugli assi

Le tacche vengono spaziate di 1

set xtics 0.5 Le tacche vengono spaziate di 0.5

Page 77: Seconda Lezione SoftwareFisica Opensource

   

set xlabel 'Asse delle ascisse (in basso)'set ylabel 'Asse delle ordinate (a sinistra)'set x2label 'Asse delle ascisse (in alto)'set y2label 'Asse delle ordinate (a destra)'set title 'Titolo del grafico'

Realizzare i grafici

Impostare le etichette sugli assi e il titolo del grafico

Page 78: Seconda Lezione SoftwareFisica Opensource

   

set xrange [0:2*pi]set yr [-1:1]

Realizzare i grafici

Impostare il range di variazione dei valori sugli assi

plot [0:2*pi] [-1:1] (cos(x)+sin(x))/2

Page 79: Seconda Lezione SoftwareFisica Opensource

   

set log xy

Realizzare i grafici

Scala doppio logaritmica

Per ritornare alla scala lineare

unset log x

Scala logaritmica in base naturaleset log y exp(1)

Page 80: Seconda Lezione SoftwareFisica Opensource

   

set format x "%.2e"set format y "%1.t * 10^%T"set log yplot [1:5] exp(x)

Realizzare i grafici

Etichette sulla scalahelp set format specifiers

Per informazioni...

Page 81: Seconda Lezione SoftwareFisica Opensource

   

plot 'file.dat' using 1:2:3 with yerrorbarsplot 'file.dat' u 1:3:(abs($5-$3)/$5) w ye

Realizzare i grafici

Mostrare il contenuto di un file

Page 82: Seconda Lezione SoftwareFisica Opensource

   

plot 'file.dat' index 0:4:2

Realizzare i grafici

Se il file è composto da blocchi separati da 2 righe vuote

1 4.52 6.33 5.7

1 6.42 4.73 1.4

...

...

Verranno mostrati i dati dei blocchi dal primo al quinto saltando i blocchi di due in due

Notare che gli indici partono da 0

Esempi

plot 'file.dat' index 4

plot 'file.dat' index 4:9

file.dat

Page 83: Seconda Lezione SoftwareFisica Opensource

   

Realizzare i grafici

È possibile utilizzare l'output di un comando come sorgente di dati da mostrare

plot '< grep Particella1 file.dat' u 2:3

Particella1 1 4.5Particella1 2 6.3Particella2 3 5.7Particella1 1 6.4Particella2 2 4.7Particella2 3 1.4

plot '< comando'

Mostrare soltanto i dati etichettati con Particella1file.dat

Page 84: Seconda Lezione SoftwareFisica Opensource

   

plot 'hist.dat' w boxes

Realizzare i grafici

Istogrammi

Page 85: Seconda Lezione SoftwareFisica Opensource

   

plot 'griglia.dat' w vec

Realizzare i grafici

Campi vettoriali

r(x,y) = sqrt(x**2+y**2)epsilon = 1q = 3

Ex(x,y)=(r(x,y)>=epsilon) ? q*x/r(x,y)**3 : 0.0Ey(x,y)=(r(x,y)>=epsilon) ? q*y/r(x,y)**3 : 0.0

plot 'griglia.dat' u 1:2:(Ex($1,$2)):(Ey($1,$2)) w vec

Il file 'griglia.dat' deve contenere le coordinate dei punti neiquali calcolare il campo

    serve  per  evitare  di  mostrare frecce troppo grandi a causa della divergenza del campo in (0,0)

²~E(~r) =

8><>:

q

j~rj3~r se j~rj ¸ ²

0 se j~rj < ²

Page 86: Seconda Lezione SoftwareFisica Opensource

   

Realizzare i grafici

Page 87: Seconda Lezione SoftwareFisica Opensource

   

set label 3 “Testo” at 0.4,0.9 right

Realizzare i grafici

Inserire del testo

L'etichetta di testo verrà mostrata, aggiornata o rimossa con il successivo comando di plot (o replot)

Numero univoco che 

identifica l'etichetta

Testo da visualizzare

Coordinate di un punto 

di riferimento

Allineamento rispetto al punto

Questo comando crea una nuova etichetta o aggiorna l'etichetta contrassegnata con il numero scelto.

Per eliminare un'etichetta unset label 3

Page 88: Seconda Lezione SoftwareFisica Opensource

   

set arrow 3 from 0.5,0.6 to 0.4,1.7

Realizzare i grafici

Inserire frecce

La freccia verrà mostrata, aggiornata o rimossa con il successivo comando di plot (o replot)

Numero univoco che identifica la 

freccia

Coordinate delpunto dipartenza

Coordinate del punto finale

Come per le etichette di testo, questo comando crea una nuova freccia o aggiorna la freccia contrassegnata con il numero scelto.

Per eliminare la freccia unset arrow 3

Page 89: Seconda Lezione SoftwareFisica Opensource

   

Realizzare i grafici

set xlabel "T" set ylabel "M" set label 1 "T_c = 2.269185" at 1.46377,0.21set arrow 1 from 1.88123,0.170785 to 2.26919,0plot [0:3] [0:1.2] 'ising2d.dat' w l notitle

Page 90: Seconda Lezione SoftwareFisica Opensource

   

help plot

Realizzare i grafici

Per leggere la guida riguardante un particolare comando, si puòusare la funzione help

Page 91: Seconda Lezione SoftwareFisica Opensource

   

splot x**2+y**y

Realizzare i grafici

Grafici 3D

Gli argomenti di splot sono gli stessi di plot

Page 92: Seconda Lezione SoftwareFisica Opensource

   

set isosamples 30,30

Realizzare i grafici

Infittire il campionamento

Page 93: Seconda Lezione SoftwareFisica Opensource

   

set contour base

Realizzare i grafici

Mostrare le curve di livello

Page 94: Seconda Lezione SoftwareFisica Opensource

   

set pm3d

Realizzare i grafici

Colorare le superfici

Page 95: Seconda Lezione SoftwareFisica Opensource

   

set hidden3dset pm3d

Realizzare i grafici

Eliminare la griglia di campionamento

Page 96: Seconda Lezione SoftwareFisica Opensource

   

Salvare i grafici

gnuplot permette di salvare i grafici creati usando il comando

save 'miografico.gp'

Il risultato è un file di testo formattato che contiene i comandinecessari a gnuplot per riprodurre l'ultimo grafico creato. 

Per ripristinare il grafico si usa il comando

load 'miografico.gp'

Page 97: Seconda Lezione SoftwareFisica Opensource

   

Salvare i grafici

gnuplot permette di salvare i grafici anche in vari formati diimmagine

Jpeg

Postscript

EPS

PNG

GIF (anche animate)

EMF

...

Il più usato per le pubblicazioni scientifiche

Page 98: Seconda Lezione SoftwareFisica Opensource

   

Salvare i grafici

set terminal postscript color epsset out 'coseno.eps'plot cos(x)set out

L'ultimo comando set out è necessario per concludereil salvataggio del file. 

Per ritornare a visualizzare il plot sullo schermo:

Per ulteriori informazioni:

help set terminal

set term x11

Il comando set terminal specifica il tipo di output. Il comando set out direziona il plot su un file anziché sullo schermo.

set term aqua

Linux Mac                              Windowsset term windows

Page 99: Seconda Lezione SoftwareFisica Opensource

   

Salvare i grafici

set terminal postscript color eps enhancedset out 'x_quadro.eps'plot x**2 title “x^2”set out

Apici, pedici e simboli speciali: opzione enhanced

Molti terminali supportano l'opzione enhanced, tra cui postscript

Page 100: Seconda Lezione SoftwareFisica Opensource

   

Salvare i grafici

Tutti i comandi si possono trovare nel file ps_guide.ps, reperibile in rete o nell'archivio di installazione dei sorgenti di gnuplot

e^x

A_{ij}

P={/Symbol r}kT

{/Symbol a \261 Da}

{/Symbol \341{/Times-Roman a}\361}

|T-T_c|^{/Symbol -g}

a§¢a

ex

Aij

hai

P = ½kT

jT ¡ Tcj¡°

Page 101: Seconda Lezione SoftwareFisica Opensource

   

Salvare i grafici

Terminale epslatex. L'immagine viene salvata in un formato importabile in LaTeX che ne eredita le proprietà di formattazione matematica

set terminal epslatex color set out 'sinquadro.tex'plot sin(x)**2 title "\\sin^2 x$set out

\usepackage{graphicx}\begin{document}...\input{prova.tex}...\end{document}

Page 102: Seconda Lezione SoftwareFisica Opensource

   

Salvare i grafici

Page 103: Seconda Lezione SoftwareFisica Opensource

   

Â2 =NX

i=1

µyi ¡ f(xij~a)

¾i

¶2

f(xj~a) ~a = (a1; a2; : : : ; an)

a1; a2; : : : ; an sono i parametri della funzione

gnuplot e i fit

gnuplot permette di eseguire fit dei minimi quadrati

Sia dato un insieme di                   con 

Eseguire un fit dei minimi quadrati consiste nel trovare il set diparametri che rende minima la funzione

Essa è una variabile del “chi quadro” con                gradi di libertà.N ¡ n

xi; yi; ¾i¾yiyi

¿ ¾xixi

Page 104: Seconda Lezione SoftwareFisica Opensource

   

gnuplot e i fit

Tipicamente, per trovare il minimo del     , si cercano i valori deiparametri che ne annullano le derivate parziali e che corrispondonoa minimi relativi (studiando quindi la matrice hessiana).In caso di più minimi, si sceglie il minimo assoluto

@Â2

@ai= 0

Â2

Per curve “semplici” (funzioni lineari, polinomiali o riconducibilia queste), il problema ha una soluzione analitica.In tutti gli altri casi, bisogna usare algoritmi di minimizzazionenumerica.

Page 105: Seconda Lezione SoftwareFisica Opensource

   

gnuplot e i fit

gnuplot usa un algoritmo di minimizzazione numerica noto comealgoritmo di Levenberg­Marquardt

Esso cerca il minimo del chi quadro partendo da un punto qualsiasi nello spazio dei parametri, fermandosi quando vieneraggiunta una soglia di tolleranza, ovvero quando il chi quadronon cambia troppo tra due iterazioni successive.

ATTENZIONE: l'algoritmo trova il minimo del chi quadro piùvicino al punto di partenza. 

Se il minimo non è assoluto, il risultato è sbagliato!

Page 106: Seconda Lezione SoftwareFisica Opensource

   

f(x) = a*x + bfit f(x) 'dati.dat' u 1:2:3 via a,bplot 'dati.dat' u 1:2:3 w ye, f(x)

Esempio di fit con gnuplot

Sia dato un file di dati di nome dati.dat, contenente numeri dispostiin 3 colonne: ascissa, ordinata e errore statistico sull'ordinata.

gnuplot e i fit

fit [1.5:3.4] [0.5:4.9] f(x) 'dati.dat' u 1:2:3 via a,b

È possibile specificare l'insieme dei punti sui quali eseguire il fit

Page 107: Seconda Lezione SoftwareFisica Opensource

   

gnuplot e i fit

È bene inizializzare sempre i parametri del fit a valori ragionevoli

La tolleranza si può impostare tramite la variabile FIT_LIMIT. 

Al passo    , l'algoritmo produce un certo valore       e si arresta quandon Â2n

jÂ2n ¡ Â2n¡1j · FIT_LIMIT

a = 4.9b = pif(x) = a*x + bfit f(x) 'dati.dat' u 2:3:5 via a,bplot 'dati.dat' u 2:3:5 w ye, f(x)

FIT_LIMIT = 1e-4

Page 108: Seconda Lezione SoftwareFisica Opensource

   

gnuplot e i fit

Gli errori sui parametri vengono trovati usando il comando

set fit errorvariables

Una volta trovato il chi quadro minimo, gnuplot trova l'erroresui parametri risolvendo numericamente (un parametro alla volta)l'equazione

Si può dimostrare che la quantità                                rappresentauna stima per eccesso dell'errore sul parametro

¢a = ja¡ a¤ja

Â2(a¤) = Â2min + 1

Page 109: Seconda Lezione SoftwareFisica Opensource

   

Regole generali per eseguire un buon fit

1. Impostare la precisione (FIT_LIMIT)2. Inizializzare i parametri3. Usare il comando set fit errorvariables per una migliore

stima degli errori sui parametri

gnuplot e i fit

FIT_LIMIT = 1e-6f(x) = a*x + ba = 1.0b = 4.5

set fit errfit [1.5:6.4] f(x) 'dati.dat' u 2:3:5 via a,b

plot 'dati.dat' u 2:3:5 w ye, f(x)print a,a_errprint b,b_err

Page 110: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

La prossima volta...Mondo LATEX!

Lezione numero 3: il meraviglioso pianeta LATEXFilosofia, utilità e regole di composizioneCenni sul funzionamento: classi e pacchettiEditor (Kyle,TexMaker, ..., Lyx)Guide e manuali (CTAN)Tesi, tesine, dissertazioni e articoli

Classi e pacchetti utili (CTAN)Utilizzo di baseMatematicaImmagini e graficiCompilazione: latex e pdfLatexErrori e debugging

Bibliografia con bibtexPresentazioni con Beamer

Regole generaliUso di base: stili e temiTransizioniOpzioni avanzate

Page 111: Seconda Lezione SoftwareFisica Opensource

Lezione 2:open-sourcescientifico

Alessio Cimarelli

ProgrammazioneLibrerie

Compilatori

Debugging

Computazionesimbolica enumericaComputazionesimbolica

Computazionenumerica

Analisi statistica

Simulazione dicircuiti

Analisi dati eplottingAnalisi dati

Plotting (and reverse)

E tanto altro. . .

gnuplot

Conclusioni

FineTUX vi ringrazia!

TUX vi ringrazia!


Recommended