Oggi è 29/04/2024, 15:38


Interpolazione Spline Cubica

In questo spazio vengono discussi argomenti semplici che riguardano soprattutto chi è alle prime armi
  • Autore
  • Messaggio
Non connesso
Avatar utente

Enrico

  • Messaggi: 90
  • Iscritto il: 15/10/2011, 21:11

Interpolazione Spline Cubica

Messaggio29/02/2012, 11:53

Inizio la trattazione di un argomento che spero possa essere di interesse pubblico; dell'interpolazione ne ha già parlato magistralmente Mauro evidenziando la conoscenza e la padronanza della materia di cui stava parlando.
Io, con questa trattazione, voglio solo dare uno strumento aggiuntivo, cercando di ridurre al minimo la matematica, in prima istanza perchè non sono così bravo come Mauro ed in seconda istanza per arrivare velocemente all'obiettivo finale; alla fine della trattazione infatti allegherò un file Excel che illustrerà come usare l'interpolazione Spline per calcolare lo skew (o smile) di volatilità.
TEORIA è quando si sa tutto ma non funziona niente, PRATICA è quando funziona tutto ma non si sa perchè:
per me TEORIA e PRATICA si fondono in un unico concetto: NON MI FUNZIONA NIENTE E NON SO NEANCHE PERCHE'!!
Non connesso
Avatar utente

Enrico

  • Messaggi: 90
  • Iscritto il: 15/10/2011, 21:11

Re: Interpolazione Spline Cubica

Messaggio29/02/2012, 11:57

L’interpolazione polinomiale ha diversi vantaggi, primo tra tutti la facilità di calcolo. Tuttavia presenta alcuni difetti, il principale dei quali è rappresentato dal fatto che all’aumentare del grado n del polinomio interpolante si presentano solitamente delle forti oscillazioni. Questo rende alcune volte l’interpolazione polinomiale inacettabile.

Per ovviare al problema accennato si puo' pensare di interpolare la funzione f(x) utilizzando dei polinomi di grado basso, pertanto poco oscillanti, ma solo in opportuni sottointervalli, cioè utilizzando le funzioni cosiddette polinomiali a tratti, tra le quali le piu' comunemente utilizzate sono le funzioni SPLINE.
TEORIA è quando si sa tutto ma non funziona niente, PRATICA è quando funziona tutto ma non si sa perchè:
per me TEORIA e PRATICA si fondono in un unico concetto: NON MI FUNZIONA NIENTE E NON SO NEANCHE PERCHE'!!
Non connesso
Avatar utente

Enrico

  • Messaggi: 90
  • Iscritto il: 15/10/2011, 21:11

Re: Interpolazione Spline Cubica

Messaggio29/02/2012, 12:11

Le spline sono particolari curve polinomiali a tratti, costituite da archi di curva che si succedono in sequenza, la cui espressione analitica si ottiene imponendo una serie di condizioni di continuità .

Il primo caso è quello delle splines di grado 1, cioè funzioni che in ogni intervallo [x_i, x_{i+1}]
(per i = 0, . . . ,N −1) sono polinomi di grado m = 1 e globalmente funzioni di classe C_{m-1} = C_0, cioè continue.
Non hai i permessi necessari per visualizzare i file allegati in questo messaggio.
TEORIA è quando si sa tutto ma non funziona niente, PRATICA è quando funziona tutto ma non si sa perchè:
per me TEORIA e PRATICA si fondono in un unico concetto: NON MI FUNZIONA NIENTE E NON SO NEANCHE PERCHE'!!
Non connesso
Avatar utente

Enrico

  • Messaggi: 90
  • Iscritto il: 15/10/2011, 21:11

Re: Interpolazione Spline Cubica

Messaggio29/02/2012, 12:37

Un esempio notevole è quello delle splines cubiche s3, cioè funzioni che in ogni intervallo [x_i, x_{i+1}] (per i = 0, . . . ,N −1) siano polinomi di grado m = 3 e globalmente funzioni di classe C_{m-1} = C_2, quindi con stessa tangente e curvatura.
Non hai i permessi necessari per visualizzare i file allegati in questo messaggio.
TEORIA è quando si sa tutto ma non funziona niente, PRATICA è quando funziona tutto ma non si sa perchè:
per me TEORIA e PRATICA si fondono in un unico concetto: NON MI FUNZIONA NIENTE E NON SO NEANCHE PERCHE'!!
Non connesso
Avatar utente

