Files
EquationMiner/docs/configurazione.md
T
davideandClaude Sonnet 5.5 f28bddc5a2 Documentazione completa in docs/: assunzioni, algoritmi, moduli, configurazione, output, test, limiti
- docs/SPEC.md sostituito da un file per argomento (indice in docs/README.md)
- assunzioni A1-A24 con dove nel codice e cosa succede se false
- formule in LaTeX corrette (nessuno spazio prima del dollaro di chiusura), simboli e chiavi in tabella
- diagrammi Mermaid per il flusso degli algoritmi e le dipendenze dei moduli
- figura dei domini sul seed 1 (docs/img/domini_esempio.png)
- README ridotto a indice con avvio rapido; CLAUDE.md e docstring allineati

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-29 10:44:41 +01:00

5.3 KiB

Configurazione

Tutti i valori sono in config.toml: nessun default nel codice, una chiave mancante è un errore (exit 3). Suffissi nei nomi: _s secondi, _c gradi, _rel frazione della durata del dominio, _sigma multiplo di \sigma, _n / _campioni numero di campioni. Per aggiungere una chiave: config.toml, CHIAVI in config.py, questo documento. Il modulo che la legge è indicato a destra.

Si usa un altro file con fitseg --config altro.toml ….

[dati] — formato del CSV (dati.py)

Chiave Valore Significato
colonna_tempo "t_ms" nome della colonna del tempo
unita_tempo "ms" | "s" unità del tempo nel CSV; internamente tutto è in secondi (A3)
serie ["T_C", "dT_C"] colonne da approssimare; ognuna ha le sue equazioni, tutte condividono i domini (A4)
separatore "," separatore dei campi

[domini] — riconoscimento dei domini (domini.py, analisi.py)

Chiave Default Significato Effetto se alzata / abbassata
serie_riferimento "T_C" serie in cui si cercano i gradini; deve essere in serie —
soglia_gradino_c 20.0 salto positivo minimo tra due campioni consecutivi per essere un gradino alta: gradini piccoli non rilevati; bassa: scarti scambiati per gradini (A5)
soglia_bordo_sigma 6.0 la salita si estende ai campioni adiacenti con salto d_i > \theta_b\,\sigma_d, dove \theta_b è questa soglia e \sigma_d = 1.4826\,\mathrm{MAD} dei salti (algoritmi.md §3) alta: campioni di mezza salita restano nel raffreddamento; bassa: il riscaldamento si allarga troppo
distanza_min_salti_campioni 3 candidati più vicini di così appartengono allo stesso gradino alta: gradini ravvicinati fusi; bassa: una salita su 2 campioni spezzata
n_min_punti 6 campioni minimi per fittare un dominio; sotto → indeterminato alta: più domini non fittati
scarta_dopo_salto_n 1 campioni esclusi dal fit all'inizio di ogni raffreddamento (sicurezza dopo la salita) 0: nessuna esclusione; alta: perde campioni del decadimento

[fit] — regressione e scelta (fit.py, analisi.py)

Chiave Default Significato
raffreddamento_intermedio_fissa_da_finale ["c", "tau"] parametri che i raffreddamenti intermedi prendono dal raffreddamento finale (algoritmi.md §5b). [] = tutti liberi. Nomi ammessi: quelli del modello (c, A, tau)
perdita "soft_l1" funzione di perdita di least_squares: "linear" (minimi quadrati), "soft_l1", "huber" (robuste agli scarti, A14)
scala_perdita_sigma 3.0 scala s della perdita robusta, in multipli di \sigma: sotto s come i minimi quadrati, sopra cresce linearmente
tau_min_rel, tau_max_rel 0.05, 50.0 limiti di \tau come frazione della durata del dominio L: \tau \in [0.05L,\ 50L]; un \tau al bordo rende il fit non valido
n_griglia_tau 40 punti della griglia logaritmica su \tau per la partenza dell'esponenziale
soglia_condizione 10^8 numero di condizione dello jacobiano normalizzato oltre cui i parametri sono «non identificabili»
correggi_autocorrelazione true allarga gli intervalli di \sqrt{(1+\rho_1)/(1-\rho_1)} se \rho_1 supera soglia_acf (A17)
soglia_acf 0.3 soglia di \rho_1 per la correzione
soglia_delta_aicc 2.0 tra i modelli entro questo \Delta\mathrm{AICc} dal migliore vince quello con meno parametri
rmse_vs_rumore_max 1.3 un modello è «adeguato» se \mathrm{RMSE} \le questo valore \cdot\ \sigma

[fit.modelli_per_tipo] — modelli provati per tipo di dominio

Chiave Default Significato
riposo ["costante", "lineare", "esp_decad"] modelli provati sul riposo (A10)
raffreddamento ["esp_decad"] modelli provati sui raffreddamenti (A7)

Entrambe le liste sono obbligatorie e non vuote. Non esiste la voce riscaldamento: quel dominio non si fitta (A23). Modelli ammessi: i nomi in modelli.MODELLI.

[output] (cli.py)

Chiave Default Significato
cartella_output "output" cartella madre; ogni analisi scrive in <cartella_output>/<nome del csv senza estensione>/. --output DIR la sostituisce

domini.toml — domini modificabili (domini.py)

Scritto in output/<csv>/01_domini/domini.toml, rilegibile con fitseg analizza CSV --domini FILE (uso.md):

[[dominio]]
tipo = "raffreddamento"   # riposo | riscaldamento | raffreddamento
t0_s = 16.1000            # primo campione del dominio (incluso)
t1_s = 17.9100            # primo campione del dominio successivo (escluso); per l'ultimo: ultimo campione

I domini devono essere contigui (t_1 di uno uguale a t_0 del successivo): altrimenti exit 6.

Esempi

Voglio… Cambio
gradini più piccoli (es. 8 °C) [domini] soglia_gradino_c = 8.0 e verifica che gli scarti restino sotto la soglia (A5)
tutti i raffreddamenti con parametri liberi [fit] raffreddamento_intermedio_fissa_da_finale = []
fissare solo la costante di tempo ["tau"]
fit ai minimi quadrati puri perdita = "linear"
un'altra colonna del CSV [dati] serie = [...] e, se serve, [domini] serie_riferimento
tempo in secondi [dati] unita_tempo = "s" e colonna_tempo