Spline cubica di Hermite

Da testwiki.
Versione del 25 dic 2019 alle 22:31 di imported>InternetArchiveBot (Recupero di 1 fonte/i e segnalazione di 0 link interrotto/i.) #IABot (v2.0)
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)
Vai alla navigazione Vai alla ricerca

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 xk per k=1,...,n, l'interpolazione è effettuata su ogni sottointervallo (xk,xk+1) alla volta (dato che i valori della tangente sono predeterminati). Il sottointervallo (xk,xk+1) è normalizzato all'intervallo (0,1) tramite la funzione t=(xxk)/(xk+1xk).

Interpolazione di un singolo intervallo

Interpolazione sull'intervallo (0,1)

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

𝒑(t)=(2t33t2+1)𝒑0+(t32t2+t)𝒎0+(2t3+3t2)𝒑1+(t3t2)𝒎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:

h00(t)=2t33t2+1=(1+2t)(1t)2
h10(t)=t32t2+t=t(1t)2
h01(t)=2t3+3t2=t2(32t)
h11(t)=t3t2=t2(t1)

Il polinomio diventa: 𝒑(t)=h00(t)𝒑0+h10(t)𝒎0+h01(t)𝒑1+h11(t)𝒎1.

Interpolazione su (xk,xk+1)

L'interpolazione di x nell'intervallo (xk,xk+1) viene ora effettuata con la formula

𝒑(x)=h00(t)𝒑0+h10(t)h𝒎0+h01(t)𝒑1+h11(t)h𝒎1.

con h=xk+1xk e t=(xxk)/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

Un set di dati, (xk,𝒑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

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

𝒎k=𝒑k+1𝒑k2(xk+1xk)+𝒑k𝒑k12(xkxk1)

per i punti interni k=2,...,n1.

Cardinal spline

Una cardinal spline si ottiene[1] se

𝒎k=(1c)𝒑k+1𝒑k12

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

Per le tangenti si applica

𝒎k=𝒑k+1𝒑k12

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

Una spline di Kochanek-Bartels è una generalizzazione su un modo di calcolare le tangenti partendo dai punti 𝒑k1, 𝒑k e 𝒑k+1, dove sono possibili 3 parametri detti tensione, bias e continuità.

Note

Bibliografia

  • 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

Template:Portale