spline

download spline

of 15

description

metodo di interpolzione spline

Transcript of spline

  • Interpolazione con spline

  • Interpolazione con spline

    Talvolta il fit con polinomi di ordine alto puo dare risultati poco affidabili, specialmente se si hanno bruschi cambiamenti nella funzione. Linterpolazione con la spline fornisce un andamento piu smussato tra i dati. Si basa sullapplicazione di un polinomio di ordine piu basso diverso per ognuno dei vari intervalli tra I punti. La continuita della funzione e garantita usando vincoli ai valori delle derivate della funzione nei nodi.

  • Qui linterpolazione con il polinomio sovrastima la funzione. La spline invece offre una transizione piu smussata e piu attendibile

    Si utilizza una diversa funzione di spline per ogni singolo intervallo

    nodo

  • Spline lineare Ogni intervallo e connesso con una linea retta

    la spline lineare e identica al fit con polinomio del primo ordine la funzione di spline lineare e discontinua nelle posizioni dei nodi. Pertanto abbiamo bisogno di usare polinomi di ordine superiore per garantire la continuita della funzione. In generale per garantire che la derivata di ordine m sia continua, bisogna usare un fit con una spline di ordine (m+1)

    Per ogni intervallo

    dove

    f x( ) = f xi( ) + mi x xi( )

    mi =f xi+1( ) f xi( )

    xi+1 xi( )

  • Spline quadratica Nella spline quadratica, ogni intervallo e rappresentato da un diverso polinomio del secondo ordine

    Per (n+1) punti, ci sono n intervalli. Ci sono quindi 3 x n incognite da trovare .

    f x( ) = aix 2 + bix + ci

  • 1. Le due funzioni adiacenti devono passare per i punti interni: 2(n-1) equazioni per i=2,n

    2. La prima e lultima funzione devono passare per i punti finali: 2 equazioni

    Condizioni

    ai1xi12 + bi1xi1 + ci1 = f xi1( )aixi12 + bixi1 + ci = f xi1( )

    a1x02 + b1x0 + c1 = f x0( )anxn2 + bnxn + cn = f xn( )

  • 3. Le derivate prime nei punti interni devono essere uguali: (n-1) equazioni, per i=2,n

    4. Il vincolo mancante e scelto in modo arbitrario: 1 equazione

    Condizioni

    f x( ) = 2ax + b

    2ai1xi1 + bi1 = 2aixi1 + bi

  • 1. Le due funzioni adiacenti devono passare per i punti interni: 2(n-1) equazioni

    2. La prima e lultima funzione devono passare per i punti finali: 2 equazioni

    3. Le derivate prime nei punti interni devono essere uguali: (n-1) equazioni

    4. Il vincolo mancante e scelto in modo arbitrario: 1 equazione

    Queste 3n equazioni lineari devono essere risolte simultaneamente (sistema lineare algebrico) per trovare i 3n coefficienti.

    Nota: la continuita della derivata seconda sui nodi non e garantita!

    Condizioni: ricapitolando

  • Spline cubica Nella spline cubica, ogni intervallo e rappresentato da un diverso polinomio del terzo ordine

    Per (n+1) punti, ci sono n intervalli. Ci sono quindi 4 x n incognite da trovare.

    f x( ) = aix 3 + bix 2 + cix + di

  • 1. Le due funzioni adiacenti devono passare per i punti interni: 2(n-1) equazioni

    2. La prima e lultima funzione devono passare per i punti finali: 2 equazioni

    3. Le derivate prime nei punti interni devono essere uguali: (n-1) equazioni

    4. Le derivate seconde nei punti interni devono essere uguali: (n-1) equazioni

    5. Le derivate seconde nei nodi finali sono assunte nulle 2 equazioni (condizioni arbitrarie dette di spline naturale)

    Queste 4n equazioni lineari devono essere risolte simultaneamente (sistema lineare algebrico) per trovare i 4n coefficienti.

    Nota: la continuita della derivata terza sui nodi non e garantita!

    Condizioni

  • Spline cubica Lalgoritmo della spline cubica deve: - Controllare che gli (n+1) dati siano in ordine crescente - Costruire la matrice rappresentativa del sistema lineare algebrico le cui incognite sono le derivate seconde nei (n-1) punti interni:

    xi xi1( ) f xi1( ) + 2 xi+1 xi1( ) f xi( ) + xi+1 xi( ) f xi+1( ) =6

    xi+1 xi( )f xi+1( ) f xi( )[ ] + 6xi xi1( )

    f xi1( ) f xi( )[ ]

    Ricordarsi anche che

    f x0( ) = f xn( ) = 0

  • - Risolvere il sistema lineare algebrico - Una volta trovate tutte le (n+1) derivate seconde nei nodi, per ogni generico punto x in cui si vuole fare linterpolazione, occorre prima trovare lintervallino a cui x appartiene

    xi1 < x < xi

    fi x( ) = f xi1( )

    6 xi xi1( )xi x( )

    3+

    f xi( )6 xi xi1( )

    x xi1( )3

    +

    f xi1( )xi xi1( )

    f xi1( ) xi xi1( )

    6

    xi x( ) +

    f xi( )xi xi1( )

    f xi( ) xi xi1( )

    6

    x xi1( )

    Dopo di che il valore interpolato in x e ottenuto dalla formula

  • Perche (n-1) incognite anziche 4 x n? Se il polinomio e una cubica, la sua derivata seconda euna retta, che si puo scrivere come polinomio di Lagrange al primo ordine:

    fi x( ) = f xi1( )x xixi1 xi

    + f xi( )x xi1xi xi1

    Integrando due volte, servono due costanti di integrazione: vengono fissate in modo che f(x) assuma gli opportuni valori a xi-1 e xi. Cosi si ottiene una relazione complicata, ma con solo 2 incognite!

    fi x( ) = f xi1( )

    6 xi xi1( )xi x( )

    3+

    f xi( )6 xi xi1( )

    x xi1( )3

    +

    f xi1( )xi xi1( )

    f xi1( ) xi xi1( )

    6

    xi x( ) +

    f xi( )xi xi1( )

    f xi( ) xi xi1( )

    6

    x xi1( )

  • Se si deriva lequazione precedente e si impongono le condizioni di continuita sulle derivate prima si ottiene:

    xi xi1( ) f xi1( ) + 2 xi+1 xi1( ) f xi( ) + xi+1 xi( ) f xi+1( ) =6

    xi+1 xi( )f xi+1( ) f xi( )[ ] + 6xi xi1( )

    f xi1( ) f xi( )[ ]

    Relazione con solo 3 incognite in ogni equazione: matrice rappresentativa tridiagonale!

  • Matrice tri-diagonale

    f1 g1 0 . . . .e2 f2 g2 0 . . .0 e3 f3 g3 0 . .. . . . . . .. . . . . . .. . . 0 en2 fn2 gn2. . . . 0 en1 fn1

    f1f2f3..

    fn2fn1

    =

    c1c2c3..

    cn2cn1