Interpolazione numerica
Polinomi di Lagrange
di Giuseppe Sottile


\( \require{cancel} \) Consideriamo un certo insieme di coppie numeriche (\( x_i, y_i \)), che individuano dei punti detti punti nodali. $$ (x_0, y_0), \hspace{5mm} (x_1, y_1), \hspace{5mm}(x_2, y_2), \ldots (x_n, y_n) $$


Supponiamo che esista una certa funzione \( \phi \), tale per cui \( \phi(x_i) = y_i \). In sostanza conosciamo il valore della funzione solo per \( x_i \). E' come se avessimo fatto un qualche esperimento ed avessimo estratto solo dei determinati valori in determinati punti. Il problema dell'interpolazione è cercare, sulla base di questo insieme finito e discreto di punti nodali una funzione che passi per ogni punto nodale e che approssimi il comportamento della funzione reale non nota a priori. A seconda della tipologia della \( \phi \) cambia il tipo di interpolazione, in particolare se \( \phi \) è un polinomio, si parla di interpolazione polinomiale, se \( \phi \) è una sovrapposizione di seni e coseni, si parla di interpolazione trigonometrica, se \( \phi \) è un polinomio diverso per ogni sottointervallo, si parla di interpolazione composita,


Supponiamo di voler fare una approssimazione polinomiale. La nostra \( \phi \) dovrà essere un polinomio di grado \( n \) se vogliamo che passi per \(n+1 \) punti nodali: $$ \phi = a_0x^0 + a_1x^1 + \ldots + a_nx^n = a_i x^i$$ Il modo piu semplice per risolvere il problema, ma allo stesso meno intelligente di tutti, consiste semplicemente nell'impostare un sistema di condizioni di passaggio su tutti i punti nodali: $$ \begin{cases} a_0 + a_1x^1_0 + \ldots + a_nx^n_0 = y_0 \\ a_0 + a_1x^1_1 + \ldots + a_nx^n_1 = y_1 \\ \hspace{28mm} \vdots \\ a_0 + a_1x^1_n + \ldots + a_nx^n_n = y_n \\ \end{cases} $$ Oppure usando la convenzione di Einstein sugli indici ripetuti, possiamo scrivere il tutto in forma piu compatta: $$ a_i x^i_j = y_j \hspace{1cm} j = 1 \ldots n $$

$$ \diamond\diamond $$

Polinomio di Lagrange

Un teorema noto detto Teorema di Lagrange ci garantisce che se abbiamo \( n + 1 \) punti nodali, esiste ed è unico un polinomio speciale, che passa per tutti i suddetti punti noto come il polinomio di Lagrange (di ordine \(n\)) indicato con \( \Pi_n(x) \). Cioè si ha che: $$\Pi_n(x_i) = y_i $$


Il polinomio di Lagrange è definito nel modo seguente: $$ \Pi_n(x) = \sum_{i=0}^n y_i\mathcal L_i(x) $$ Dove la funzione \( \mathcal L_i(x) \) è detta funzione prodotto di Lagrange del polinomio. La \( \mathcal L_i(x) \) è un prodotto di \(n\) fattori. (Osservate come la condizione \(k \neq j\) garantisce che non vi sia il fattore critico \( {x-x_k \over x_k - x_k} \) cui corrisponderebbe uno zero a denominatore): $$ \mathcal L_j(x) = \prod_{k=0, k\neq j}^n {x-x_k \over x_j - x_k} $$

Proviamo a giocare con la formula esplicitando \( \mathcal L \) in alcuni casi particolari.

$$ \diamond \diamond $$ Proviamo ora a costruire un polinomio di Lagrange: Se inseriamo la definizione di \( \mathcal L \) nella formula del polinomio abbiamo che: $$ \Pi_n(x) = \sum_{i=0}^n y_i\mathcal L_i(x) = \sum_{i=0}^n y_i \prod_{k=0, k\neq i}^n {x-x_k \over x_i - x_k} $$


Quindi ad esempio un polinomio di ordine \( 1 \) sarà espresso in questo modo (osservate che ho volutamente inserito il fattore critico "che ho barrato" per mostrare che esso non deve esserci):

Per \(n=1\) Il polinomio sarà il seguente: $$ \Pi_n(x) = \sum_{i=0}^1 y_i\mathcal L_i(x) = y_0\mathcal L_0(x) + y_1\mathcal L_1(x) = $$ $$ \small y_0\prod_{k=0, k\neq 0}^1 {x-x_k \over x_0 - x_k} + y_1\prod_{k=0, k\neq 1}^1 {x-x_k \over x_1 - x_k} = $$ $$ \small = y_0\cancel{{x-x_0 \over x_0 - x_0}} {x-x_1 \over x_0 - x_1} + y_1{x-x_0 \over x_1 - x_0} \cancel{{x-x_1 \over x_1 - x_1}} = $$ $$ \small y_0{x-x_1 \over x_0 - x_1} + y_1{x-x_0 \over x_1 - x_0} $$


