Matly

Interpolació polinòmica i splines: Lagrange, Newton, error i fenomen de Runge

Vols practicar? Aquest tema té 160 exercicis interactius de 2 tipus, de deu en deu, amb correcció immediata i explicació pas a pas.

Interpolar és construir una funció que passi exactament pels punts que et donen. És una cosa diferent d'ajustar per mínims quadrats, que busca la millor aproximació però no obliga a passar per cap punt. Quina de les dues vols depèn de si les teves dades són exactes (valors tabulats d'una funció) o sorolloses (mesures experimentals): interpolar dades amb soroll és una mala idea, perquè obligues la corba a seguir l'error.

Existència i unicitat

Hi ha un únic interpolant de grau baix

Donats n+1n+1 nodes diferents amb els seus valors, existeix un únic polinomi de grau com a molt nn que hi passa per tots.

L'existència la demostra la fórmula de Lagrange. La unicitat és elegant: si n'hi hagués dos, la seva diferència tindria grau com a molt nn i s'anul·laria en n+1n+1 punts diferents; un polinomi no nul de grau nn no pot tenir tantes arrels, de manera que la diferència és zero.

Aquest resultat vol dir que totes les fórmules que veuràs donen el mateix polinomi: Lagrange, Newton i la baricèntrica són formes diferents d'escriure el mateix objecte, triades segons el que vulguis fer amb ell.

Lagrange: la forma conceptual

La base cardinal es construeix perquè cada element valgui 11 al seu node i 00 a tots els altres:

ℓi(x)=∏j≠ix−xjxi−xj,p(x)=∑i=0nyi ℓi(x).\ell_i(x) = \prod_{j\neq i}\frac{x-x_j}{x_i-x_j}, \qquad p(x) = \sum_{i=0}^{n} y_i\,\ell_i(x).

Amb aquesta propietat, que l'interpolació es compleixi és immediat: en avaluar al node ii, només sobreviu el terme ii. Els denominadors expliquen per què els nodes han de ser diferents.

És perfecta per demostrar coses i incòmoda per calcular: afegir un node obliga a refer-ho tot, i avaluar-la de manera ingènua és car. Per això existeix la forma baricèntrica, que precalcula uns pesos i converteix l'avaluació en un quocient de dues sumes. Multiplicar tots els pesos per una constant no canvia res, cosa que permet reescalar-los per evitar desbordaments.

Newton: la forma que es pot actualitzar

Les diferències dividides es defineixen recursivament: la d'ordre zero és el valor, i cada ordre superior és la diferència de dues de l'ordre anterior dividida per la separació dels nodes extrems. Amb elles,

pn(x)=f[x0]+∑k=1nf[x0,…,xk]∏j=0k−1(x−xj).p_n(x) = f[x_0] + \sum_{k=1}^{n} f[x_0,\ldots,x_k]\prod_{j=0}^{k-1}(x-x_j).

L'avantatge pràctic és decisiu: afegir un node nou només afegeix un terme, sense tocar els anteriors. L'ordre en què poses els nodes canvia les diferències intermèdies però no el polinomi final, perquè aquest és únic.

Una interpolació completa amb tres punts

Interpola els punts (0,1)(0,1), (1,2)(1,2) i (2,5)(2,5).

Diferències d'ordre 1: (2−1)/(1−0)=1(2-1)/(1-0) = 1 i (5−2)/(2−1)=3(5-2)/(2-1) = 3.

Diferència d'ordre 2: (3−1)/(2−0)=1(3-1)/(2-0) = 1.

L'interpolant:

p(x)=1+1⋅x+1⋅x(x−1)=1+x+x2−x=1+x2.p(x) = 1 + 1\cdot x + 1\cdot x(x-1) = 1 + x + x^{2} - x = 1 + x^{2}.

Comprovació: a x=0x=0 dona 11, a x=1x=1 dona 22 i a x=2x=2 dona 55. Correcte.

L'avís important. A x=3x = 3 l'interpolant val 1010. Però això és extrapolació, fora del rang dels nodes, i no hi ha cap garantia que la dada real sigui 1010. Res del que has calculat no diu res sobre el que passa fora de l'interval dels nodes.

L'error d'interpolació

Si la funció és prou derivable en un interval que conté els nodes i el punt, existeix un punt intermedi tal que

f(x)−pn(x)=f(n+1)(ξ)(n+1)!∏i=0n(x−xi).f(x) - p_n(x) = \frac{f^{(n+1)}(\xi)}{(n+1)!}\prod_{i=0}^{n}(x-x_i).

La demostració consisteix a triar una constant perquè una funció auxiliar s'anul·li als nodes i al punt, i aplicar Rolle repetidament.

La fórmula té dos factors i tots dos importen. El producte nodal és petit a prop del centre dels nodes i gran als extrems, i creix molt de pressa fora de l'interval. I la derivada d'ordre alt pot créixer enormement amb nn per a algunes funcions.

Augmentar el grau no garanteix millorar

La intuïció diu que amb més punts l'aproximació ha de ser millor. És falsa. Amb nodes equidistants, la interpolació de grau alt de la funció de Runge 1/(1+25x2)1/(1+25x^{2}) a l'interval de −1-1 a 11 oscil·la cada vegada més violentament prop dels extrems, i l'error creix sense límit.

La causa és exactament el que diu la fórmula de l'error: les derivades d'ordre alt d'aquesta funció creixen més de pressa que el factorial no les pot compensar.

