Interpolazione B-spline
Le B-spline costituiscono un insieme ponderato di funzioni di base per le spline polinomiali.
• bspline(vx, vy, u, n) - Restituisce un vettore
vs, utilizzato da
interp, dei seguenti array nidificati: un flag per
interp, un array le cui colonne contengono i coefficienti di una B-spline di grado
n per i dati in
vx e
vy, dati i valori nodo in
u e un array le cui colonne contengono i punti finali degli intervalli specificati dai nodi.
La funzione
bspline può creare una spline lineare, quadratica o cubica. La spline risultante è diversa da
lspline,
pspline or
cspline poiché
bspline unisce i segmenti polinomiali in corrispondenza di nodi che possono differire dalle posizioni dei punti dati stessi.
Le funzioni descritte di seguito accettano pesi sui dati, riflettendo il livello di errore relativo. L'algoritmo del software calcola una stringa di nodi utilizzando la statistica di Durbin-Watson per decidere se accettare o rifiutare i fit per spline. In questo modo, le B-spline statistiche forniscono un numero minimo di nodi per riflettere tutte le feature dei dati.
• Spline2(vx, vy, n, [vw], [u], [level]) - Restituisce l'insieme ottimale di nodi B-spline di ordine n per l'interpolazione di dati vx e vy, con pesi vw facoltativi, nodi desiderati u facoltativi e un livello di rifiuto facoltativo. Il vettore restituito costituisce il secondo argomento di Binterp.
• Binterp(x, b) - Restituisce un valore di y interpolato con B-spline. corrispondente a x che utilizza il vettore di output, b, della funzione Spline2, nonché la prima, la seconda e la terza derivata.
• DWS(b) - Restituisce la statistica di Durbin-Watson per il vettore di output, b, della funzione Spline2.
L'interpolazione B-spline consente di far passare una curva per un insieme di punti prendendo tre punti adiacenti e costruendo un polinomio di grado npassante per tali punti. Questi polinomi vengono quindi collegati insieme in corrispondenza dei punti per formare la curva completa. Se i nodi sono meno numerosi dei punti dati ma formano comunque un'approssimazione ragionevole a y, le B-spline rappresentano un valido metodo per la compressione dei dati.
Le funzioni B-spline sopra descritte si basano sul software Spline2, sviluppato da B. J. Thijsse e M. A. Hollanders. Il software è documentato all'indirizzo http://dutsm183.stm.tudelft.nl/software/software.dita e il suo utilizzo è consentito previo permesso.
Argomenti
• vx, vy sono vettori reali di valori di dati con la stessa lunghezza.
• u è un vettore reale di nodi in ordine crescente con n − 1 elementi in meno rispetto a vx. A differenza di altre spline, nelle quali i nodi vengono impostati forzatamente sui valori di x, i nodi sono valori nei quali i singoli polinomi della B-spline si adattano gli uni agli altri. Il primo elemento in u deve essere minore o uguale al primo elemento in vx. L'ultimo elemento in u deve essere maggiore o uguale all'ultimo elemento in vx.
• nè un numero intero uguale a 1, 2 o 3, che indica il grado dei singoli fit di polinomi lineari a pezzi (n = 1), quadratici (n = 2) o cubici (n = 3) utilizzati nella B-spline.
• vw è un vettore facoltativo di pesi per la spline della stessa lunghezza di vx e vy.
• level è il livello di rifiuto, espresso sotto forma di percentuale compresa tra 0 e 1 inclusi.
• b è un vettore generato da Spline2.
• x è il valore della variabile indipendente per cui si desidera valutare la curva di interpolazione. Per risultati ottimali, x dovrebbe essere compreso nell'intervallo definito dai valori di vx.