Funzione spline

Spline in legno
Una spline in legno

In analisi matematica, una spline è una funzione, costituita da un insieme di polinomi raccordati tra loro, il cui scopo è interpolare in un intervallo un insieme di punti (detti nodi della spline), in modo tale che la funzione sia continua almeno fino ad un dato ordine di derivate in ogni punto dell'intervallo.

Il calcolo di funzioni spline è un potente strumento di grafica computerizzata di tipo vettoriale, come il CAD (Computer Aided Design, cioè "disegno assistito al computer"). Il termine inglese spline sta a significare una striscia di metallo o di legno, perché originariamente la spline costituiva un particolare strumento di disegno formato da lunghe fettucce elastiche fissate ai nodi dell'interpolazione da grossi pesi.[1]

L'individuazione di funzioni richiede il calcolo dei coefficienti del polinomio interpolatore. Esistono varie modalità di generazione delle spline, ma, contrariamente ai metodi numerici di Newton e Lagrange, i cui polinomi hanno un grado che dipende dal numeri dei poli considerati, esse utilizzano polinomi di grado p {\displaystyle p} fissato per unire tutti gli n {\displaystyle n} nodi, con p < n {\displaystyle p<n} . Quindi una spline non genera un solo polinomio interpolatore, ma un insieme di polinomi che si raccordano tra loro, in modo tale che la funzione spline finale sia continua in tutti i nodi. Per esempio, si consideri una funzione spline di grado p = 3 {\displaystyle p=3} : essa genera un insieme di cubiche continue e derivabili due volte all'interno dell'intervallo di interpolazione; inoltre agli estremi dell'intervallo si richiede che la derivata seconda sia nulla, ossia che la funzione esca con andamento rettilineo al di fuori degli estremi dell'intervallo; in questo caso si parla di spline naturale.[1]

La spline ha la caratteristica di interpolare i punti in modo da non avere bruschi cambiamenti nella pendenza, ossia di essere molto smussata e liscia; infatti si può dimostrare che la funzione spline y = s ( x ) {\displaystyle y=s(x)} minimizza nell'intervallo di interpolazione [ a , b ] {\displaystyle [a,b]} la quantità

a b | s ( x ) | 2 d x , {\displaystyle {\sqrt {\int \limits _{a}^{b}\left\vert s''(x)\right\vert ^{2}dx}},}

che geometricamente, può essere interpretata come la misura della curvatura media della spline. Dal punto di vista fisico la condizione precedente traduce la condizione di minimizzazione dell'energia elastica posseduta dalle fettucce metalliche appartenenti all'originario strumento di disegno.[1]

Definizione

Sia Λ = { a = x 0 < x 1 < < x n = b } {\displaystyle \Lambda =\{a=x_{0}<x_{1}<\cdots <x_{n}=b\}} una suddivisione dell'intervallo chiuso [ a , b ] {\displaystyle [a,b]} . Una funzione spline di grado p {\displaystyle p} con nodi nei punti x i , {\displaystyle x_{i},} con i = 0 , 1 , 2 , , n , {\displaystyle i=0,1,2,\dots ,n,} è una funzione su [ a , b ] {\displaystyle [a,b]} indicata con s p ( x ) {\displaystyle s_{p}(x)} tale che, nell'intervallo [ a , b ] {\displaystyle [a,b]} si abbia:

  1. in ogni sottointervallo [ x i , x i + 1 ] , {\displaystyle [x_{i},x_{i+1}],} con i = 0 , 1 , 2 , , n 1 , {\displaystyle i=0,1,2,\dots ,n-1,} la funzione s p ( x ) {\displaystyle s_{p}(x)} è un polinomio di grado p {\displaystyle p} ;
  2. la funzione s p ( x ) {\displaystyle s_{p}(x)} e le sue prime p 1 {\displaystyle p-1} derivate sono continue.

Una funzione spline è interpolante se, oltre a soddisfare i due requisiti sopra indicati, passa per ognuno dei punti che la definiscono. In particolare, data la tabulazione (campionamento) di una funzione f ( x ) {\displaystyle f(x)} nei punti ( x i , y i ) , {\displaystyle (x_{i},y_{i}),} con i = 0 , 1 , , n , {\displaystyle i=0,1,\dots ,n,} è detta spline interpolante la spline s p ( x ) {\displaystyle s_{p}(x)} tale che: s p ( x i ) = y i {\displaystyle s_{p}(x_{i})=y_{i}} per ogni i = 0 , 1 , , n . {\displaystyle i=0,1,\dots ,n.}

