El objetivo general de este proyecto es investigar los conceptos de la interpolación de Lagrange y Newton, seguido de eso identificar en qué áreas de la ingeniera estas mismas se pueden aplicar y realizar ejemplos de cada una de ellas, con el fin de poner en práctica lo investigado.
En el subcampo matemático del análisis numérico, se hace referencia a la interpolación como el proceso de generar puntos adicionales utilizando un conjunto de puntos ya conocidos.
En ingeniería y algunas ciencias es frecuente disponer de un cierto número de puntos obtenidos por muestreo o a partir de un experimento y pretender construir una función que los ajuste.
Estas técnicas permiten llenar vacíos en conjuntos de datos, generar
modelos matemáticos más precisos y facilitar el análisis y diseño de
sistemas en diversas áreas de la ingeniería.
La interpolación de Lagrange es un método numérico de aproximación de funciones, el cual hace uso de un polinomio que pasa por ciertos puntos conocidos de la función que se pretende aproximar.
Análisis matemático
Dados los datos \((x_i,f_i)\), i=0,1,2,…,n el polinomio
interpolante de lagrange está dado por:
\[P_n(x) = \sum_{i=0}^{n} f_iL_i(x)\] Donde:
-\(P_n(x)\) es el polinomio de Lagrange de grado \(n\) evaluado en \(x\),
-\(f_i\) son los coeficientes del polinomio y
-\(L_i(x)\) son los polinomios de Lagrange de grado \(n\) evaluados en \(x\).
\(L_i(x)\) se define:
\[ L_i(x) = \prod_{j=0; j\neq i}^{n} \frac{x-x_j}{x_i-x_j} \quad\] \[i = 0,1,2,\cdots,n\]
De manera intuitiva:
Para dos puntos: \((x_0, y_0)\) , \((x_1, y_1)\)
\[y - y_0 = \frac{y_1 - y_0}{x_1 - x_0}(x-x_0)\] \[y = y_0+\frac{(y_1 - y_0)}{x_1-x_0}(x-x_0)\] \[y = \frac{y_0(x_1 - x_0)+(y_1 - y_0)(x - x_0)}{x_1 - x_0}\] \[y = \frac{y_0x_1-y_0x_0+y_1x-y_1x_0-y_0x+x_0y_0}{x_1-x_0}\]
\[y = \frac{y_0x_1 - y_0x_0 + y_1x - y_1x_0 - y_0x + x_0y_0}{x_1 - x_0}\] \[y = \frac{y_0(x_1 - x)+ y_1(x-x_0)}{x_1 - x_0}\]
\[y = (\frac{x - x_1}{x_0- x_1})y_0 + (\frac{x - x_0}{x_1 - x_0})y_1\] Luego:
\[P_1(X) = L_0(x)f(x_0) + L_1(x)f(x_1)\]
\[ P_1(x)= (\frac{x - x_1}{x_0- x_1})y_0 + (\frac{x - x_0}{x_1 - x_0})y_1\]
Para 3 puntos: \((x_0, y_0),(x_1,y_1),(x_2,y_2)\)
\[P_2(x) = L_0(x)f(x_0) +
L_1(x)f(x_1) + L_2(x)f(x_2)\]
Donde:
\[L_0(x)= L_0(x)= \frac{(x - x_1)(x - x_2)}{(x_0 - x_1)(x_0 - x_2)}\]
\[L_1(x)= \frac{(x - x_0)(x - x_2)}{(x_1 - x_0)(x_1 - x_2)}\]
\[L_2(x)= \frac{(x - x_0)(x - x_1)}{(x_2 - x_0)(x_2 - x_1)}\]
Luego:
\[P_2(x)= \frac{(x-x_1)(x -x_2)}{(x_0-x_1)(x_0-x_2)}y_0+ \frac{(x-x_0)(x -x_2)}{(x_1-x_0)(x_1-x_2)}y_1+ \frac{(x-x_0)(x -x_1)}{(x_2-x_0)(x_2-x_1)}y_2\]
En general:
\[ L_i(x)= \prod_{j=0;j\neq i}^{n} \frac{x - x_j}{x_i - x_j} = \frac{(x-x_0)(x-x_1)(x-x_2)...(x-x_{i-1})(x - x_{i+1})...(x-x_n)}{(x_i-x_0)(x_i-x_1)(x_i-x_2)...(x_i-x_{i-1})(x_i-x_{i+1})...(x_i-x_n)} \] \[ i = 0,1,2,...,n \] Es decir:
\[ P_n(x)=L_0(x)y_0 + L_1(x)y_1 + L_2(x)y_2 + ... + L_n(x)y_n\]El método de interpolación polinómica es una técnica utilizada para aproximar una función a través de un polinomio que pasa por un conjunto de puntos dados. Aunque solo hay un polinomio único que interpola los puntos, existen distintas formas de calcularlo. Este método resulta especialmente útil en situaciones donde se dispone de un número reducido de puntos para interpolar, ya que a medida que aumenta la cantidad de puntos, también aumenta el grado del polinomio necesario para lograr la interpolación.
Análisis matemático:
El primer paso para hallar la fórmula de la interpolación es definir la pendiente de orden n de manera recursiva:
\(f_0(x_i):\) término i-ésimo de la secuencia
\(f_1(x_0,x_1) = \frac{f_0(x_1)-f_0(x_0)}{x_1 - x_0}\)
\(f_2(x_0,x_1,x_2)\frac{f_1(x_1,x_2)-f_1(x_0,x_1)}{x_2 - x_0}\)
En general:
\[ f_i(x_0,x_1,...,x_{i-1},x_i)=\frac{f_i(x_1,...,x_{i-1},x_i)-f_{i-1}(x_0,x_1,...,x_{i-1})}{x_i - x_0} \]
Una vez que tenemos la pendiente, podemos definir de manera recursiva el polinomio de grado n.
\(P_0(x)= f_0(x_0) = y_0.\) Se definde de esta manera, ya que, el valor indicado es el único que se ajusta a la secuencia original para el primer término.
\(P_1(x) = P_0(x) + f_1(x_0,x_1)*(x-x_0)\)
\(P_2(x) = P_1(x) + f_2(x_0,x_1,x_2)(x-x_0)(x-x_1)\)
En general:
\[P_i(x) = P_{i-1}(x) + f_i(x_0,x_1,...,x_{i-1},x_i)\prod_{j=0}^{i=1} (x-x_i)\]
Este método es una herramienta que permite interpolar una función por medio del polinomio de lagrange.
Análisis matemático
Principalmente el método de las diferencias divididas consiste en tomar una función f(x), cuyos puntos conocidos son \(x_0,x_1,...,x_n.\)
Dicha función interpolar mediante el polinomio de lagrange, el cual se define:
\[P_n(x)= a_0 + a_1(x-x_0)+a_2(x-x_0)(x-x_1)+...+ a_n(x-x_0)(x-x_1)...(x-x_{n-1})\]
Si
\(i=0, a_0 \space y \space x_0\)
Reemplazamos en el polinomio y obtenemos:
\(P_n(x_0)= a_0\)
Obtenemos la igualdad
\(f(x_0)=P_n(x_0)=a_0\)
\(f(x_0)=a_0\)
si \(i=1, \space a_1 \space y \space x_1\)
\(P_n(x_1)=
a_0+a_1(x_1-x_0)\)
\(f(x_1)=a_0+a_1(x_1-x_0)\)
Despejamos
\(f(x_1)-a_0=a_1(x_1-x_0)\)
\(f(x_1)-f(x_0)=a_1(x_1-x_0)\)
\(\frac{f(x_1)-f(x_0)}{x_1 - x_0}=a_1\)
Función particular de las diferencias divididas que nos
facilita en el procedimiento
\(f[x_i]=f(x_i)\)
Se determina mediante la siguiente función:
\(f[x_i,x_{i+1}]=\frac{f(x_{i+1})-f(x_i)}{x_{i+1}-x_i}\)
\(f[x_i,x_{i+1},x_{i+2}]=
\frac{f[x_{i+1},x_{i+2}]-f[x_{i+1},x_i]}{x_{i+2}-x_i}\)
De manera general
\[ f[x_i,x_{i+1},x_{i+n}]=
\frac{f[x_{i+1},x_{i+2},...,x_{i+n}]-f[x_i,x_{i+1},...,x_{i+(n-1)}]}{x_{i+n}-x_i}\]
Reescribiendo el polinomio tomando en cuenta las constantes con
la nueva notación, va a estar definido de la sguiente manera:
\[P_n(x)=f[x_0]+f[x_0,x_1](x-x_0)+f[x_0,x_1,x_2](x-x_0)(x-x_1)+...+f[x_0,x_1,...,x_n](x-x_0)(x-x_1)...(x-x_{n-1})\]
Polinomio de lagrange teniendo en cuenta la notacion de
difernecias divididas
No todas las diferencias divididas son utilizadas para determinar el polinomio
Orden | x | f(x) |
---|---|---|
0 | x0 | f(x0) |
1 | x0, x1 | f(x0, x1) |
2 | x0, x1, x2 | f(x0, x1, x2) |
… | … | … |
n | x0, x1, x2, …, xn | f(x0, x1, …, xn) |
¿En qué áreas de ingeniería se utiliza y cuál es su
función?
Las interpolaciones, como la de Lagrange, la de Newton y la
aproximación con diferencias divididas, se utilizan en varias áreas de
la ingeniería para diferentes propósitos.
A continucación, se
mencionan algunas de estas áreas y la función de cada tipo de
interpolación:
1.INGENIERÍA CIVIL
En el campo de la ingeniería civil, las interpolaciones se utilizan en el diseño de estructuras y análisis de elementos finitos. La interpolación de Lagrange y la interpolación de Newton pueden utilizarse para aproximar curvas o superficies en el terreno, lo que es útil en la topografía y el diseño de carreteras.
2.INGENIERÍA ELÉCTRICA
En la ingeniería eléctrica, las interpolaciones son utilizadas en el diseño y análisis de circuitos eléctricos. La interpolación de Lagrange y la interpolación de Newton son empleadas para la construcción de tablas de datos y para la aproximación de funciones que modelan el comportamiento de los circuitos eléctricos.
3.INGENIERÍA MECÁNICA
En la ingeniería mecánica, las interpolaciones son aplicadas en la simulación de sistemas mecánicos y el análisis de vibraciones. Estos métodos son utilizados para interpolar datos experimentales y generar modelos matemáticos que describen el comportamiento de sistemas mecánicos complejos.
4.INGENIERÍA DE SOFTWARE
En la ingeniería de software, las interpolaciones se utilizan en el procesamiento de imágenes y gráficos computacionales. La interpolación de diferencias divididas puede ser empleada para aproximar funciones que representan imágenes o generar curvas suaves a partir de datos discretos.
5.INGENIERÍA DE PROCESO Y CONTROL
En el campo de la ingeniería de procesos y control, la interpolación se utiliza para el modelado y control de sistemas dinámicos. La interpolación se emplea para aproximar relaciones entre variables de proceso y generar modelos matemáticos que describen el comportamiento de los sistemas.
Función de la interpolación en la ingeniería de procesos y control:
-Modelado de sistemas: La interpolación se utiliza para aproximar funciones que representan el comportamiento de sistemas complejos, como procesos químicos, sistemas de transporte de fluidos o sistemas de control. Los datos medidos en diferentes puntos de operación se interpolan para construir modelos matemáticos que representen el comportamiento del sistema completo.
-Diseño y optimización de controladores: La interpolación se utiliza para generar modelos matemáticos a partir de datos experimentales y, posteriormente, diseñar y optimizar controladores para sistemas de control. Los controladores se ajustan y sintonizan utilizando los modelos interpolados para garantizar un rendimiento óptimo del sistema.
-Predicción y estimación: La interpolación se utiliza para predecir el comportamiento futuro de los sistemas y realizar estimaciones basadas en datos existentes. Se pueden utilizar métodos de interpolación para completar datos faltantes o predecir el comportamiento en condiciones no medidas.
En general, las interpolaciones son técnicas matemáticas ampliamente utilizadas en la ingeniería para aproximar valores desconocidos o funciones continuas a partir de datos discretos.
1.Ingeniería Civil - Interpolación en
Topografía:
En la topografía, se utiliza la interpolación para generar modelos de superficie a partir de datos de elevación.
Caso de estudio:
La creación de un modelo digital del terreno (MDT) para la planificación de construcciones. Se toman mediciones de elevación en ubicaciones estratégicas y se utiliza la interpolación, como la interpolación de diferencia dividida, para estimar las elevaciones en otros puntos del terreno. Esto permite tener un MDT continuo y preciso, lo que es esencial para el diseño de infraestructuras como carreteras, puentes o edificios.
2.Ingeniería Eléctrica - Interpolación en Análisis de Circuitos:
En el análisis de circuitos eléctricos, la interpolación se utiliza para aproximar funciones de respuesta en frecuencia.
Caso de estudio:
Supongamos que se tiene un circuito complejo y se desea obtener la respuesta en frecuencia en un rango determinado. Se realizan mediciones en puntos de frecuencia específicos y se utiliza la interpolación de Lagrange o de Newton para estimar los valores en frecuencias intermedias. Esto permite obtener una representación continua de la respuesta en frecuencia del circuito, lo que es fundamental para el diseño y análisis de sistemas eléctricos.
3.Ingeniería de Procesos y Control - Interpolación en Control de Procesos Químicos:
En el control de procesos químicos, la interpolación se utiliza para generar modelos matemáticos que representen el comportamiento de los sistemas.
Caso de estudio:
El control de la temperatura en un reactor químico. Se recopilan datos de temperatura y se utilizan métodos de interpolación, como la interpolación de Lagrange o de diferencia dividida, para construir un modelo matemático que relacione la temperatura con las variables de entrada y salida del reactor. Este modelo interpolado se utiliza para diseñar y ajustar controladores que mantengan la temperatura dentro de los rangos deseados durante la operación del reactor.
EJEMPLOS
1) Obtener el polinomio de interpolación de lo puntos:
x | y |
---|---|
0 | -1 |
1 | 6 |
2 | 31 |
3 | 18 |
Mediante la fórmula de Lagrange:
\[P_n(x) = y_0L_0(x)+y_1L_1(x)+y_2L_2(x)+y_3L_3(x)\]
Donde:
\(L_0(x)=\frac{(x-x_1)(x-x_2)(x-x_3)}{(x_0-x_1)(x_0-x_2)(x_0-x_3)}\)
\(L_0(x)=\frac{(x-1)(x-2)(x-3)}{(0-1)(0-2)(0-3)}\)
\(L_0(x)=\frac{x^{3}-6x^{2}+11x-6}{-6}\)
\(L_1(x)=\frac{(x-x_0)(x-x_2)(x-x_3)}{(x_1-x_0)(x_1-x_2)(x_1-x_3)}\)
\(L_1(x)=\frac{(x-0)(x-2)(x-3)}{(1-0)(1-2)(1-3)}\)
\(L_1(x)=\frac{x^{3}-5x^{2}+6x}{2}\)
\(L_2(x)=\frac{(x-x_0)(x-x_1)(x-x_3)}{(x_2-x_0)(x_2-x_1)(x_2-x_3)}\)
\(L_2(x)=\frac{(x-0)(x-1)(x-3)}{(2-0)(2-1)(2-3)}\)
\(L_2(x)=\frac{x^{3}-4x^{2}+3x}{-2}\)
\(L_3(x)=\frac{(x-x_0)(x-x_1)(x-x_2)}{(x_3-x_0)(x_3-x_1)(x_3-x_2)}\)
\(L_3(x)=\frac{(x-0)(x-1)(x-2)}{(3-0)(3-1)(3-2)}\)
\(L_3(x)=\frac{x^{3}-3x^{2}+2x}{6}\)
Entonces:
\[P_n(x) = y_0L_0(x)+y_1L_1(x)+y_2L_2(x)+y_3L_3(x)\]
\[P_3(x)= \frac{1}{6}(x^{3}-6x^{2}+11x)+\frac{6}{2}(x^{3}-5x^{2}+6x)-\frac{31}{2}(x^{3}-4x^{2}+3x)+\frac{18}{6}(x^{3}-3x^{2}+2x)\] \[P_3(x)= \frac{x^{3}}{6}-x^{2}+\frac{11}{6}x-1+3x^{3}-15x^{2}+18x-\frac{31}{2}x^{3}+62x^{2}+\frac{93}{2}x+\frac{18}{6}x^{3}-9x^{2}+6x\] \[P_3(x)= -\frac{28}{3}x^{3}+37x^{2}-\frac{62}{3}x-1\] COMPROBACIÓN:
Comprobamos en cualquier punto que obtengamos en la variable independiente (x) de la tabla dada; en este ejemplo utilizaremos el punto 3, entonces:
\[P_3(3)= -\frac{28}{3}(3)^{3}+37(3)^{2}-\frac{62}{3}(3)-1\]
\[P_3(3)= 18\]
2) Se desea interpolar f(x)=tan(x) en los puntos:
x | y |
---|---|
-1.5 | -14.10 |
-0.75 | -0.931 |
0 | 0 |
0.75 | 0.931 |
1.5 | 14.10 |
Obtenemos un polinomio de grado 4
La base polinómoca es:
\[ L_0(x)=\frac{x-x_1}{x_0-x_1}*\frac{x-x_2}{x_0-x_2}*\frac{x-x_3}{x_0-x_3}*\frac{x-x_4}{x_0-x_4}\]
\[ L_0(x)= \frac{1}{243}x(2x-3)(4x-3)(4x+3)\]
\[ L_1(x)=\frac{x-x_0}{x_1-x_0}*\frac{x-x_2}{x_1-x_2}*\frac{x-x_3}{x_1-x_3}*\frac{x-x_4}{x_1-x_4}\] \[ L_1(x)= -\frac{8}{243}x(2x-3)(2x+3)(4x-3)\]
\[L_2(x)=\frac{x-x_0}{x_2-x_0}*\frac{x-x_1}{x_2-x_1}*\frac{x-x_3}{x_2-x_3}*\frac{x-x_4}{x_2-x_4}\] \[L_2(x)=\frac{1}{243}(243-540x^2+192x^4)\]
\[L_3(x)=\frac{x-x_0}{x_3-x_0}*\frac{x-x_1}{x_3-x_1}*\frac{x-x_2}{x_3-x_2}*\frac{x-x_4}{x_3-x_4}\]
\[L_3(x)= -\frac{8}{243}x(2x-3)(2x+3)(4x+3)\]
\[L_4(x)=\frac{x-x_0}{x_4-x_0}*\frac{x-x_1}{x_4-x_1}*\frac{x-x_2}{x_4-x_2}*\frac{x-x_3}{x_4-x_6}\]
\[ L_4(x)= \frac{1}{243}x(2x+3)(4x-3)(4x+3)\]
Así el polinomio interpolador se obtiene simplemente como la combinación lineal entre los \(L_i(x)\) y los valores de las abscisas:
\[P_4(x)= \frac{1}{243}(f(x_0)x(2x-3)(4x-3)(4x+3)-8f(x_1)x(2x-3)(2x+3)(4x-3)+f(x_2)(243 - 540x^2 + 192x^4)-8f(x_3)x(2x-3)(2x+3)(4x+3)+f(x_4)x(2x+3)(4x-3)(4x+3))\]
\[ P_4(x) = 4.83456x^3 - 1.4778x\]
COMPROBACIÓN
Realizamos la comprobación con cualquier punto de x de la tabla dada, en este caso utilizaremos el punto 0.75:
\[P_4(0.75)= 4.83456(0.75)^3 - 1.4778(0.75)\]
\[P_4(0.75)= 0.93123\]
3. Aplicar la interpolación de Lagrange para encontrar el polinomio que interpole los datos siguientes:
\((0,1) , (1,3), (2,0)\)
Es decir:
x | y |
---|---|
0 | 1 |
1 | 3 |
2 | 0 |
Realizando las iteraciones:
\[ L_0(x)= \frac{(x-x_1)(x-x_2)}{(x_0-x_1)(x_0-x_2)} \]
\[ L_0(x)= \frac{(x-1)(x-2)}{(0-1)(0-2)}\]
\[ L_0(x)= \frac{x^2-2x-x+2}{(-1)(-2)}\]
\[ L_0(x)= \frac{x^2-3x+2}{2}\]
\[ L_0(x)= \frac{1}{2}(x^{2}-3x+2)\]
\[ L_1(x)= \frac{(x-x_0)(x-x_2)}{(x_1-x_0)(x_1-x_2)} \] \[ L_1(x)= \frac{(x-0)(x-2)}{(1-0)(1-2)} \]
\[ L_1(x)= \frac{x^2-2x-0+0}{(1)(-1)}\] \[ L_1(x)= \frac{x^2-2x}{-1}\]
\[ L_1(x)= -(x^2-2x)\]
\[ L_2(x)= \frac{(x-x_0)(x-x_1)}{(x_2-x_0)(x_2-x_1)}\] \[ L_2(x)= \frac{(x-0)(x-1)}{(2-0)(2-1)}\] \[ L_2(x)= \frac{x^2-x}{2}\] \[ L_2(x)= \frac{1}{2}(x^{2}-x)\]
Teniendo el polinomio:
\[ P(x)= f(x_0)L_0(x)+f(x_1)L_1(x)+f(x_2)L_2(x)\]
Reemplazamos en el polinomio:
\[P(x)=1[\frac{1}{2}(x^2-3x+2)]+3[-(x^2-2x)]+0[\frac{1}{2}(x^2-x)]\]
\[= \frac{1}{2}(x^2-3x+2)-3(x^2-2x)+0\]
\[=\frac{1}{2}x^2-\frac{3}{2}x+1-3x^2+6x\]
\[= -\frac{5}{2}x^2+\frac{9}{2}x+1 \]
Entonces:
\[P(x)= -\frac{5}{2}x^2+\frac{9}{2}x+1 \] COMPROBACIÓN
\[P(1)= -\frac{5}{2}(1)^2+\frac{9}{2}(1)+1 \]
\[ P(1)=3\]
EJEMPLO 1
Obtener el polinomio de interpolación usando la fórmula de interpolación de Newton en diferencias divididas con los datos de la tabla que aparece a continuación, e interpolar en el punto x = 5**
Solución:
Sabemos que si tenemos los n+1 puntos \((x_i,y_i)\), i=0… n, y queremos calcular el polinomio que interpola en dichos puntos utilizando la fórmula de Interpolación de Newton en diferencias divididas, hemos de usar:
\[P_n(x)= f[x_0] + f[x_0,x_1](x−x_0)+ f[x_0,x_1,x_2](x−x_0)(x−x_1)+…+f[x_0,x_1, …,x_n](x−x_0)(x−x_1)…(x−x_{n−1})\]
Calculamos entonces la tabla de diferencias divididas:
X_k | Y_k | 1er orden | 2do orden | 3er orden | 4to orden |
---|---|---|---|---|---|
4 | 278 | - | |||
-4 | -242 | 65 | |||
7 | 1430 | 152 | 29 | ||
6 | 908 | 522 | 37 | 4 | |
2 | 40 | 217 | 61 | 4 | 0 |
donde se ha expresado por brevedad la diferencia dividida
\(f[x_k,x_k+1,…,x_k+p]\) como \(f[x_k || x_k+p]\).
La diagonal de la tabla de diferencias divididas, es entonces:
\([278,65,29,4,0]\),
que se corresponde exactamente con el conjunto de valores que aparece en la fórmula y por tanto, los polinomios de Newton son los siguientes:
\(p_0(x) = 278\) (interpola en el primer punto)
\(p_1(x) = 65(x-4) + p0(x) = 65x + 18\) (interpola en los 2 primeros puntos)
\(p_2(x) = 29(x-4) + p1(x) = 29x^2-446+65x\) (interpola en los 3 primeros puntos)
\(p_3(x) = 4(x-4)(x+4)(x-7) + p2(x) = 2+x+4x^3+x2\) (interpola en todos los puntos)
O también:
\[p(x) = 278+65(x−4)+29(x-4)(x+4)+ 4(x-4)(x+4)(x-7) = 2+x+4x^3+x^2\]
Si se quiere interpolar en un punto concreto, lo mejor es tomar el polinomio de interpolación en su forma de Newton y reordenarlo al estilo Ruffini-Horner expresando el polinomio como:
\[p(x) = 278 +(x−4) (65+(x-4)(29+(x-7)(4)))\]
lo que supone realizar a lo sumo 6 sumas/restas y 3 multiplicaciones para interpolar en un punto x. Para interpolar entonces en x= 5, basta sustituir la x de la expresión reordenada anterior por su valor 5 para obtener \[p(5) = 364\].
EJEMPLO 2
Sabemos que si tenemos los n+1 puntos \((x_i,y_i)\), \(i=0… n\), y queremos calcular el polinomio que interpola en dichos puntos utilizando la fórmula de Interpolación de Newton en diferencias divididas, hemos de usar:
\[p_n(x)= f[x_0] + f[x_0,x_1](x−x_0)+ f[x_0,x_1,x_2](x−x_0)(x−x_1)+…+f[x_0,x_1, …,x_n](x−x_0)(x−x_1)…(x−x_{n−1})\] Calculamos entonces la tabla de diferencias divididas:
X_k | Y_k | 1er orden | 2do orden |
---|---|---|---|
2 | 15 | ||
0 | -1 | 8 | |
-2 | -17 | 8 | 0 |
donde se ha expresado por brevedad la diferencia dividida \(f[x_k,x_k+1,…,x_k+p]\) como \(f[x_k || x_k+p]\).
La diagonal de la tabla de diferencias divididas, es entonces: \([15,8,0]\), que se corresponde exactamente con el conjunto de valores que aparece en la fórmula y por tanto, los polinomios de Newton son los siguientes:
\(p_0(x) = 15\) (interpola en el primer punto)
\(p_1(x) = 8(x-2) + p_0(x) = 8x−1\) (interpola en todos los puntos)
O también:
\[p(x) = 15 +8(x−2) = 8x−1\]
Si se quiere interpolar en un punto concreto, lo mejor es tomar el polinomio de interpolación en su forma de Newton y reordenarlo al estilo Ruffini-Horner expresando el polinomio como:
\[4p(x) = 15 +(x−2) (8)\]
lo que supone realizar a lo sumo 2 sumas / restas y 1 multiplicaciones para interpolar en un punto x. Para interpolar entonces en \(x= −1\), basta sustituir la x de la expresión reordenada anterior por su valor −1 para obtener \[p(−1) = −9.\]
# Datos de ejemplo
x <- c(1, 2, 3, 4, 5) # Puntos x
y <- c(4, 3, 5, 6, 8) # Puntos y
# Función para calcular el polinomio de Lagrange
lagrange_interpolation <- function(x, y, x_interp) {
n <- length(x)
y_interp <- rep(0, length(x_interp))
for (k in 1:length(x_interp)) {
for (i in 1:n) {
L_i <- 1
for (j in 1:n) {
if (i != j) {
L_i <- L_i * (x_interp[k] - x[j]) / (x[i] - x[j])
}
}
y_interp[k] <- y_interp[k] + L_i * y[i]
}
}
return(y_interp)
}
# Puntos de interpolación
x_interp <- seq(min(x), max(x), length.out = 100)
# Realizar la interpolación de Lagrange
y_interp <- lagrange_interpolation(x, y, x_interp)
# Gráfica de los puntos y la interpolación
plot(x, y, pch = 16, col = "blue", xlab = "x", ylab = "y", main = "Interpolacion de Lagrange")
lines(x_interp, y_interp, col = "red", lwd = 2)
legend("topleft", legend = c("Puntos", "Interpolacion"), col = c("blue", "red"), pch = c(16, NA))
newtonInterpolacion = function(x, y, a) {
n = length(x)
A = matrix(rep(NA, times = n^2), nrow = n, ncol = n)
A[,1] = y
for (k in 2:n) {
A[k:n, k] = (A[k:n, k-1] - A[(k-1):(n-1), k-1] ) / (x[k:n] - x[1:(n-k+1)])
}
# Imprimir matriz de diferencias divididas
print(A)
# Evaluar
smds = rep(NA, length = n)
smds[1] = 1 #x = x[1],..., x[n] pues n = length(x)
for (k in 2:n) {
smds[k] = (a - x[k-1])*smds[k-1] # hasta x[n-1]
}
return(sum(diag(A)*smds) )
}
##--- pruebas -----------------------------------------------
x = c( 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0)
y = c(0.31, 0.32, 0.33, 0.34, 0.45, 0.46, 0.47, 0.48, 0.49, 0.5)
newtonInterpolacion(x[2:5], y[2:5], 0.35)
## [,1] [,2] [,3] [,4]
## [1,] 0.32 NA NA NA
## [2,] 0.33 0.1 NA NA
## [3,] 0.34 0.1 -2.775558e-16 NA
## [4,] 0.45 1.1 5.000000e+00 16.66667
## [1] 0.32875
BIBLIOGRAFÍAS
http://interpolacion.wikidot.com/solucion-ejercicio-1-newton
https://www.coursehero.com/file/47062374/Codigo-Matlab-Interpolacion-de-Lagrangepdf/
https://es.wikipedia.org/wiki/Interpolación_polinómica_de_Lagrange
https://www.ingenieria.unam.mx/pinilla/PE105117/pdfs/tema4/4-1_lagrange.pdf
http://aniei.org.mx/paginas/uam/CursoMN/curso_mn_07.html
https://www.lifeder.com/interpolacion-de-lagrange/
https://es.wikipedia.org/wiki/Interpolación_polinómica_de_Newton
https://www.youtube.com/watch?v=CeYKhxfmneI&t=1046s