El fenomen de Runge, amb números

La funció 1/(1+25x2)1/(1+25x^{2}) a l'interval de −1-1 a 11 sembla inofensiva: és suau, acotada entre 00 i 11 i simètrica.

Interpolant-la amb nodes equidistants, l'error màxim a l'interval fa això: amb 55 nodes és d'uns 0,430{,}43; amb 1111 nodes puja a uns 1,91{,}9; i amb 2121 nodes ja passa de 5050. L'error creix amb el grau.

Amb nodes de Txebixev, en canvi, l'error baixa de manera contínua i amb 2121 nodes ja és inferior a 0,010{,}01.

Per què. La fórmula de l'error té dos factors. El producte nodal és enorme prop dels extrems amb nodes equidistants, i els nodes de Txebixev estan dissenyats justament per minimitzar-ne el màxim. A més, les derivades d'ordre alt d'aquesta funció creixen més de pressa que el factorial no les pot compensar.

La conclusió pràctica és senzilla: amb més de vuit o deu punts, no interpolis amb un sol polinomi de nodes equidistants. O tries millor els nodes, o passes a splines.

Condicionament i nodes de Txebixev

Si les dades tenen soroll, la pertorbació de l'interpolant s'acota per la constant de Lebesgue, que és el màxim de la suma dels mòduls de la base cardinal. Mesura la sensibilitat del problema, no de l'algorisme: una constant de Lebesgue gran vol dir que cap mètode no pot ser robust amb aquells nodes.

La solució és triar millor els nodes. Les arrels dels polinomis de Txebixev,

xk=cos⁡(2k+1)π2n+2,x_k = \cos\frac{(2k+1)\pi}{2n+2},

minimitzen el màxim del producte nodal entre tots els polinomis mònics del mateix grau, i fan que la constant de Lebesgue creixi només logarítmicament en comptes d'exponencialment. Es concentren a prop dels extrems, que és justament on el problema era pitjor. Això millora molt el control de l'error, però no substitueix les hipòtesis de regularitat de la funció.

Splines cúbics

L'altra sortida és renunciar a un sol polinomi de grau alt i fer servir polinomis de grau baix a cada tros. Un spline cúbic interpolador és cúbic a cada interval, passa pels valors, i té continuïtat de les dues primeres derivades als nodes interiors. Aquestes condicions no basten: calen dues condicions addicionals, per exemple imposar segona derivada nul·la als extrems (spline natural) o fixar les derivades primeres.

Amb els separacions entre nodes i les segones derivades als nodes com a incògnites, les condicions de continuïtat donen un sistema tridiagonal, que es resol en temps lineal. Un cop tens les segones derivades, la fórmula del tros corresponent és explícita.

Quin mètode toca

Poques dades exactes i vols una fórmula: Lagrange o Newton, amb grau baix.

Has d'afegir dades sobre la marxa: Newton, que actualitza sense refer.

Has d'avaluar en molts punts: forma baricèntrica.

Moltes dades i vols una corba suau: spline cúbic, que evita el fenomen de Runge per construcció.

Dades amb soroll: no interpolis. Ajusta per mínims quadrats.

Exercici resolt: interpolació lineal i cota d'error

Interpola l'exponencial als nodes 00 i 11 i acota l'error a l'interval.

L'interpolant és la recta que passa per (0,1)(0,1) i (1,e)(1,e):

p(x)=1+(e−1)x.p(x) = 1 + (e-1)x.

La resta, amb n=1n = 1, és

f(x)−p(x)=eξ2 x(x−1)f(x)-p(x) = \frac{e^{\xi}}{2}\,x(x-1)

per a algun punt intermedi.

Acotem els dos factors. L'exponencial en l'interval no passa d'ee. I el producte ∣x(x−1)∣|x(x-1)| té el màxim al punt mig, on val 1/41/4. Per tant

∣f(x)−p(x)∣≤e2⋅14=e8≈0,34.|f(x)-p(x)| \leq \frac{e}{2}\cdot\frac14 = \frac{e}{8}\approx 0{,}34.

Precisió de la resposta: és una cota suficient, no l'error màxim exacte. L'error real màxim és menor, perquè els dos factors no assoleixen el seu màxim al mateix punt. Una cota vàlida i honesta és preferible a una estimació precisa i no justificada.

Exercici resolt: nodes repetits

Què falla si dos nodes coincideixen però tenen valors diferents?

No existeix cap funció que prengui dos valors diferents al mateix punt, i per tant el problema d'interpolació no té solució. A la fórmula de Lagrange es veu directament: un denominador s'anul·la.

I si els valors també coincideixen? Aleshores la dada és redundant: no aporta cap condició nova, i el sistema queda indeterminat. Amb n+1n+1 nodes dels quals dos són iguals, només tens nn condicions independents i el polinomi de grau nn no queda determinat.

La sortida útil. La interpolació d'Hermite interpreta un node repetit com una condició sobre la derivada en aquell punt. Amb això, un node doble aporta dues condicions (valor i pendent) i el problema torna a estar ben plantejat. És el que hi ha darrere de les corbes de Bézier i dels splines amb derivades prescrites.

Ara prova-ho tu. 160 exercicis d'aquest tema, de 2 tipus diferents, per resoldre en línia, de deu en deu: escrius la resposta, te la corregeix a l'instant i, si falles, t'explica com es fa pas a pas. Quan acabis una tanda, en tens deu més, amb dades noves.

Fer els exercicisSimulacre d'examen