# Curve fitting

Il curve fitting è il processo di costruzione di una curva o di una funzione matematica, che abbia la migliore corrispondenza a una serie di punti assegnati, possibilmente soggetti a limitazioni. Il curve fitting può implicare sia l'interpolazione, dove è richiesta un'esatta corrispondenza con i punti dati, o lo spianamento (smoothing), dove viene costruita una funzione piana che combaci approssimativamente con i dati. Un argomento correlato è l'analisi di regressione, che si focalizza maggiormente su problemi di inferenza statistica così come è presente un'incertezza riguardo al fatto che una curva coincida con i dati osservati che presentino errori casuali. Le curve approssimanti possono essere usate come aiuto per visualizzare i dati, per rappresentare i valori di una funzione dove non sono disponibili i dati, e per riassumere le relazioni tra due o più variabili. L'estrapolazione si riferisce all'uso di una curva approssimante lungo il range dei dati osservati, ed è soggetta ad un grado maggiore di incertezza in quanto può indicare il metodo usato per costruire la curva tanto quanto indichi i dati osservati.

## Differenti tipi di curve fitting
### Linee e curve polinomiali che approssimano dati puntuali

Si parta da un'equazione polinomiale di primo grado:
    $y=ax+b.$
Questa è una linea con coefficiente angolare a. Sappiamo che due punti qualsiasi possono essere connessi da una linea. Così, un'equazione polinomiale di primo grado è un'esatta approssimazione di due qualsiasi punti.
Se si aumenta l'ordine dell'equazione al secondo grado polinomiale, si ottiene:
    $y=ax^{2}+bx+c.$
Questa approssimerà esattamente una curva semplice attraverso tre punti.
Se si aumenta l'ordine dell'equazione al terzo grado polinomiale, si ottiene:
    $y=ax^{3}+bx^{2}+cx+d.$
Questa approssima esattamente quattro punti.
Una più generale affermazione potrebbe essere dire che essa approssima esattamente quattro vincoli. Ogni valore può essere un punto, un angolo, o una curvatura (che è il reciproco del raggio di un cerchio osculatore); i valori di angolo e di curvatura vengono molto spesso aggiunti alla fine di una curva, ed in tal caso vengono denominati condizioni finali. Condizioni finali identiche sono frequentemente usate per una transizione piana tra curve polinomiali contenute in una singola poligonale. Si possono aggiungere valori di ordine superiore, come la variazione della curvatura. Questo per esempio può essere utile per la progettazione delle rampe di accesso alle sopraelevate per capire le forze applicate a una macchina quando segue la curva e piazzare opportunamente limiti ragionevoli di velocità. Tenendo in mente ciò, l'equazione polinomiale di primo grado può essere un'approssimazione esatta per un singolo punto e un angolo e similmente l'equazione polinomiale di terzo grado può anche essere un'approssimazione esatta per due punti un valore angolare e un valore di curvatura. Sono possibili molte altre combinazioni di valori per queste equazioni polinomiali e per quelle di ordine superiore.
Se si ha più di n + 1 vincoli (essendo n il grado del polinomio), noi possiamo ancora far passare la curva polinomiale attraverso questi vincoli. Un'approssimazione esatta rispetto a tutti i vincoli non è certa ma può avvenire, per esempio nel caso del polinomio di primo grado che approssima esattamente tre punti allineati. In generale, comunque, alcuni metodi risultano talvolta necessari per valutare ogni approssimazione. Il metodo dei minimi quadrati è un mezzo per paragonare le deviazioni.
Ci si può ora meravigliare del perché si voglia ottenere una corrispondenza approssimata quando si potrebbe infatti aumentare il grado dell'equazione polinomiale e ottenere la corrispondenza esatta. Ci sono molte ragioni:
* anche se esiste una corrispondenza esatta, non significa necessariamente che si possa trovarlo. A seconda dell'algoritmo usato si possono incontrare casi divergenti, dove l'approssimazione esatta non può essere calcolata, o può esserci bisogno di troppo tempo di calcolo per trovare la soluzione. In questi casi, si può essere costretti ugualmente ad accettare una soluzione approssimata.
* Talvolta si potrebbe preferire l'effetto della casualità rispetto ad alcuni dati discutibili in un esempio, piuttosto che distorcere la curva per approssimarli esattamente.
* Il fenomeno di Runge: Polinomi di ordine superiore possono essere fortemente oscillatori. Se si passa una curva attraverso due punti A e B, ci si potrebbe attendere che la curva passi in qualche modo vicino al punto medio di A e B. Questo può non accadere con curve polinomiali di ordine superiore, esse possono avere sia valori di grandezza che siano enormemente positivi o negativi. con polinomiali di ordine inferiore, la curva ha maggior probabilità di coincidere con il punto medio (è comunque garantito che una polinomiale di primo grado passi attraverso il punto medio).
* I polinomiali di ordine inferiore tendono ad essere piani e le curve polinomiali di ordine elevato tendono ad essere contorti. Per dirla con precisione, il numero massimo di ogee/punti di flesso in una curva polinomiale è n-2, dove n è l'ordine dell'equazione polinomiale. Un punto di flesso è un luogo sulla curva dove si salta da un raggio positivo ad uno negativo. Si noti che è solo possibile che polinomiali di ordine elevato siano contorti, possono essere anche piani, ma di questo non c'è garanzia, se non per curve polinomiali di ordine inferiore. Un polinomio di grado quindici potrebbe avere, all'incirca, tredici punti di flesso, ma ne può avere anche dodici, undici, o qualsiasi altro numero fino a zero.
Ora che si è parlato sull'uso di un grado troppo basso per un'approssimazione esatta, si discuterà anche su ciò che avviene se il grado della curva polinomiale è più alto del necessario per una corrispondenza esatta. Questo è un male per tutte le ragioni elencate in precedenza per i polinomiali di ordine elevato, ma allo stesso tempo ci porta ad un caso dove si ha un'infinità di soluzioni. Per esempio, un polinomiale del primo ordine (una linea), vincolata ad un unico punto, invece dei soliti due, potrebbe dare infinite soluzioni. Questo Impone il problema su come confrontare e scegliere una sola soluzione, ciò può essere un problema sia per il software che per l'umano. Per questa ragione, di solito la cosa migliore è di scegliere il più basso grado possibile per un'esatta corrispondenza con tutti i vincoli, e nel caso di un grado inferiore, vedere se una corrispondenza approssimata sia accettabile.

