La representación de Newton
Vamos a mostrar una manera de construir un interpolador polinomial, el cual es generalmente de mucha mayor utilidad que el interpolador polinomial de Vandermonde, el mismo pueden verlo en Interpolación Polinomial usando el entorno GNU Octave | 1era Parte.
Un ejemplo de 4 puntos
Para hacer una introducción y motivar la idea, consideremos una vez más el problema de interpolar cuatro puntos, a saber (x1, y1), (x2, y2), (x3, y3), y (x4, y4), con un polinomio cúbico p3(x). Sin embargo, en lugar de expresar el interpolador en términos de la base canónica B = { 1, x, x2, x3 }, usamos la base B' = { 1, (x - x1), (x - x1)(x - x2), (x - x1)(x - x2)(x - x3) }. Esto se traduce a encontrar los coeficientes c1, c2, c3 y c4 tal que
entonces yi = p3(xi) para i = 1 : 4. Si expresamos de forma expandida, estas cuatro ecuaciones lo que tenemos es
Al reorganizar estas ecuaciones, obtenemos el siguiente proceso de solución de cuatro pasos:
Este proceso de solución secuencial es posible debido a la elección inteligente de la base de polinomios, y el resultado es el que se conoce como la representación de Newton del polinomio de interpolación.
Para establecer el escenario para el algoritmo en el caso general de n puntos, expresemos el caso n = 4 usando la notación matricial-vectorial, para así descubrir una serie de simplificaciones.
El punto de partida es el sistema de ecuaciones que obtuvimos anteriormente el cual se puede expresar de la siguiente manera:
Como podemos apreciar inmediatamente que c1 = y1. Así, podemos eliminar c1 de la segunda, tercera y cuarta ecuación, al restar la ecuación 1 de dichas ecuaciones obteniendo así:
Si dividimos las ecuaciones 2, 3 y 4 por (x2 - x1), (x3 - x1) y (x4 - x1) respectivamente, entonces el sistema se transforma en
donde y21, y31, y41 están dados por
Notemos que
Uno de los puntos claves en la resolución del sistema, es que hemos reducido en una dimensión el problema, así que tenemos un sistema 3 x 3 el cual debemos resolver, a saber:
Este sistema es exactamente el que se obtiene cuando se buscan los coeficientes del polinomio de interpolación cuadrática
que interpola los puntos (x2, y2), (x3, y3), (x4, y4).
El caso general de n puntos
Para el caso general de n puntos, vemos que si c1 = y1 y
interpola los puntos
entonces
interpola los puntos (x1, y1), (x2, y2), . . . , (xn, yn). Esto es fácil de verificar. De hecho, para j = 1:n
Así, esto nos suministra las herramientas para una formulación recursiva de todo el proceso:
Función recursiva de la representación de Newton. Elaborado por @abdulmath.
Si n = 1, entonces el interpolador que devuelve el proceso recursivo es constante p(x) = y1, es decir, c1 = y1. En caso contrario, el vector final es un arreglo de y1 y de la solución al problema reducido. La llamada recursividad obtiene los coeficientes del interpolador q(x) mencionado anteriormente.
Para desarrollar una implementación no recursiva, volvemos a nuestro ejemplo de cuatro puntos y la ecuación matricial siguiente
Así, podemos ver que c2 = y21. Primero si restamos la fila 3 con la fila 2 y dividimos por (x3 - x2), y luego restamos la fila 4 con la fila 2 y dividimos por (x4 - x2), obtenemos lo siguiente:
donde
Ahora bien, en este punto c3 = y321. Finalmente si restamos la cuarta fila con la tercera y dividimos por (x4 - x3), obtenemos
donde
Claramente c4 = y4321. El patrón para el caso general de n puntos es evidente:
Script patrón del caso general. Elaborado por @abdulmath en GNU Octave.
Sin embargo, al actualizar las ecuaciones solo necesitamos hacer un seguimiento de los cambios en el vector y. Por ejemplo,
Esto lleva a
Función de Interpolación de Newton. Elaborado por @abdulmath en GNU Octave.
Multiplicación Anidada
Al igual que con la representación de Vandermonde, la representación de Newton permite un esquema de multiplicación anidada eficiente. Por ejemplo, para evaluar p3(x) en x = z, tenemos el anidamiento siguiente
El fragmento
pval = c(4);
pval = (z-x(3))*pval+c(3);
pval = (z-x(2))*pval+c(2);
pval = (z-x(1))*pval+c(1);
asigna el valor de p3(z) a pval. Si z es un vector, entonces tenemos
pval = c(4)*ones(size(z));
pval = (z-x(3)).*pval+c(3);
pval = (z-x(2)).*pval+c(2);
pval = (z-x(1)).*pval+c(1);
En general tenemos
Función de la Regla de Horner para Interpolación de Newton. Elaborado por @abdulmath en GNU Octave.
Propiedades
Con dos enfoques para el problema de la interpolación polinómica, tenemos la oportunidad de evaluar sus méritos relativos. La velocidad y la precisión son las principales preocupaciones.
Velocidad
Comenzemos con un script de velocidad o tiempo
Script de comparación de Velocidad. Elaborado por @abdulmath en GNU Octave.
Precisión
Sabemos que el interpolador polinómico existe y es único, pero ¿cómo se aproxima? La respuesta a la pregunta depende de las derivadas de la función que se está interpolando.
Este resultado muestra que la calidad de pn-1(x) depende de el tamaño de la n-ésima derivada. Si tenemos una cota de esta derivada, entonces podemos calcular la cota del error. Para ilustrar lo anterior de manera practica, supongamos que
Así, para cualquier z en el intervalo [a, b] tenemos
Si basamos el interpolante en los puntos igualmente espaciados
entonces por un simple cambio de variable tenemos
Se puede demostrar que el máximo no es mayor que 1/(4n), de donde concluimos que
Por lo tanto, si una función tiene mal comportamiento en las derivadas superiores, entonces la calidad del polinomio interpolante puede disminuir a medida que aumenta el grado.
Un ejemplo clásico de esto es el problema de interpolar la función
en el intervalo [-1, 1].
En el script siguiente exploramos este problema:
Script Runge. Elaborado por @abdulmath en GNU Octave.
En las gráficas a continuación podemos apreciar que el interpolador captura el comportamiento de la función en la parte central del intervalo, mientras que este se pierde cerca de los puntos de la frontera.
Queridos amigos y lectores, espero hayan disfrutado y aprendido acerca de la Interpolación Polinomial usando el entorno GNU Octave | 2da Parte, de igual manera los invito para la eera Parte de este tema, donde continuaremos mostrando el desarrollo del mismo con los script y aplicaciones. Espero que esto pueda servir de apoyo a ustedes, hijos, nietos, sobrinos o amigos que quieran aprender un poco más del maravilloso mundo de las matemáticas y la programación. No olviden dejar sus comentarios. Saludos y nos leemos pronto.
Si desean consultar un poco más del tema pueden usar las siguientes referencias:
- Demidovich, B. P., and I. A. Maron. Computational Mathematics Mir, Moscow, 1976.
- Björck, Åke. Numerical methods in matrix computations. Vol. 59. Cham: Springer, 2015.
- Burden, Richard L., and J. Douglas Faires. Numerical analysis. Ninth Edition. Cengage Learning. 2011.
También los invito a leer las anteriores publicaciones de está serie de Introducción a las Ecuaciones Diferenciales Parciales, que estoy seguro serán de su interés:
Interpolación Polinomial usando el entorno GNU Octave - 1era Parte. | Interpolación Polinomial usando el entorno GNU Octave - 2da Parte. |
---|
Las imágenes, separadores y las ecuaciones fueron creadas y editadas por @abdulmath usando software libre, GNU Octave, , GIMP e Inkscape.
@SteemSTEM es un proyecto comunitario con el objetivo de promover y apoyar la Ciencia, la Tecnología, la Ingeniería y las Matemáticas en la blockchain Steem. @Stem-espanol es parte de esta comunidad, si desea apoyar el proyecto, puedes contribuir con contenido en español en las áreas de Ciencia, Tecnología, Ingeniería y Matemáticas, utilizando las etiquetas #steemstem y #stem-espanol.
Imagen diseñada con GIMP y elaborada por @abdulmath.
Excelente publicación @abdulmath Mis mejores deseos.
Buena vibra.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Gracias @angelica7. Gracias por tus comentarios. Saludos
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Bastante explicativo tu post, cada detalle, muy bueno.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Hola @andreamsulba, agradecido por tus comentarios y apreciaciones. Saludos y un abrazo.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Grandioso estos son temas que son difíciles de encontrar en la web de verdad se ve que tienes mucho amor por las matemáticas.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Muy agradecido por su tiempo en leer mis publicaciones, y su valoración a mi trabajo continuo. Gracias por visitar mi blog, y por su apoyo al esfuerzo.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Hi @abdulmath!
Your post was upvoted by utopian.io in cooperation with steemstem - supporting knowledge, innovation and technological advancement on the Steem Blockchain.
Contribute to Open Source with utopian.io
Learn how to contribute on our website and join the new open source economy.
Want to chat? Join the Utopian Community on Discord https://discord.gg/h52nFrV
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Thanks for the support
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Felicitaciones amigo @abdulmath
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Agradecido por tu visita y valoración de mi trabajo, Saludos amigo @reyito
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Buen trabajo @adbdulmath, nos seguimos leyendo amigo.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Gracias. Saludos
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
This post has been voted on by the steemstem curation team and voting trail.
There is more to SteemSTEM than just writing posts, check here for some more tips on being a community member. You can also join our discord here to get to know the rest of the community!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Thanks for the support
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Excelente post, entendi algunas cosas pero después me perdi.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Agradecido por tu comentario. Con un poco más de paciencia, seguro podrás entender todo. Saludos
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Me encanta tu post, está excelente. Una mente genial y estéticamente muy llamativo. Aprendo de ti, mis respetos. Saludos.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Agradecido por tu comentario, Me encanta que puedas aprender de mis publicaciones. Saludos y exitos, un abrazo
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Felicidades mi pana. jajjja no entiendo mucho pero bien. jajajaj
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Gracias por tus comentarios. Saludos
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Excelente explicaciones, te felicito por ese amor a las matemáticas.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Gracias @elemarg25, Agradecido por tus comentarios. Saludos y un abrazo.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Súper interesante @abdulmath me impresiona la facilidad con que explicas el contenido haciéndolo tan agradable.
Muchos éxitos amiguito mio.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Hola @mariana4ve, que bueno que te haya gustado.
Saludos y un abrazo. Igual para tí, éxitos.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Matematica el lenguaje de el universo buen post¡¡
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Muy agradecido por tus comentarios. La belleza del Universo: Las Matemáticas. Saludos
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit