Polinomio de Lagrange

Ajustar Compartir Imprimir Citar
Polynomials used for interpolation
Esta imagen muestra, por cuatro puntos ((9, 5), (4, 2), (1, - 2), (7, 9)), el polinomio de interpolación cúbica L()x) (dashed, black), que es la suma de escalada polinomios de base Sí.0l0()x), Sí.1l1()x), Sí.2l2()x) y Sí.3l3()x). El polinomio de interpolación pasa a través de los cuatro puntos de control, y cada uno escalada polinomio de base pasa a través de su punto de control respectivos y es 0 donde x corresponde a los otros tres puntos de control.

En análisis numérico, el polinomio de interpolación de Lagrange es el único polinomio de menor grado que interpola un conjunto dado de datos.

Dado un conjunto de datos de pares de coordenadas ()xj,Sí.j){displaystyle (x_{j},y_{j}} con 0≤ ≤ j≤ ≤ k,{displaystyle 0leq jleq k,} el xj{displaystyle x_{j} se llaman nodos y el Sí.j{displaystyle y_{j} se llaman valores. El polinomio Lagrange L()x){displaystyle L(x)} grado ≤ ≤ k{textstyle leq k} y asume cada valor en el nodo correspondiente, L()xj)=Sí.j.{displaystyle Sí.

Aunque lleva el nombre de Joseph-Louis Lagrange, quien lo publicó en 1795, el método fue descubierto por primera vez en 1779 por Edward Waring. También es una fácil consecuencia de una fórmula publicada en 1783 por Leonhard Euler.

Los usos de los polinomios de Lagrange incluyen el método de Newton-Cotes de integración numérica, el esquema secreto compartido de Shamir en criptografía y la corrección de errores de Reed-Solomon en la teoría de la codificación.

Para los nodos equiespaciados, la interpolación de Lagrange es susceptible al fenómeno de gran oscilación de Runge.

Definición

Dado un conjunto de k+1{textstyle k+1} nodos {}x0,x1,...... ,xk}{displaystyle {x_{0},x_{1},ldotsx_{k}}, que todos deben ser distintos, xjل ل xm{displaystyle x_{j}neq x_{m} para índices jل ل m{displaystyle jneq m}, el Base de referencia para polinomios de grado ≤ ≤ k{textstyle leq k} para esos nodos es el conjunto de polinomios {}l l 0()x),l l 1()x),...... ,l l k()x)}{textstyle {ell _{0}(x),ell _{1}(x),ldotsell _{k}(x)}} cada grado k{textstyle k} que toman valores l l j()xm)=0{textstyle ell _{j}(x_{m})=0} si mل ل j{textstyle mneq j} y l l j()xj)=1{textstyle ell _{j}(x_{j})=1}. Usando el delta Kronecker esto se puede escribir l l j()xm)=δ δ jm.{textstyle ell _{j}(x_{m})=delta _{jm} Cada base polinomio puede ser descrito explícitamente por el producto:

l l j()x)=()x− − x0)()xj− − x0)⋯ ⋯ ()x− − xj− − 1)()xj− − xj− − 1)()x− − xj+1)()xj− − xj+1)⋯ ⋯ ()x− − xk)()xj− − xk)=∏ ∏ 0≤ ≤ m≤ ≤ kmل ل jx− − xmxj− − xm.{fnMicrosoft Sans Serif} {fnMicrosoft Sans Serif} {fnMicrosoft Sans Serif} {c} {fnMicrosoft Sans Serif} {fnMicrosoft Sans Serif} {fnMicrosoft Sans Serif} {c} {fnMicrosoft Sans Serif} {fnMicros}}}} {f}}} {fnMicrox}} {f}}}}} {f}}}}} {fnMicrox} {cf}}} {f}}}}fnMicrox} {f}}}f}}}}}}fnMis} {cf}}} {f}}}fnMisssssssssssssss_es} {cfnMicrox}cfnun}ccccccccfn mleq kmneq jend{smallmatrix}{frac {x-x_{m}} {x_{m}}}end{aligned}}

