Laboratorio di Fisica Computazionale

Capitolo 1. Introduzione

1.1 Elementi essenziali sull'uso del Pc.
Le informazioni (dati, programmi, risultati, immagini, ...) sono memorizzate in files su disco.
Per questo è essenziale avere confidenza con il sistema operativo che è il programma fondamentale che si occupa della gestione dei files.
Utilizzeremo 3 tipi di dischi: disco fisso, floppy, CD.
Il File Manager (Esplora) permette di controllare la struttura e il contenuto dei dischi e di trasferire files tra di essi.

1.2 Primo uso del sistema operativo ai fini del corso:
- fornirsi di un floppy formattato
- alla fine della lezione trasferire su  di esso gli esercizi o altro materiale
- imparare ad installare Mathematica sul proprio Pc di casa (se esiste)

1.3 Il programma Mathematica
Mathematica è un programma che consente di effettuare calcoli sia numerici che simbolici, di costruire grafici e di riprodurre suoni.

1.4 Front end e kernel
Mathematica presenta due elementi fondamentali: il front end e il kernel.
Facendo un parellelo con un'automobile il kernel equivale al motore; è, cioè, la parte di programma addetta ai calcoli.
Il front end equivale, invece, al posto di guida, cioè è la parte di programma che consente di dare i comandi al kernel. Esso si compone dei menu a tendina, dei notebooks e delle palettes.
Che si tratti di due elementi separati si vede subito. Lanciando il programma, viene caricato solo la parte di front end. Solo alla prima richiesta di calcolo viene caricato anche il kernel.
In caso di blocco del programma (dovuto ad errori di sintassi, a difetti di memoria, a calcoli troppo lunghi, ...) il kernel può essere scaricato utilizzando il comando Quit kernel dal menu Evaluation.

2+2

1.5 I notebooks
Il notebook è un documento che Mathematica interpetra e in cui l'utente conserva le richieste di calcolo e di grafica e i risultati dell'elaborazione. Conviene quindi ogni tanto salvare su file il notebook per non perdere il lavoro fatto in caso di crash del computer o del programma. 
Si tratta di un documento che comprende oggetti di vario tipo (ipertesto).
Un esempio è dato proprio da questa presentazione.
Come gli altri documenti di Windows può essere preparato utilizzando le varie funzioni di editing (copy, cut, paste, ...). 
Gli oggetti all'interno del notebook sono organizzati in celle. 
Ciascun tipo di cella è contrassegnato da un tipo di parentesi sul lato destro. 
La maggior parte delle celle usate fin qui sono di tipo testo.
Per effettuare una richiesta di calcolo, di grafica, di animazione o di suono occorre preparare una cella di input. L'esempio precedente chiede a Mathematica di calcolare 2+2. Dopo aver preparato l'input, per inviare l'input al kernel vi sono due modi:
- premere Maiuscolo-Invio
- premere Invio del tastierino numerico.
Mathematica risponde con una cella di output che contiene il risultato.
Un calcolo può essere interrotto in qualsiasi momento scegliendo dal menu kernel uno dei seguenti comandi:
- Interrupt evaluation (in questo caso il calcolo viene solo interrotto e può essere ripreso)
- Abort evaluation (in questo caso l'interruzione è definitiva).
Alcuni esempi di comandi di input e di output

N[Sin[10]]

Sin[(π/3)]

Plot[((Sin[x])/x),{x,-2π,2π}]

Play[Sin[2202πt],{t,0,5}]

1.6 Tutti i comandi in input e i loro output vengono mantenuti in memoria finchè il kernel non viene rilasciato.

In[1]

%

%%

a=Out[3]

1.7 Formati di Input

Integrate[x, x]  (* input form *)

∫x\[DifferentialD]x    (* standard form*)

1.8 Le Palettes
Le Palettes consentono di rendere più facile e rapida l'immissione degli Inputs.
Esse vengono richiamate dalla voce Palettes del menu Palettes.
Quella fondamentale è BasicMathInput.
Altra palette importante per il calcolo simbolico è AlgebraicManipulation.
E' possibile costruirsi delle proprie palettes.

1.9 L'Help on line
Due modi:
- dal menu Help scegliere Documentation Center dove si trova anche l'intero manuale
- da una cella di Input tramite ? e ??

?Sin

??Sin

?a

1.10 I Packages
Il kernel di Mathematica ha un numero di funzioni molto esteso.
Altre funzioni relative ad usi particolari possono essere trovate nei packages.
E' possibile costruirsi dei packages.

Needs["LinearRegression`"]

1.11 Elementi essenziali per l'input
Operatori binari: + - * / ^
L'asterisco * può essere sostituito da uno spazio
Parentesi:
- ( ) servono a raggruppare. Es.: 5^(3+2)
- [ ] contengono gli argomenti di una funzione. Es.: Sin[x]
- { } contengono gli elementi di una lista. Es.: A={a,b,c}
- [[ ]] contengono gli indici per accedere agli elementi di una lista. Es.: A[[1]]=a
- (*   *) contengono un testo di commento in una linea di input.

A={a,b,c}
A[[1]]

1.12 Le variabili
Si possono definire delle proprie variabili, stando attenti a non usare i nomi di variabili di Mathematica .
Poiché Mathematica usa sempre dei nomi con iniziale maiuscola, conviene usare dei nomi con iniziale minuscola.

t=5+2

t+4

sin=3

Sin=3

?t

t=.;?t