Abbiamo scoperto che nel prodotto della \( \mathcal L_i \) va tolto un fattore. In sostanza la \( \mathcal L_i \) non ha il fattore \(i\)-esimo perchè altrimenti quel fattore procurerebbe un denominatore nullo. Questo ci suggerisce che, osservando il calcolo appena svolto: un polinomio di Lagrange di ordine \(n\) ha esattamente \(n+1\) termini, ciascuno dei quali ha \(n\) fattori.

$$ \diamond \diamond $$

Per \(n=2\) Il polinomio sarà il seguente: $$ \Pi_n(x) = \sum_{i=0}^2 y_i\mathcal L_i(x) = y_0\mathcal L_0(x) + y_1\mathcal L_1(x) + y_2\mathcal L_2(x) = $$ $$ \small y_0\prod_{k=0, k\neq 0}^2 {x-x_k \over x_0 - x_k} + y_1\prod_{k=0, k\neq 1}^2 {x-x_k \over x_1 - x_k} + y_2\prod_{k=0, k\neq 2}^2 {x-x_k \over x_2 - x_k} = $$ $$ \small = y_0\cancel{{x-x_0 \over x_0 - x_0}} {x-x_1 \over x_0 - x_1}{x-x_2 \over x_0 - x_2} + y_1{x-x_0 \over x_1 - x_0} \cancel{{x-x_1 \over x_1 - x_1}}{x-x_2 \over x_1 - x_2} + y_2{x-x_0 \over x_2 - x_0} {x-x_1 \over x_2 - x_1}\cancel{{x-x_2 \over x_2 - x_2}} = $$ $$ \small = y_0{x-x_1 \over x_0 - x_1}{x-x_2 \over x_0 - x_2} + y_1{x-x_0 \over x_1 - x_0}{x-x_2 \over x_1 - x_2} + y_2{x-x_0 \over x_2 - x_0} {x-x_1 \over x_2 - x_1} $$



La proprietà di delta di kronecker

Prendiamo il polinomio di grado \( 2\) e proviano a calcolarlo prima in \(x_0\), poi in \(x_1\) ed infine in \( x_2\). $$ $$ $$ \small \Pi_n(\color{#0000bb}{x_0}) = y_0{\color{#0000bb}{x_0}-x_1 \over x_0 - x_1}{\color{#0000bb}{x_0}-x_2 \over x_0 - x_2} + y_1{\color{#0000bb}{x_0}-x_0 \over x_1 - x_0}{\color{#0000bb}{x_0}-x_2 \over x_1 - x_2} + y_2{\color{#0000bb}{x_0}-x_0 \over x_2 - x_0} {\color{#0000bb}{x_0}-x_1 \over x_2 - x_1} = y_0 $$ $$ \small \Pi_n(\color{#0000bb}{x_1}) = y_0{\color{#0000bb}{x_1}-x_1 \over x_0 - x_1}{\color{#0000bb}{x_1}-x_2 \over x_0 - x_2} + y_1{\color{#0000bb}{x_1}-x_0 \over x_1 - x_0}{\color{#0000bb}{x_1}-x_2 \over x_1 - x_2} + y_2{\color{#0000bb}{x_1}-x_0 \over x_2 - x_0} {\color{#0000bb}{x_1}-x_1 \over x_2 - x_1} = y_1 $$ $$ \small \Pi_n(\color{#0000bb}{x_2}) = y_0{\color{#0000bb}{x_2}-x_1 \over x_0 - x_1}{\color{#0000bb}{x_2}-x_2 \over x_0 - x_2} + y_1{\color{#0000bb}{x_2}-x_0 \over x_1 - x_0}{\color{#0000bb}{x_2}-x_2 \over x_1 - x_2} + y_2{\color{#0000bb}{x_2}-x_0 \over x_2 - x_0} {\color{#0000bb}{x_2}-x_1 \over x_2 - x_1} = y_2 $$

Quando calcoliamo il polinomio nel punto \(x_i\) otteniamo proprio \( y_i \), questo perchè tutti gli altri termini si annullano perchè in essi vi è almeno un fattore nullo, tranne il termine corrispondente allo stesso indice \( i \) il quale si semplifica in \( 1 \) e lascia sopravvivere la \( y_i \). In altre parole quello che stiamo dicendo è che la nostra \( \mathcal L_i(x_j) = \delta_{ij} \). Se infatti ricordiamo le proprietà della delta possiamo subito dedurre questa proprietà nel modo seguente: $$ \Pi_n(x_i) = y_i\delta_{ij} = y_j $$






Torna alla home