Note que el numerador ∏ ∏ mل ل j()x− − xm){textstyle prod _{mneq j}(x-x_{m}} tiene k{textstyle k} raíces en los nodos {}xm}mل ل j{textstyle {x_{m} {mneq j) mientras que el denominador ∏ ∏ mل ل j()xj− − xm){textstyle prod _{mneq j}(x_{j}-x_{m}} escala el polinomio resultante para que l l j()xj)=1.{textstyle ell _{j}(x_{j})=1.}

El polinomio interpolador de Lagrange para esos nodos a través del correspondiente valores {}Sí.0,Sí.1,...... ,Sí.k}{displaystyle {fnMicrosoft Sans} es la combinación lineal:

L()x)=.. j=0kSí.jl l j()x).{displaystyle L(x)=sum _{j=0}{k}y_{j}ell _{j}(x). }

Cada base polinomio tiene grado k{textstyle k}, así que la suma L()x){textstyle L(x)} grado ≤ ≤ k{textstyle leq k}, e interpola los datos porque L()xm)=.. j=0kSí.jl l j()xm)=.. j=0kSí.jδ δ mj=Sí.m.{textstyle L(x_{m}=sum - ¿Por qué? - Sí.

El polinomio interpolador es único. Prueba: asumir el polinomio M()x){textstyle M(x)} grado ≤ ≤ k{textstyle leq k} interpola los datos. Entonces la diferencia M()x)− − L()x){textstyle M(x)-L(x)} es cero a k+1{textstyle k+1} nodos distintos {}x0,x1,...... ,xk}.{textstyle {x_{0},x_{1},ldotsx_{k}}} Pero el único polinomio de grado ≤ ≤ k{textstyle leq k} con más que k{textstyle k} raíces es la función cero constante, así que M()x)− − L()x)=0,{textstyle M(x)-L(x)=0,} o M()x)=L()x).{textstyle M(x)=L(x). }

Forma baricéntrica

Cada polinomio base de Lagrange l l j()x){textstyle ell _{j}(x)} puede ser reescrito como el producto de tres partes, una función l l ()x)=∏ ∏ m()x− − xm){textstyle ell (x)=prod _{m}(x-x_{m}} común a cada base polinomial, una constante de nodo específico wj=∏ ∏ mل ل j()xj− − xm)− − 1{fnMicrosoft Sans Serif} (llamado el peso barícéntrico), y una parte que representa el desplazamiento de xj{textstyle x_{j}} a x{textstyle x}:

l l j()x)=l l ()x)wjx− − xj{displaystyle ell _{j}(x)=ell (x){dfrac {fnK} {fnK}}} {fn}}}} {cH}}}} {cH}}}}}} {cH}}}}}}}}}} {cH}}}}}}}}} {cH}}}}}}}} {cH}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} {c}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}

Por factoring l l ()x){textstyle ell (x)} de la suma, podemos escribir el polinomio Lagrange en el llamado primera forma barícentrica:

L()x)=l l ()x).. j=0kwjx− − xjSí.j.{displaystyle L(x)=ell (x)sum _{j=0}{k}{frac Sí.

Si los pesos wj{displaystyle w_{j} han sido pre-computados, esto requiere sólo O()k){displaystyle {mathcal}(k)} operaciones en comparación con O()k2){displaystyle {mathcal}(k^{2}} para evaluar cada polinomio base de Lagrange l l j()x){displaystyle ell _{j}(x)} individualmente.

La fórmula de interpolación barícena también se puede actualizar fácilmente para incorporar un nuevo nodo xk+1{displaystyle x_{k+1}} dividiendo cada uno de los wj{displaystyle w_{j}, j=0...... k{displaystyle j=0dots k} por ()xj− − xk+1){displaystyle (x_{j}-x_{k+1}} y construir el nuevo wk+1{displaystyle w_{k+1} como arriba.

Para cualquier x,{textstyle x,} .. j=0kl l j()x)=1{textstyle sum _{j=0}ell _{j}(x)=1} porque la función constante g()x)=1{textstyle g(x)=1} es el único polinomio de grado ≤ ≤ k{displaystyle leq k} interpolar los datos {}()x0,1),()x1,1),...... ,()xk,1)}.{textstyle {(x_{0},1),(x_{1},1),ldots(x_{k},1)}.} Así podemos simplificar aún más la fórmula baricéntrica dividiendo L()x)=L()x)/g()x):: {displaystyle L(x)=L(x)/g(x)colon }

