# MINUIT

MINUIT - Function Minimization and Error Analysis è un insieme di librerie scritte per essere usate in programmi di analisi dati. Originariamente il software fu scritto in FORTRAN77, ma attualmente esiste una sua versione in C++.
Minuit è concepito come un tool per la ricerca di minimi di funzioni a più parametri e per analizzare la forma di una funzione nell'intorno di un suo minimo. È principalmente adatto per l'analisi statistica di dati. Lavora usando il metodo del chi quadro o della massima verosimiglianza al fine di ottimizzare i valori dei parametri di un fit di dati, le loro incertezze ed eventualmente la correlazione tra i parametri stessi.
Il software è largamente diffuso negli ambienti di ricerca affini al CERN di Ginevra, nell'ambito di attività di fisica nucleare e subnucleare.

## Funzionalità del software

Il pacchetto Minuit agisce su una funzione multiparametrico Fortran o C++. Questa funzione deve essere definita e fornita dall'utente (o da un programma intermedio come HBOOK, PAW o ROOT, nel caso in cui Minuit viene utilizzato sotto il controllo di un tale programma intermedio). In genere la funzione così definita dipenderà da uno o più parametri liberi il cui significato è definito dall'utente (o dal programma intermedio), ma i cui valori sono determinati da Minuit in base a ciò che l'utente richiede sia fatto (di solito minimizzare una funzione). Per fare un semplice esempio, supponiamo che il problema è quello di adattare un polinomio attraverso una serie di punti di dati. L'utente scrivere tale funzione su cui viene calcolato il chi quadro tra essa ed i dati del problema; i parametri liberi della funzione sono i coefficienti dei polinomi. Usando i comandi Minuit, l'utente richiede a Minuit di minimizzare tale chi-quadro rispetto ai parametri liberi, cioè, trovare quei valori dei coefficienti che danno il valore minimo del chi-quadro. L'utente deve quindi fornire, oltre alla funzione da analizzare, una serie di comandi, per incaricare Minuit dell'analisi da fare. I comandi possono essere inserite in varie forme:
* in un file di dati, corrispondenti alle schede di dati, per l'elaborazione batch;
* digitatoli in fase di esecuzione di un terminale, per l'esecuzione interattiva;
* codificati in Fortran o C++ in un programma chiamante, che consente di implementare cicli, chiamate condizionali e tutte le altre possibilità tipiche di un linguaggio di programmazione, ma non l'interattività, in quanto deve essere compilato prima dell'esecuzione. Questo è noto anche come esecuzione di Minuit in modalità slave. HBOOK, PAW e ROOT usano Minuit in questo modo.
È inoltre possibile usare in combinazione qualsiasi delle modalità sopra esposte.

## Diritti d'autore

I diritti di autore ed ogni altra restrizione legale di tale software e relativa documentazione sono riservati in tutti i paesi del mondo. Tale programma o documentazione non può essere riprodotta in nessuna forma senza un preventivo consenso scritto da parte del Direttore generale del CERN o di un suo delegato.
L'autorizzazione per l'utilizzo di tale programma è concessa a tutti gli istituti scientifici connessi con il programma sperimentale CERN o con cui il CERN ha concluso un accordo di collaborazione scientifica.