12.07.2015 Views

Algoritmi per l'interpolazione polinomiale Implementazione MATLAB

Algoritmi per l'interpolazione polinomiale Implementazione MATLAB

Algoritmi per l'interpolazione polinomiale Implementazione MATLAB

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

3 RAPPRESENTAZIONE DEL POLINOMIO INTERPOLANTE 9dove i coefficienti sono le differenze divisef[x 0 , . . . , x n ] = f[x 1, x 2 , . . . , x n ] − f[x 0 , x 1 , . . . , x n−1 ]x n − x 0Anche in questo caso è possibile costruire una tabella, detta tabella delle differenzedivise, che partendo da f[x i ] = y i <strong>per</strong>mette di arrivare a f[x 0 , x 1 , . . . , x n ].L’algoritmo ha un costo computazionale dell’ordine di O(n 2 ).3.7 newton.mLa function p = newton(x, xi, yi) costruisce il polinomio interpolante p n (x)utilizzando la formula di Newton. Tale polinomio viene poi valutato in ciascunpunto del vettore x.La costruzione di p n avviene in due fasi% costruzione del vettore f delle differenze divisef = givdifdiv(xi, yi);% costruzione del polinomio interpolantep = givehorner(x, xi, f);Nella prima fase si costruisce la tabella delle differenze divise utilizzando un vettoref, in modo simile alla tabella di Neville. Questa o<strong>per</strong>azione viene svolta dalla functionf = givdifdiv(x, y) che costruisce il vettore f in modo che i suoi elementisiano le differenze divisef[x 0 ] f[x 0 , x 1 ] f[x 0 , x 1 , x 2 ] . . . f[x 0 , x 1 , . . . , x n ]Nella seconda fase viene costruito il polinomio interpolante utilizzando l’algoritmodi Horner, implementato nella function h = givehorner(x, xi, c), dove c è ilvettore dei coefficienti del polinomio. L’algoritmo di Horner o<strong>per</strong>a in questo modo:n = length(c);h = c(n);for k = n-1 : -1 : 1h = h .* ( x - xi(k) ) + c(k);end

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!