My Authors
Read all threads
Según la @RAEinforma, “interpolar” es “poner algo entre otras cosas” o “calcular el valor aproximado de una magnitud en un intervalo cuando se conocen algunos de los valores que toma a uno y otro lado de dicho intervalo”.

¿Cómo se calcula el polinomio #interpolador?

⬇️⬇️
A pesar de que “la historia de las fórmulas de interpolación es complicada y muy discutida” (#Bell), esta comienza con los matemáticos babilónicos y sus esfuerzos a fin de completar los huecos de las tablas exponenciales.
De hecho, según Bell, la #interpolación puede ser considerada como un estímulo en los siglos XVII y XVIII para la evolución independiente de las operaciones fundamentales de la teoría clásica de las diferencias finitas, aplicadas principalmente en #astronomía y #mecánica.
La interpolación #polinomial, en concreto, persigue conocer, a partir de un polinomio, los valores aproximados que toma una función de la cual solo se conoce su imagen en un número finito de abscisas, y casi siempre desconocida su expresión.
Así, cuando decimos que por dos puntos distintos del plano, (x₀,y₀) y (x₁,y₁), x₀≠x₁, pasa una única recta, estamos afirmando que, entre dichos puntos, para un único polinomio interpolador de grado 1 (P₁(x)=a+bx). Más concretamente, P₁(x₀)=y₀ y P₁(x₁)=y₁.
En este caso, la obtención del polinomio (o la recta) es sencilla y bien conocida a casi todos los niveles. Si los puntos son (x₀,y₀) y (x₁,y₁), x₀≠x₁, entonces el polinomio viene dado por:

P₁(x)=y₀+(y₁-y₀)(x-x₀)/(x₁-x₀).
Lo mismo ocurre con tres puntos distintos (con abscisas distintas y no alineados) del plano, por los que pasa una única parábola (es decir, un único polinomio interpolador de grado 2). Obviamente, si los puntos están alineados, el polinomio es una recta y, por tanto, de grado 1.
En general, dados n+1 puntos distintos del plano, (x₀,y₀), (x₁,y₁),…,(xₙ,yₙ), xᵢ≠xⱼ para i≠j, existe un único polinomio (interpolador) Pₙ(x) de grado menor o igual que n que pasa por todos ellos.

Más concretamente, Pₙ(x₀)=y₀, Pₙ(x₁)=y₁, …, Pₙ(xₙ)=yₙ.
La cuestión es:

Dados n+1 puntos distintos (y con diferentes abscisas),
¿cómo podemos obtener el polinomio interpolador (de grado menor o igual que n)?
Lo cierto es que hay numerosos métodos (todos chulísimos). Entre ellos, podemos citar:

(A) El uso directo de un sistema de ecuaciones con matriz de #Vandermonde,
(B) Los polinomios fundamentales de #Lagrange y, por supuesto,
(c) Las diferencias divididas de #Newton.
Un sistema de ecuaciones con matriz de #Vandermonde
Si Pₙ(x) es de grado menor o igual que n, podemos escribir:

Pₙ(x)=a₀+a₁x+a₂x²+…+aₙxⁿ.

Observemos que el objetivo es conocer los valores de a₀, a₁, a₂, …, aₙ.
Si imponemos que Pₙ(xᵢ)=yᵢ (i=0,1,…n), se tiene que:

Pₙ(x₀)=a₀+a₁x₀+a₂x₀²+…+aₙx₀ⁿ=y₀,
Pₙ(x₁)=a₀+a₁x₁+a₂x₁²+…+aₙx₁ⁿ=y₁,

Pₙ(xₙ)=a₀+a₁xₙ+a₂xₙ²+…+aₙxₙⁿ=yₙ.

¡Un sistema de n+1 ecuaciones lineales con n+1 incógnitas!
Dado que xᵢ≠xⱼ para i≠j, la matriz del sistema (llamada de #Vandermonde) es invertible.

El teorema de #Rouchée-#Frobenius asegura que el sistema es compatible determinado, es decir, tiene solución única (a₀, a₁, a₂, …, aₙ).

¡Olé! El polinomio existe y es único.
Un ejemplo se puede ver en la diapositiva 27 (32 de 77) de este PDF ("mi" segundo tema de la asignatura Métodos Numéricos y Computación del Grado en Física de la Universidad de Alicante):

slideshare.net/JulioMulero/in…
Los polinomios fundamentales de #Lagrange
#Lagrange publicó este resultado en 1795, pero lo descubrió Edward #Waring en 1779, y fue redescubierto más tarde por Leonhard #Euler en 1783.

¡Los vaivenes de la vida, oiga!
La idea es escribir el polinomio Pₙ(x) de la siguiente forma:

Pₙ(x)=y₀l₀(x)+y₁l₁(x)+…+yₙlₙ(x),

donde lᵢ(x) es un polinomio de grado, como mucho, n, que cumple que lᵢ(xᵢ)=1 y lᵢ(xⱼ)=0 (para j distinto de i). Estos son los polinomios fundamentales de #Lagrange.
Notemos que, si eso es así, no queda otra que:

Pₙ(xᵢ)=y₀l₀(xᵢ)+y₁l₁(xᵢ)+…+yₙlₙ(xᵢ)=yᵢ,

(ya que lᵢ(xᵢ)=1 y, para j distinto de i, lⱼ(xᵢ)=0).
Si pudiéramos obtener la expresión de lᵢ(x), para i=0,1,…n, tendríamos la expresión del polinomio Pₙ.

Y esto es relativamente fácil, vaya…
Un ejemplo se puede ver en la diapositiva 34 (38 de 77) de este PDF (segundo tema de la asignatura Métodos Numéricos y Computación del Grado en Física de la Universidad de Alicante):

slideshare.net/JulioMulero/in…
Las diferencias divididas de #Newton
En una carta que #Newton escribió a #Oldenburg (en 1676):

“tengo un método, aún no publicado, por el cual el problema de describir una curva geométrica que pase por un conjunto de puntos dado se soluciona fácilmente”.

💻 bigwww.epfl.ch/publications/m…
Su desarrollo aparece en:

(1) una carta a Smith (1675);
(2) un manuscrito titulado Methodus Differentialis (1711);
(3) un manuscrito de 1676 titulado Regula Differentiarum (descubierto y publicado en el siglo XX); y
(4) Lema V en el Libro III de Principia Mathematica (1687).
La idea de Newton es, como la mayoría, una idea genial.

Dados x₀, x₁, …, xₙ, xᵢ≠xⱼ para i≠j, se trata de escribir el polinomio en términos de los siguientes polinomios:

1
x-x₀
(x-x₀)(x-x₁)

(x-x₀)(x-x₁)…(x-x_{n-1})
El polinomio tendrá que ser escrito, por tanto, en esta forma:

Pₙ(x)=b₀+b₁(x-x₀)+b₂(x-x₀)(x-x₁)+…+bₙ(x-x₀)(x-x₁)…(x-x_{n-1})

Y la cuestión que se plantea es: ¿cómo se pueden calcular los bᵢ?
Imagina que disponemos de cuatro puntos (x₀,y₀), (x₁,y₁), (x₂,y₂), (x₃,y₃), xᵢ≠xⱼ para i≠j. El polinomio, en este caso, será:

P₃(x)=b₀+b₁(x-x₀)+b₂(x-x₀)(x-x₁)+b₃(x-x₀)(x-x₁)(x-x₂),

satisfaciendo P₃(xᵢ)=yᵢ, para i=0,1,2,3.
De estas cuatro condiciones se tiene que:

(1) P₃(x₀)=b₀=y₀,
(2) P₃(x₁)=b₀+b₁(x₁-x₀)=y₁,
(3) P₃(x₂)=b₀+b₁(x₁-x₀)+b₂(x₂-x₀)(x₂-x₁)=y₂,
(4) P₃(x₃)=b₀+b₁(x₁-x₀)+b₂(x₂-x₀)(x₂-x₁)+b₃(x₃-x₀)(x₃-x₁)(x₃-x₂)=y₃.
Este sistema de ecuaciones es triangular inferior y se puede resolver de arriba hacia abajo (b₀, b₁, b₂, b₃).

La notación tradicional es, sin embargo:
b₀=f[x₀],
b₁=f[x₀,x₁],
b₂=f[x₀,x₁,x₂],
b₃=f[x₀,x₁,x₂,x₃],

y se suelen llamar #DiferenciasDivididas.
Quizás lo más chulo es que las diferencias divididas se pueden calcular de forma recursiva. De hecho,

f[xᵢ,x_{i+1},…,x_{j-1},xⱼ]=( f[x_{i+1},…,x_{j-1},xⱼ]- f[xᵢ,x_{i+1},…x_{j-1}])/(xⱼ-xᵢ),

donde i<j.
Esto permite construir una tabla, la de las diferencias divididas, que, de forma muy sencilla, aun teniendo gran cantidad de puntos, torna en un problema más que abordable el cálculo del polinomio interpolador.
Más aún, el trabajo realizado se puede aprovechar en caso de añadir un punto adicional.
Un ejemplo se puede ver en la diapositiva 43 (47 de 77) de este PDF ("mi" segundo tema de la asignatura Métodos Numéricos y Computación del Grado en Física de la Universidad de Alicante):

slideshare.net/JulioMulero/in…
En fin, que todo eso quería contar, una parte irrenunciable de cualquier asignatura dedicada a los Métodos Numéricos.

Estos métodos son los básicos, hay muchos más. En concreto, me viene a la mente el método de #Neville que aplica, de forma reiterada, la interpolación lineal.
Y, ojo, porque no sería la primera vez que leo que el polinomio interpolador no sirve para nada cuando, por ejemplo, las fórmulas más conocidas de aproximación de las derivadas e integrales definidas numéricamente están basadas en él.
Sin ir más lejos, la función #quad de #Python usa cuadratura adaptiva basada en el método de #Simpson compuesto.

¿Y qué hay detrás del método de #Simpson? ¡Bingo! ¡El polinomio interpolador! Pero esa es otra historia…
Si has leído hasta aquí, muchísimas gracias. Todo el texto, junto con los gifs, está en mi blog:

elultimoversodefermat.wordpress.com/2020/05/24/el-…

¡Cuídense mucho!
Missing some Tweet in this thread? You can try to force a refresh.

Enjoying this thread?

Keep Current with Julio Mulero

Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

Twitter may remove this content at anytime, convert it as a PDF, save and print for later use!

Try unrolling a thread yourself!

how to unroll video

1) Follow Thread Reader App on Twitter so you can easily mention us!

2) Go to a Twitter thread (series of Tweets by the same owner) and mention us with a keyword "unroll" @threadreaderapp unroll

You can practice here first or read more on our help page!

Follow Us on Twitter!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3.00/month or $30.00/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!