Enrico

  • Messaggi: 90
  • Iscritto il: 15/10/2011, 21:11

Re: Interpolazione Spline Cubica

Messaggio29/02/2012, 12:47

Più esplicitamente: nei punti di raccordo dei vari polinomi utilizzati per interpolare la curva, devono essere rispettate (come si vede bene dalla figura sopra inserita) delle condizioni di continuità, altrimenti la curva sarebbe composta da una serie di pezzi sconnessi tra di loro. Grazie a queste condizioni la curva ha un andamento continuo senza mostrare cuspidi o anomalie di nessun genere.
TEORIA è quando si sa tutto ma non funziona niente, PRATICA è quando funziona tutto ma non si sa perchè:
per me TEORIA e PRATICA si fondono in un unico concetto: NON MI FUNZIONA NIENTE E NON SO NEANCHE PERCHE'!!
Non connesso

Mauro

  • Messaggi: 628
  • Iscritto il: 22/10/2011, 1:32
  • Località: Roma

Re: Interpolazione Spline Cubica

Messaggio29/02/2012, 16:03

Ottimo Enrico: ti seguo con vero e vivo interesse!
:13
Non connesso
Avatar utente

Enrico

  • Messaggi: 90
  • Iscritto il: 15/10/2011, 21:11

Re: Interpolazione Spline Cubica

Messaggio29/02/2012, 18:06

In programmazione le Spline possono inoltre sfruttare agevolmente formule di ricorrenza e, poichè sono costituite da tratti di polinomi, sono utilizzabili direttamente per calcolare derivate e integrali.
Le B-Spline, una variante delle Spline, offrono una serie di ulteriori vantaggi di carattere computazionale e sono particolarmente utili nei problemi di interpolazione in 2 o 3 dimensioni.

Analizziamo brevemente le caratteristiche generali delle Spline:
Come già detto, una funzione Spline è definita come un polinomio a tratti; il suo dominio è suddiviso in una serie di sottodomini, all’interno dei quali la funzione viene rappresentata da un polinomio di ordine n. Negli estremi di questi sottodomini, detti "nodi", vengono inoltre soddisfatte le condizioni di continuità della funzione e delle sue derivate di ordine n-1 e, come abbiamo visto, la funzione risulterà di classe C_2.
TEORIA è quando si sa tutto ma non funziona niente, PRATICA è quando funziona tutto ma non si sa perchè:
per me TEORIA e PRATICA si fondono in un unico concetto: NON MI FUNZIONA NIENTE E NON SO NEANCHE PERCHE'!!
Non connesso
Avatar utente

Enrico

  • Messaggi: 90
  • Iscritto il: 15/10/2011, 21:11

Re: Interpolazione Spline Cubica

Messaggio29/02/2012, 18:48

Dimostrazione: Spline cubica

- s(x) è un polinomio di grado 3 su ogni sottointervallo [x_{k-1}, x_k], k = 1,...,n; indichiamo con s_k (x) il polinomio che rappresenta la spline su [x_{k-1}, x_k], k = 1,...,n;
- s(x) ; s' (x) ; s'' (x) continue su [x_0; x_n].

La spline è rappresentata su ognuno degli n sottointervalli da un polinomio di grado 3, identi cato quindi da 4 coefficienti. La
spline è completamente determinata se si conoscono i coefficienti di ciascun polinomio componente.

Grado 3
\begin{cases} s_k(x) = a_kx^3 + b_kx^2 + c_kx + d_k 
\\ k = 1,....,n
\\ \end{cases} 
\Rightarrow 
\text{4n gradi di Libertà}

Interpolazione
\begin{cases} 
 s(x_i) = y_i \\
 i = 0,....,n \\
\end{cases} 
\Rightarrow 
\text{n+1 condizioni}