Indicata con s p , j ( x ) {\displaystyle s_{p,j}(x)} la restrizione di una spline di grado p {\displaystyle p} sul sottointervallo [ x j , x j + 1 ] , {\displaystyle [x_{j},x_{j+1}],} per j = 0 , , n 1 , {\displaystyle j=0,\dots ,n-1,} si può sempre pensare a s p , j ( x ) {\displaystyle s_{p,j}(x)} nella forma

s p , j ( x ) = i = 0 p a i j ( x x j ) i , {\displaystyle s_{p,j}(x)=\sum _{i=0}^{p}a_{ij}(x-x_{j})^{i},}

dove gli n ( p + 1 ) {\displaystyle n(p+1)} coefficienti a i j {\displaystyle a_{ij}} (sono p + 1 {\displaystyle p+1} su ciascuno degli n {\displaystyle n} sottointervalli) sono da determinare imponendo le condizioni di continuità di s p ( k ) {\displaystyle s_{p}^{(k)}} nei nodi interni:

s p , j 1 ( k ) ( x j ) = s p , j ( k ) ( x j ) , {\displaystyle s_{p,j-1}^{(k)}(x_{j})=s_{p,j}^{(k)}(x_{j}),} per j = 1 , , n 1 k = 0 , , p 1. {\displaystyle j=1,\ldots ,n-1\quad k=0,\ldots ,p-1.}

Ciò però dà luogo a p ( n 1 ) {\displaystyle p(n-1)} equazioni, pertanto il sistema di equazioni così ottenuto, ha n + p = n ( p + 1 ) p ( n 1 ) {\displaystyle n+p=n(p+1)-p(n-1)} gradi di libertà. Anche nel caso delle spline interpolatorie, imponendo il passaggio della spline per i punti ( x i , y i ) , {\displaystyle (x_{i},y_{i}),} per i = 0 , , n , {\displaystyle i=0,\ldots ,n,} non si è ancora in grado di determinare p 1 {\displaystyle p-1} coefficienti. Per questo motivo nella pratica si è soliti aggiungere delle condizioni aggiuntive, in maniera che il sistema abbia soluzione unica.

Le condizioni aggiuntive più usate sono di due tipi:

  • s p ( k ) ( a ) = s p ( k ) ( b ) , {\displaystyle s_{p}^{(k)}(a)=s_{p}^{(k)}(b),} per k = 1 , , p 1 , {\displaystyle k=1,\ldots ,p-1,}

spline che soddisfano questo tipo di condizioni sono dette spline periodiche;

  • s p ( m + j ) ( a ) = s p ( m + j ) ( b ) = 0 , {\displaystyle s_{p}^{(m+j)}(a)=s_{p}^{(m+j)}(b)=0,} per j = 0 , , m 2 , {\displaystyle j=0,\ldots ,m-2,}

a patto però che sia p = 2 m 1 , {\displaystyle p=2m-1,} con m 2. {\displaystyle m\geq 2.} Spline che soddisfano condizioni di questo tipo sono invece dette spline naturali.

Tra tutte le funzioni appartenenti allo spazio di Sobolev H2 che passano per n {\displaystyle n} punti assegnati e che soddisfano una delle condizioni aggiuntive precedenti, la spline cubica interpolante è quella che minimizza l'integrale:

  ( | f ( 2 ) ( t ) | 2 d t ) 1 / 2 . {\displaystyle \ \left(\int \left|f''{(2)}(t)\right|^{2}\,dt\right)^{1/2}.}

Tale integrale, se la derivata prima è piccola, può essere interpretato come una buona approssimazione della curvatura media. Il fatto che sia minimo giustifica l'affermazione che la spline è la funzione interpolante più liscia.

Note

  1. ^ a b c Walter Maraschini e Mauro Palma, Garzantina di Matematica, Garzanti, 2014.

Voci correlate

  • Interpolazione spline
  • Isaac Jacob Schoenberg
  • Computer grafica
  • Computer grafica 3D
  • Grafica vettoriale

Altri progetti

Altri progetti

  • Wikimedia Commons
  • Collabora a Wikimedia Commons Wikimedia Commons contiene immagini o altri file su funzione spline

Collegamenti esterni

Computer Code
  • Python Debugged Spline Interpolation
Controllo di autoritàThesaurus BNCF 57247 · LCCN (EN) sh85126830 · J9U (ENHE) 987007529445505171
  Portale Matematica: accedi alle voci di Wikipedia che trattano di matematica