L()x)=l l ()x).. j=0kwjx− − xjSí.j/l l ()x).. j=0kwjx− − xj=.. j=0kwjx− − xjSí.j/.. j=0kwjx− − xj.{displaystyle {begin{aligned}L(x) ventaja=ell (x)sum _{j=0}^{k}{frac Sí. Bigg /}ell (x)sum _{j=0}{k}{frac {w_{j}{x-x_{j}\[10mu] ¿Por qué? Sí. Bigg /}sum _{j=0}{k}{frac {w_{j} {x-x_{j}}}end{aligned}}

Esto se llama la segunda forma o forma verdadera de la fórmula de interpolación baricéntrica.

Esta segunda forma tiene ventajas en el costo y la precisión de la computación: evita la evaluación de l l ()x){displaystyle ell (x)}; el trabajo para calcular cada término en el denominador wj/()x− − xj){displaystyle w_{j}/(x-x_{j}} ya se ha hecho en la informática ()wj/()x− − xj))Sí.j{displaystyle {bigl (}w_{j}/(x-x_{j}{bigr)}y_{j}} y así computar la suma en el denominador cuesta sólo k− − 1{textstyle k-1} operaciones adicionales; para los puntos de evaluación x{textstyle x} que están cerca de uno de los nodos xj{textstyle x_{j}}, la cancelación catastrófica normalmente sería un problema para el valor ()x− − xj){textstyle (x-x_{j})}, sin embargo esta cantidad aparece tanto en numerador y denominador y los dos cancelan dejando buena precisión relativa en el resultado final.

Usar esta fórmula para evaluar L()x){displaystyle L(x)} a uno de los nodos xj{displaystyle x_{j} resultará en el indeterminado JUEGO JUEGO Sí.j/JUEGO JUEGO {displaystyle infty y_{j}/infty }; las implementaciones informáticas deben reemplazar esos resultados por L()xj)=Sí.j.{displaystyle Sí.

Cada polinomio de base de Lagrange también se puede escribir en forma baricéntrica:

l l j()x)=wjx− − xj/.. m=0kwmx− − xm.{displaystyle ell _{j}(x)={frac {cHFF} {cHFF} {cHFF}} {cHFF} {cHFF}} {cHFF}} {cH}}}} {cH}}}} {cH}}}} {cH}}} {cH}}} {cH}}}}}}} {cH}}}}}}}} {}}}}}}} {\\\\\cH}}}}}}}}}}}}}}}}}}}}}}}}}}} {\\\\\\\\\\\\\\cH}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} {\ Bigg ¿Qué? {w_{m} {x-x_{m}}}}

Una perspectiva desde el álgebra lineal

La solución de un problema de interpolación conduce a un problema en el álgebra lineal que equivale a la inversión de una matriz. Utilizando una base monomial estándar para nuestro polinomio de interpolación L()x)=.. j=0kxjmj{textstyle L(x)=sum _{j=0}{k}x^{j}m_{j}, debemos invertir la matriz de Vandermonde ()xi)j{displaystyle (x_{i})} {j} para resolver L()xi)=Sí.i{displaystyle L(x_{i}=y_{i} para los coeficientes mj{displaystyle # de L()x){displaystyle L(x)}. Al elegir una mejor base, la base Lagrange, L()x)=.. j=0klj()x)Sí.j{textstyle L(x)=sum _{j=0}{k}l_{j}y_{j}}, simplemente tenemos la matriz de identidad, δ δ ij{displaystyle delta _{ij}, que es su propio inverso: la base de Lagrange automáticamente invertidos el análogo de la matriz de Vandermonde.

Esta construcción es análoga al teorema chino del resto. En lugar de verificar los restos de los números primos del módulo entero, estamos verificando los residuos de los polinomios cuando se dividen por lineales.

Además, cuando el orden es grande, se puede usar la transformación rápida de Fourier para resolver los coeficientes del polinomio interpolado.

Ejemplo

Deseamos interponernos f()x)=x2{displaystyle f(x)=x^{2} sobre el dominio 1≤ ≤ x≤ ≤ 3{displaystyle 1leq xleq 3} en los tres nodos {}1,2,3}{displaystyle {1,,2,,3}:

x0=1,Sí.0=f()x0)=1,x1=2,Sí.1=f()x1)=4,x2=3,Sí.2=f()x2)=9.{displaystyle {begin{aligned}x_{0} limit=1, limit=2, correspondy_{1}=f(x_{0}) correspond=1,\[3mu]x_{1} {0}=0}=f(x_{1}=4[3mu]x_{2}{2}{0} {2}}}{2}=}}}}}}}}}}}}} {

El nodo polinomio l l {displaystyle ell } es

l l ()x)=()x− − 1)()x− − 2)()x− − 3)=x3− − 6x2+11x− − 6.{displaystyle ell (x)=(x-1)(x-2)(x-3)=x^{3}-6x^{2}+11x-6.}