Regolarità
\begin{cases}
 s_i(x_i) = s_{i+1}(x_i) \\
 s^\prime_i(x_i) = s^\prime_{i+1}(x_i) \\
 s^{\prime\prime}_i(x_i) = s^{\prime\prime}_{i+1}(x_i) \\
 i=1,....,n-1
\end{cases}
\Rightarrow 
\text{3(n-1) condizioni}

4n-(n + 1)-3(n - 1)=2 gradi di libertà
TEORIA è quando si sa tutto ma non funziona niente, PRATICA è quando funziona tutto ma non si sa perchè:
per me TEORIA e PRATICA si fondono in un unico concetto: NON MI FUNZIONA NIENTE E NON SO NEANCHE PERCHE'!!
Non connesso
Avatar utente

Enrico

  • Messaggi: 90
  • Iscritto il: 15/10/2011, 21:11

Re: Interpolazione Spline Cubica

Messaggio29/02/2012, 19:51

Per determinare in modo univoco s (x) servono 2 condizioni aggiuntive che si ottengono imponendo le condizioni di spline
naturale:

s^{\prime\prime}_1(x_0) = s^{\prime\prime}_n (x_n) = 0

Imponendo le condizioni aggiuntive, si ottiene un sistema di 4n equazioni nelle 4n incognite {a_k, b_k, c_k, d_k} ; k = 1,...., n, che ammette una ed una sola soluzione.

Indichiamo con s_j (x) il pezzo di spline cubica sull'intervallo [x_{j-1}, x_j ], j = 1,...,n e con m_k il valore della derivata seconda della spline nei nodi x_k, k = 0,...,n.

m_k = s^{\prime\prime}(x_k), k = 0,...,n.

Per la continuità della derivata seconda nei nodi vale;

s^{\prime\prime}_{j-1}(x_j) = s^{\prime\prime}_j(x_j) = s^{\prime\prime}(x_j)

s_j(x) è un polinomio di terzo grado, quindi s^{\prime\prime}_j(x) è un polinomio di primo grado, una retta, passante per i punti

(x_{j-1}; s^{\prime\prime}_j (x_{j-1})), (x_j; s^{\prime\prime}_j (x_j)), cioè con la notazione introdotta (x_{j-1},m_{j-1}), (x_j, m_j)

L'espressione della derivata seconda sarà quindi:

s^{\prime\prime}_j(x)={m_j {(x_{j-1}-x) \over -h_j}+m_{j-1} {(x_j-x)\over h_j}}, \text{        } h_j = x_j -x_{j-1}.
TEORIA è quando si sa tutto ma non funziona niente, PRATICA è quando funziona tutto ma non si sa perchè:
per me TEORIA e PRATICA si fondono in un unico concetto: NON MI FUNZIONA NIENTE E NON SO NEANCHE PERCHE'!!
Non connesso
Avatar utente

Enrico

  • Messaggi: 90
  • Iscritto il: 15/10/2011, 21:11

Re: Interpolazione Spline Cubica

Messaggio29/02/2012, 22:48

Integrando due volte si ottiene l'espressione di s_j (x), in termini di m_j , m_{j-1} che non sono noti:

s_j(x)=m_j{(x_j-x)^3 \over -6h_j}+m_{j-1}{(x_j-x)^3 \over 6hj}+C_j(x_{j-1}-x) +D_j(x_j-x).

Per determinare le costanti incognite C_j e D_j , si impongono le condizioni di interpolazione:

s_j(x_j) = y_j

sj (x_{j-1}) = y_{j-1}

da cui si ricava il sistema di due equazioni nelle due incognite C_j e D_j

m_j{h_j^2 \over 6}-C_jh_j=y_j

m_{j-1}{h_j^2 \over 6}+D_jh_j=y_{j-1}
TEORIA è quando si sa tutto ma non funziona niente, PRATICA è quando funziona tutto ma non si sa perchè:
per me TEORIA e PRATICA si fondono in un unico concetto: NON MI FUNZIONA NIENTE E NON SO NEANCHE PERCHE'!!
Prossimo

Torna a Concetti di base



Chi c’è in linea

Visitano il forum: Nessuno e 149 ospiti