Spline cubica di Hermite

Da Wikipedia, l'enciclopedia libera.
Se riscontri problemi nella visualizzazione dei caratteri, clicca qui.

In Analisi numerica la Spline cubica di Hermite (chiamata anche cspline), in onore del matematico Charles Hermite, è una Funzione spline di 3º grado dove ogni Polinomio della spline è nella forma di Hermite (da non confondere con i Polinomi di Hermite). La forma di Hermite consiste di due punti di controllo e di due tangenti di controllo per ogni polinomio.

Su una griglia composta dai punti x_k per k=1,...,n, l'interpolazione è effettuata su ogni sottointervallo (x_k, x_{k+1}) alla volta (dato che i valori della tangente sono predeterminati). Il sottointervallo (x_k, x_{k+1}) è normalizzato all'intervallo (0,1) tramite la funzione t = (x-x_k)/(x_{k+1}-x_k).

Interpolazione di un singolo intervallo[modifica | modifica wikitesto]

interpolazione sull'intervallo (0,1)[modifica | modifica wikitesto]

Con l'intervallo (0,1), dato il punto iniziale p0 con t=0 ed il punto finale p1 con t=1 con la tangente iniziale m0 con t=0 e tangente finale m1 con t=1, il polinomio è definito da

\boldsymbol{p}(t) = (2t^3-3t^2+1)\boldsymbol{p}_0 + (t^3-2t^2+t)\boldsymbol{m}_0 + (-2t^3+3t^2)\boldsymbol{p}_1 +(t^3-t^2)\boldsymbol{m}_1
Le 4 funzioni base di Hermite. L'interpolazione di ogni sottointervallo è una combinazione lineare di queste 4 funzioni.

dove t ∈ [0, 1].

Le 4 funzioni base di Hermite sono definite come:

h_{00}(t) = 2t^3-3t^2+1 = (1 + 2 t) ( 1 - t)^2
h_{10}(t) = t^3-2t^2+t  = t ( 1 - t)^2
h_{01}(t) = -2t^3+3t^2 = t^2 (3 - 2 t)
h_{11}(t) = t^3-t^2 = t^2 (t - 1)

Il polinomio diventa: \boldsymbol{p}(t) = h_{00}(t)\boldsymbol{p}_0 + h_{10}(t)\boldsymbol{m}_0 + h_{01}(t)\boldsymbol{p}_1 + h_{11}(t)\boldsymbol{m}_1.

Interpolazione su (x_k, x_{k+1})[modifica | modifica wikitesto]

L'interpolazione di x nell'intervallo (x_k, x_{k+1}) viene ora effettuata con la formula

\boldsymbol{p}(x) = h_{00}(t)\boldsymbol{p}_0 + h_{10}(t)h\boldsymbol{m}_0 + h_{01}(t)\boldsymbol{p}_1 + h_{11}(t)h\boldsymbol{m}_1.

con h = x_{k+1}-x_k e t = (x-x_k)/h. Si noti che i valori della tangente sono stati scalati di h in raffronto alla equazione presentata sull'intervallo unitario.

La formula garantisce un unico percorso tra i due punti iniziale e finale.

Interpolazione di un set di dati[modifica | modifica wikitesto]

Un set di dati, (x_k,\boldsymbol{p}_k) con k=1,...,n, viene interpolato applicando la procedura sopra esposta su ogni sottointervallo, dove le tangenti sono scelte in modo opportuno. Le tangenti per gli intervalli che condividono gli stessi punti finali sono uguali.

La scelta delle tangente non è univoca e ci sono diversi metodi che si possono applicare.

Differenze finite[modifica | modifica wikitesto]

La scelta più semplice è data dalla differenza su 3 punti e non richiede una lunghezza di intervallo costante,

\boldsymbol{m}_k = \frac{\boldsymbol{p}_{k+1}-\boldsymbol{p}_{k}}{2(x_{k+1}-x_{k})} + \frac{\boldsymbol{p}_{k}-\boldsymbol{p}_{k-1}}{2(x_{k}-x_{k-1})}

per i punti interni k=2,...,n-1.

Cardinal spline[modifica | modifica wikitesto]

Una cardinal spline si ottiene[1] se

 \boldsymbol{m}_k = (1-c)\frac{\boldsymbol{p}_{k+1}-\boldsymbol{p}_{k-1}}{2}

usata per calcolare le tangenti. Il parametro c detto tensione è nell'intervallo (0,1). Rappresenta la "lunghezza" della tangente. c=1 comporta tangenti lunghe pari a zero, e c=0 porta al caso delle spline di tipo Catmull-Rom.

Spline di Catmull–Rom[modifica | modifica wikitesto]

Per le tangenti si applica

\boldsymbol{m}_k = \frac{\boldsymbol{p}_{k+1} - \boldsymbol{p}_{k-1}}{2}

Una Catmull–Rom spline si ottiene come caso speciale delle cardinal spline.

La curva prende il nome da Edwin Catmull e Raphael (Raphie) Rom. In grafica computerizzata, le Catmull–Rom splines sono usate per ottenere un effetto morbido di interpolazione tra i keyframes di un video.

Spline di Kochanek–Bartels[modifica | modifica wikitesto]

Una spline di Kochanek-Bartels è una generalizzazione su un modo di calcolare le tangenti partendo dai punti \boldsymbol{p}_{k-1}, \boldsymbol{p}_k e \boldsymbol{p}_{k+1}, dove sono possibili 3 parametri detti tensione, bias e continuità.

Note[modifica | modifica wikitesto]

  1. ^ Cardinal Splines at Microsoft Developer Network

Bibliografia[modifica | modifica wikitesto]

  • Catmull, Edwin and Rom, Raphael, A class of local interpolating splines, in R.E. Barnhill and R.F. Riesenfed (eds.) Computer Aided Geometric Design, Academic Press, New York, 1974, 317-326.

Collegamenti esterni[modifica | modifica wikitesto]

Matematica Portale Matematica: accedi alle voci di Wikipedia che trattano di Matematica