Los pesos baricéntricos son

w0=()1− − 2)− − 1()1− − 3)− − 1=12,w1=()2− − 1)− − 1()2− − 3)− − 1=− − 1,w2=()3− − 1)− − 1()3− − 2)− − 1=12.{fnMicrosoft Sans Serif} {fnMicrosoft Sans Serif} {fnMicrosoft Sans Serif} {c} {c}} {c} {c}} {c} {c}} {c}} {1}}}} {1}} {1}}c} {1}}}}} {1}}}}}} {1}}}}}}}}}}}} {1}}}}}}}}}} {1}}}}}} {c}}}}}} {1}}}}}} {1}}}}}}}}}}}}}}}} {1}}}}}} {1} {1}} {1}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} {1}}}} {c}}}}}} {c}}}}}}}}}}}}}}}}

Los polinomios de la base de Lagrange son

l l 0()x)=x− − 21− − 2⋅ ⋅ x− − 31− − 3=12x2− − 52x+3,l l 1()x)=x− − 12− − 1⋅ ⋅ x− − 32− − 3=− − x2+4x− − 3,l l 2()x)=x− − 13− − 1⋅ ⋅ x− − 23− − 2=12x2− − 32x+1.{displaystyle {begin{aligned}ell _{0}(x) Condenado={frac {x-2}{1-2}cdot {frac] {x-3}{1-3}={tfrac {1}{2}x^{2}-{tfrac {5}{2}}x+3,[5mu]ell _{1}(x) sentimiento={frac {x-1}{2-1}}cdot {frac {x-3}{2-3}=-x^{2}+4x-3,\[5mu]ell _{2}(x) limitada={frac {x-1}{3-1}cdot {frac {x-2}{3-2}={tfrac {1}{2}x^{2}-{tfrac {3}{2}x+1.end{aligned}}

El polinomio de interpolación de Lagrange es:

L()x)=1⋅ ⋅ x− − 21− − 2⋅ ⋅ x− − 31− − 3+4⋅ ⋅ x− − 12− − 1⋅ ⋅ x− − 32− − 3+9⋅ ⋅ x− − 13− − 1⋅ ⋅ x− − 23− − 2=x2.{displaystyle {begin{aligned}L(x) ventaja=1cdot {frac {x-2}{1-2}cdot {frac {x-3}{1-3}+4cdot {frac {x-1}{2-1}cdot {frac {x-3}{2-3}+9cdot {frac {x-1}{3-1}cdot {frac {x-2}{3-2}[6mu]

En (segunda) forma baricéntrica,

L()x)=.. j=02wjx− − xjSí.j.. j=02wjx− − xj=12x− − 1+− − 4x− − 2+92x− − 312x− − 1+− − 1x− − 2+12x− − 3.{displaystyle L(x)={frac {displaystyle sum _{j=0}{2}{frac {fnK} {f}} {f}} {fn}}} {f}} {fn}} {fn}}} {fn}}}} {fn}}} {fn}}} {fn}}}}} {f}}}}}} {f}}}}}}}}}}} { sum _{j=0}{2}{frac {fnK}} {fnK}} {fnK}}}} {f}}}}} {f}}} {f}}} {fn}}}}}}} {f}}}}} {f}}}}}} {f}}} {f}}}}} {f}}}}}}}}}}}}}}}}}}}}}}}}}}} { {fnMicroc {fnMicroc} {1}{2}{x-1}+{frac} {-4}{x-2}+{frac {tfrac} {9}{2}{x-3}} {displaystyle {fnMicroc} {1}{2}{x-1}+{frac} {-1}{x-2}+{frac {tfrac} {1} {2} {x-3}}}}}

Resto en la fórmula de interpolación de Lagrange

Cuando interpolar una función determinada f por un polinomio de grado k en los nodos x0,...,xk{displaystyle x_{0},...x_{k} tenemos el resto R()x)=f()x)− − L()x){displaystyle R(x)=f(x)-L(x)} que pueden expresarse

Derivados

La désima derivada de un polinomio de interpolación de Lagrange se puede escribir en términos de las derivadas de los polinomios base,

Campos finitos

El polinomio de Lagrange también se puede calcular en campos finitos. Esto tiene aplicaciones en criptografía, como en el esquema Secret Sharing de Shamir.