Pantoja Carhuavilca Métodos Computacionales
Agenda y Interpolacion de y Interpolacion de
Dado un conjunto de datos conocidos (x 0, y 0 ), (x 1, y 1 ),..., (x N, y N ) buscamos una función f : R R que satisfaga f (x i ) = y i, i = 0,..., N 3 y Interpolacion de
Dado un conjunto de datos conocidos (x 0, y 0 ), (x 1, y 1 ),..., (x N, y N ) buscamos una función f : R R que satisfaga f (x i ) = y i, i = 0,..., N 3 y Interpolacion de f es una función interpolante o interpolador
Dado un conjunto de datos conocidos (x 0, y 0 ), (x 1, y 1 ),..., (x N, y N ) buscamos una función f : R R que satisfaga f (x i ) = y i, i = 0,..., N f es una función interpolante o interpolador El interpolador f puede ser polinomio spline 3 y Interpolacion de
Trazado de curvas a través de un conjunto discreto de datos. 4 Determinar valores intermedios de una tabla de datos. Derivar e integrar a partir de una tabla de datos. y Interpolacion de Evaluar de manera fácil una función matemática. Reemplazar una función complicada por una simple.
Funciones utilizadas como interpoladores Polinomios Funciones trigonométricos Funciones exponenciales Funciones racionales Los interpoladores se ajustan a los datos de manera exacta (f (x i ) = y i ) presenta problemas cuando los datos están sujetos a errores significativos. 5 y Interpolacion de
6 y Interpolacion de
Teorema de Aproximación de Weierstrass Teorema Sea f : [a, b] R continua. Para todo ɛ > 0, existe un polinomio P(x) definido sobre [a, b] tal que: f (x) P(x) < ɛ x [a, b] y 7 Interpolacion de
Teorema Si x 0, x 1,..., x N son números reales distintos, entonces para N + 1 valores arbitrarios y 0, y 1,..., y N existe un único polinomio P N de grado a lo sumo N tal que P N (x i ) = y i, i = 0,..., N Observaciones El teorema generaliza: Por 2 puntos distintos del plano pasa una y sólo una línea recta (polinomio de grado 1) x Dado una tabla de datos 0 x 1... x N y 0 y 1... y N existe uno y sólo un polinomio P N de grado N tal que P N (x i ) = y i. Aunque el polinomio es único, existen diversas formas de expresarlo y diferentes algoritmos para determinarlos.
Polinomio interpolador Asumimos un conjunto de puntos discretos {x 0, x 1,..., x N } con los valores correspondientes {f (x 0 ), f (x 1 ),..., f (x N )} Construimos una función f (x) que pasa por (x i, f (x i )) por medio de la N f (x) P N (x) = a k φ k (x) i=0 P N (x) es el polinomio interpolante. φ k (x) son polinomios conocidos a priori y forman una base. a k son coeficientes por determinar. y 9 Interpolacion de
de Consideremos como bases los monomios φ k (x) = x k, k = 0,..., N Para la base dada obtenemos la representación P N (x) = a 0 + a 1 x + a 2 x 2 +... + a N x N donde a 0, a 1,..., a N son constantes a determinar. y 10 Interpolacion de
de Las N + 1 ecuaciones que surgen al evaluar x i en f (x) se pueden expresar matricialmente como 1 x 0 x0 2... x0 N a 0 f (x 0 ) 1 x 1 x1 2... x1 N a 1 f (x 1 )..... 1 x N xn 2... x N N. = a N Va=f V es la matriz de y. det(v) = 0 i<j N (x j x i ) 0. f (x N ) y 11 Interpolacion de
Ejemplo Ejemplo Determine el polinomio de grado 2 que interpola los tres dados ( 2, 27), (0, 1), (1, 0) y 12 Interpolacion de Solución
El polinomio está dado por P 2 (x) = a 0 + a 1 x + a 2 x 2 Para este caso el sistema está dado por 1 2 4 a 0 27 1 0 0 a 1 = 1 1 1 1 a 2 0 [ ] T La solución está dada por 1 5 4 y P 2 (x) = 1 + 5x 4x 2 y 13 Interpolacion de
de Como base tomamos los polinomios básicos de definidos por L k (x) = (x x 0)(x x 1 ) (x x k 1 )(x x k+1 ) (x x N ) (x k x 0 )(x k x 1 ) (x k x k 1 )(x k x k+1 ) (x k x N ) N (x x i ) = (x k x i ) i = 0 i k Propiedades Lk es un polinomio { de grado N 1 si k = j L k (x j ) = 0 si k j y 14 Interpolacion de
El polinomio de interpolación de está dado por P N (x) = f (x 0 )L 0 + f (x 1 )L 1 +... + f (x N )L N = n f (x k )L N (x) k=0 El polinomio de interpolación de es de grado N y pasa por los N + 1 puntos (x 0, f (x 0 )),..., (x N, f (x N )) y 15 Interpolacion de
de Ejemplo Dado los siguientes puntos x 0 0.5 1 y 1 0.8 0.5 hallar los polinomios básicos de lagrange y el polinomio interpolante. Solución: L 0 (x) = (x x 1)(x x 2 ) (x 0 x 1 )(x 0 x 2 ) L 1 (x) = (x x 0)(x x 2 ) (x 1 x 0 )(x 1 x 2 ) L 2 (x) = (x x 0)(x x 1 ) (x 2 x 0 )(x 2 x 1 ) = = = (x 0.5)(x 1) (0 0.5)(0 1) (x 0)(x 1) (0.5 0)(0.5 1) (x 0)(x 0.5) (1 0)(1 0.5) y 16 Interpolacion de
de Polinomios Basicos de : L 0 (x) = 2x 2 3x + 1 L 1 (x) = 4x 2 + 4x L 2 (x) = 2x 2 x Polinomio de : y 17 P 2 (x) = y 0 L 0 + y 1 L 1 + y 2 L 2 = 1(2x 2 3x + 1) + 0.8( 4x 2 + 4x) + 0.5(2x 2 x) = 0.2x 2 0.3x + 1 Interpolacion de
Ejemplo Determine el polinomio de lagrange para f (x) = 1 en los x puntos x 0 = 2, x 1 = 2.25, x 2 = 4 y utilícelo para aproximar f (3) Solución: (x 2.5)(x 4) L 0 (x) = (2 2.5)(2 4) = x 2 6.5x + 10 (x 2)(x 4) L 1 (x) = (2.5 2)(2.5 4) = 4 3 x 2 + 8x 32 3 (x 2)(x 2.5) L 2 (x) = (4 2)(4 2.5) = 1 3 x 2 4.5 3 x + 5 3 P(x) = f (2)L 0 (x) + f (2.5)L 1 (x) + f (4)L 2 (x) = 0.05x 2 0.425x + 1.15 f (3) P(3) = 0, 325
Observación El método de tiene un inconveniente y es que la forma obtenida es mala para operar: para sumarlo con otra función, para derivar, integrar, etc. Por lo que la respuesta es sólo formal y hay que realizar mucho cálculo para obtener la expresión final en la forma a 0 + a 1 x + a 2 x 2 +... + a n x n. De hecho hay otro inconveniente, más sutil que el anterior. Es natural que en el contexto de mediciones y experimentos que nombrámos en la introducción del tema se incorporen nuevos datos. Qué ocurre si nos dan otro dato más (x n+1, f (x n+1 ))? A través de esta vía hay que construir todos los polinomios de de nuevo! (lo realizado antes es trabajo inútil). Ambos motivos nos conducen a replantear el problema por otra vía más eficiente. y 19 Interpolacion de
de Con el fin de reducir la complejidad computacional hacemos el siguiente cambio de base k 1 φ k (x) = (x x i ) i=0 Ahora f (x) es aproximada por y 20 Interpolacion de 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 )
La k-ésima diferencia dividida f [x i, x i+1,..., x i+k 1, x i+k ] = f [x i+1, x i+2,..., x i+k ] f [x i, x i+1,..., x i+k 1 ] x i+k x i Los coeficientes son a k = f [x 0, x 1, x 2,..., x k ] y y Interpolacion de 21 n P n (x) = f [x 0 ] + f [x 0, x 1,..., x k ](x x 0 ) (x x k 1 ) k=1
Tabla de diferencias divididas y Interpolacion de 22
Diferencia Dividida de Implementación en MATLAB function F=divideddifference(x,f) y n=length(x)-1; F=zeros(n+1,n+1); F(:,1)=f(:); for i=1:n for j=1:i F(i+1,j+1)=(F(i+1,j)-F(i,j))/(x(i+1)-x(i-j+1)); end end Interpolacion de 23
Ejemplo Ejemplo Dado los siguientes puntos x 0 0.5 1 y 1 0.8 0.5 hallar el polinomio interpolante de. Solución: y Interpolacion de 24
Obtenemos el polinomio de interpolación: P 2 (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 ) P 2 (x) = 1 0.4(x 0) 0.2(x 0)(x 0.5) P 2 (x) = 0.2x 2 0.3x + 1 y Interpolacion de 25
Ejemplo Use diferencias divididas para encontrar el polinomio de interpolación que pasa por los puntos (0, 1), (2, 5) y (4, 17) y Interpolacion de 26 p(x) = 1 + 2x + x(x 2) = 1 + x 2
Ejercicio Ejercicio Añada el punto (3, 16) a los puntos anteriores y encuentre el polinomio interpolante. Solución: P(x) = 2x 3 + 13x 2 16x + 1 y Interpolacion de 27
Se define para un conjunto de puntos (x 0, f 0 ); (x 1, f 1 );... ; (x n, f n ), igualmente espaciados para x; es decir, x i+1 x i = h; para i = 0, 1,..., n 1. Diferencia Finita hacia adelante o progresiva Diferencia finita de primer orden f k = f k+1 f k Diferencia finita de segundo orden y Interpolacion de 2 f k = f k+1 f k 28 Diferencia finita de orden n n f k = n 1 f k+1 n 1 f k
Tabla de y Interpolacion de 29
Polinomio de interpolación basado en Diferencias Finitas Progresivas Se debe hallar una relación entre las diferencias finitas y divididas f [x 0, x 1, x 2,..., x k ] = k f 0 k!h k Reemplazando en el polinomio basado en diferencias divididas se tiene: y Interpolacion de P n (x) = f 0 + f 0 1!h 1 (x x 0) + 2 f 0 2!h 2 (x x 0)(x x 1 ) +... 30 + n f 0 n!h n (x x 0)... (x x n 1 )
Teniendo en cuenta que los intervalos se tomarán igualmente espaciados (h = x i+1 x i ) para x, y haciendo el cambio de variable s = x x 0 h P n (s) = f 0 +s f 0 + s(s 1) 2 s(s 1)(s 2) f 0 + 3 f 0 +... 2! 3! s(s 1)... (s n + 1)... + n f 0 n! ( ) n s = f 0 + k f 0 k k=1 y Interpolacion de 31
Error de Teorema Sea f C n+1 [a, b] y p el polinomio de grado n que interpola a f en los n + 1 puntos x 0, x 1,..., x n del intervalo [a, b]. Para cada x [a, b] existe un ξ = ξ(x) a, b tal que 1 n f (x) p(x) = (n + 1)! f (n+1) (ξ) (x x i ) i=0 y Interpolacion de 32
Ejemplo Estime el error cometido al aproximar la función f (x) = sin(x) por medio del polinomio de grado nueve que interpola a f en diez puntos del intervalo [0, 1] Solución La cota de error está dado por f (x) p(x) = 1 n 10! f (10) (ξ) (x x i ) i=0 Por otra parte: [f (10) (ξ) = sin ξ f (10) (ξ) 1 y x [0, 1] n i=0 (x x i ) 1 Luego f (x) p(x) 1 2.8 10 7 10!
Ejemplo Se desea tabular la función f (x) = cos(x)e x definida en [ π, π] mediante puntos equiespaciados. Cúantos puntos son necesarios para que al interpolar linealmente entre dos valores consecutivos el error entre la función y el interpolante no supere a 0.5. Solución: f (x) P 1 (x) = f (ξ) (x x 0 )(x x 1 ) M h 2 2! 2 4 < 0.5 Tomando como caso critico x = x 0 + x 1 y 2 M = máx ξ [ π,π] f (ξ) Dado que: f (x) = 2 sin(x)e x Entonces: M = 2e π, por lo tanto h < 0.2940 y Interpolacion de 34 N > 2π h N = 22
Ejemplo Encuentre una cota superior para la diferencia en x = 0.25 y x = 0.75 entre f (x) = e x y el polinomio de interpolación en los puntos 1; 0.5; 0; 0.5; 1. Solución: Con cinco puntos el polinomio de interpolación será de grado menor o igual a cuatro, P 4 (x). De la fórmula de error de interpolación se obtiene y Interpolacion de f (x) P 4 (x) = (x + 1)(x + 0.5)x(x 0.5)(x 1) 5! f (5) (ξ) 35 donde 1 ξ 1
La quinta derivada de e x en ξ es f (5) (ξ) = e ξ Como e x es una función creciente su máximo lo obtiene en el extremo derecho del intervalo, f (5) (x) e 1 en [ 1, 1] La fórmula de error queda y f (x) P 4 (x) (x + 1)(x + 0.5)x(x 0.5)(x 1) e 5! Interpolacion de 36
Así que en x = 0.25 el error de interpolación está acotado por e 0.25 1.25 0.75 0.25 0.25 0.75 P 4 (0.25) e 120 0.000995 Y en x = 0.75 el error queda acotado por e 0.75 1.75 1.25 0.75 0.25 0.25 P 4 (0.75) e 120 0.002323 el cúal es más grande. y Interpolacion de 37
Error de para Teorema Sea f C n+1 [a, b] y p el polinomio de grado n que interpola a f en los n + 1 puntos x 0, x 1,..., x n del intervalo [a, b]. Entonces n f (x) p(x) = f [x 0, x 1,..., x n, x] (x x i ) i=0 Se suele aproximar el error considerando x = x n+1, es decir, se requiere un punto adicional. y Interpolacion de 38
Ejemplo Dada la siguiente tabla de datos Hallar el polinomio cuadrático interpolante de. Interpolar para x = 0.17 Hallar el error cometido.
Solución P 2 (x) = f 0 + f [x 0, x 1 ](x x 0 ) + f [x 0, x 1.x 2 ](x x 0 )(x x 1 ) Reemplazando: P 2 (x) = 0.748125 0.10044(x 0.1)+0.00655(x 0.1)(x 0.2) P 2 (0.17) = 0.7080445 Podemos aproximar el error de la siguiente forma e n (x) = f [x 0, x 1,..., x n+1 ](x x 0 )(x x 1 )... (x x n ) e 2 (x) = f [x 0, x 1, x 2, x 3 ](x x 0 )(x x 1 )(x x 2 ) y Interpolacion de 40 e 2 (0.17) = 0.2193 (0.17 0.1) (0.17 0.2) (0.17 0.4) e 2 (0.17) = 1.0592 10 4
Observaciones Si P interpola a f en los n + 1 puntos x 0, x 1,..., x n 1 n f (x) P(x) = (n + 1)! f (n+1) (ξ) (x x i )...( ) i=0 con ξ [x 0, x n ]. ξ es desconocido y ( ) sólo es útil si la derivada está acotada Si f (n+1) (x) < M y h = máx{x i+1 x i ; i = 0, 1,..., n}, máx x [x0,x n] f (x) P(x) Mhn+1 (n + 1)! El error disminuye a medida que n crece y h disminuye, solo si f n+1 (x) está acotada. Aumentar el grado del polinomio no garantiza una mejor (puede aparecer oscilaciones entre los puntos de interpolación). y Interpolacion de