### Fitting di altre curve ai dati

In alcuni casi si possono usare anche altri tipi di curve come le coniche (archi circolari, ellittici, parabolici e iperbolici) o funzioni trigonometriche (come seno e coseno). Per esempio, le traiettorie di oggetti sotto l'influenza della gravità seguono una traiettoria parabolica, quando si ignora la resistenza dell'aria. Perciò, potrebbe aver senso far corrispondere una traiettoria a una curva parabolica. Le maree seguono traiettorie sinusoidali, perciò i dati sui punti di marea devono essere associati a un'onda sinusoidale, o alla somma di due onde sinusoidali di periodi differenti, se si vogliono considerare entrambi gli effetti del Sole e della Luna.

### Fitting algebrico contro fitting geometrico per le curve

Per un'analisi algebrica dei dati, il fitting di solito significa cercare di trovare la curva che minimizza il discostamento verticale (cioè rispetto all'asse y) di un punto dalla curva (cioè l'approssimazione quadratica ordinaria). Comunque, per applicazioni di grafica e di immagine, il fitting geometrico cerca di fornire la curva di miglior visuale; che di solito significa tentare di minimizzare la distanza ortogonale dalla curva (cioè la regressione ortogonale), o altrimenti di includere gli scostamenti su entrambi gli assi di un punto dalla curva. I fit geometrici non sono popolari perché di solito richiedono calcoli non lineari e/o iterati, seppure essi hanno il vantaggio di un risultato più estetico ed accurato.

### Fitting di un cerchio con fit geometrico

Coope affronta il problema di cercare di trovare il miglior fit visuale di un cerchio ad un cerchio di due punti dati bidimensionali. Il metodo trasforma elegantemente il problema di solito non-lineare in un problema lineare che può essere risolto senza l'uso di metodi numerici iterativi, e che è perciò di un ordine di grandezza più veloce delle tecniche precedenti.

### Fitting di un'ellisse con fit geometrico

La tecnica precedente si estende anche ad una generica ellisse aggiungendo un passo non-lineare, ne risulta un metodo veloce, inoltre trova ellissi di gradevole aspetto con orientamento e scarto arbitrario.

### Applicazioni alle superfici

Si noti che sebbene questa discussione è trattata nei termini di curve bidimensionali, molta di questa logica si estende alle superfici tridimensionali, ogni pezzo delle quali è definito come una ragnatela di curve in due direzioni parametriche, di solito denominate u e v. Una superficie può essere composta da uno o più pezzi di superficie in ogni direzione.

## Software

Molti software di analisi statistica come R e software di analisi numerica come GNU Scientific library, SciPy e OpenOpt includono dei comandi per fare il curve fitting.