1 POLINOMIOS E INTERPOLACIÓN OBJETIVO: REALIZAR OPERACIONES CON POLINOMIOS E INTERPOLAR DATOS UNIDIMENSIONALES, BIDIMENSIONALES Y MULTIDIMENSIONALES. CONTENIDO: Interpolación polinomial. Métodos de interpolación. Funciones polinómicas y operaciones con polinomios. Derivada de un polinomio. Ajuste de curvas. Expansión en fracciones parciales. Interpolación unidimensional, bidimensional y multidimensional. 2 INTERPOLACIÓN POLINOMIAL El objetivo principal de la interpolación polinomial es estimar los valores funcionales para uno o más valores de la variable independiente desconocida, a partir de un conjunto de datos discretos de una función dada, es así que a continuación se presenta una definición y algunos métodos de interpolación. n 1 puntos de una función f : , un polinomio P de grado menor o igual a n que pasa por cada uno de los n 1 puntos dados, es llamado polinomio interpolador de f . Definición.- Dados En general el polinomio puede escribirse como: P( x) an xn an1 x n1 ... a2 x 2 a1 x a0 Proposición.- Dada una función f : , x0 x1 x2 ... xn y ( x0 , y0 ) , ( x1 , y1 ) , ( x2 , y2 ) , …, ( xn , yn ) , n 1 puntos distintos de f , existe exactamente un polinomio P( x) de grado menor o igual a n que interpola a f . Demostración. Supongamos que existen dos polinomios P y Q distintos que interpolan a f. 3 Es decir: f ( xi ) P( xi ), i 0,1,..., n. y f ( xi ) Q( xi ), i 0,1,..., n. Definamos H ( x) P( x) Q( x) ; el cual es de grado menor o igual a Evaluando H en n. xi , para i 0,1,..., n. H ( xi ) P( xi ) Q( xi ) f ( xi ) f ( xi ) 0. H ( xi ) 0. , para i 0,1,..., n. De donde se obtiene que H posee n 1 raíces, dado que H es un polinomio de grado menor o igual a n , esto contradice el Teorema Fundamental de Álgebra. Por lo tanto, existe un único polinomio P que interpola a f . Ejemplo:Dada una función f : y (1, 1) , (3 , 7) , puntos distintos de f El polinomio de grado uno que interpola a estos datos, esto es: P( x ) 2 x 1 . 4 MÉTODOS DE INTERPOLACIÓN Método de Lagrange Este método construye un polinomio interpoladorde orden n para forma: n 1 puntos dados en la P( x) a0 ( x x1 )( x x2 )( x x3 )....( x xn ) a1 ( x x0 )( x x2 )( x x3 )....( x xn ) ... an ( x x0 )( x x1 )( x x2 )....( x xn1 ). Reemplazando los puntos dados en el polinomio se obtiene el valor de los coeficientes a0 y0 ( x0 x1 )( x0 x2 )( x0 x3 )....( x0 xn ) a1 y1 ( x1 x0 )( x1 x2 )( x1 x3 )....( x1 xn ) a2 y2 ( x2 x0 )( x2 x1 )( x2 x3 )....( x2 xn ) ………… an yn ( xn x1 )( xn x2 )( xn x3 )....( xn xn 1 ) . Ejemplo:Consideremos una función f : y (1, 2) , (3 , 1) , (5 , 4) ,puntos distintos de f . Construyamos el polinomio P( x) a0 ( x 3)( x 5) a1 ( x 1)( x 5) a2 ( x 1)( x 3). Reemplazando los valores dex obtenemos: 5 a0 0.25 , a1 0.25 , a2 0.5 Donde: P( x) 0.25( x 3)( x 5) 0.25( x 1)( x 5) 0.5( x 1)( x 3). Ejemplo:Hallar el polinomio interpolador para la función f: y (0 , 0) , (1, 1) , (3 , 21) (4 , 52) puntos distintos de f . . P( x) 0.166( x)( x 3)( x 4) 3.5( x)( x 1)( x 4) 4.33( x)( x 1)( x 3). P(2) 4.66672 6 Método: Serie de Potencias Este método n P( x) an x an1 x n construye n 1 unpolinomio interpoladorde orden ... a2 x a1 x a0 para n 1 puntos dados,reemplazando 2 los puntos dados en el polinomio y resolviendo el sistema de ecuaciones generado, hallando de esta manera sus coeficientes. Ejemplo:Consideremos una f: función y (2 ,10) , (1, 4) , (1, 6) (2 , 3) ,puntos distintos de f . Construyamos P( x) a3 x a2 x a1 x a0 . 3 2 Reemplazando los valores en el polinomio se obtiene el siguiente sistema de ecuaciones: 8a3 4a2 2a1 a0 10 a3 a2 a1 a0 4 a3 a2 a1 a0 6 8a3 4a2 2a1 a0 3 Esto es equivalente al sistema: 8 4 2 1 1 1 1 1 1 8 4 2 Obteniendo así el resultado: polinomio: 1 a3 10 1 a2 4 1 a1 6 1 a0 3 a3 0.19167, a2 0.5, a1 1.9167, a0 4.5 y el P( x) 0.9167 x3 0.5x2 1.9167 x 4.5 En forma general para n 1 puntos el polinomio es de la forma: P( x) an1 x n1 ... a2 x 2 a1 x a0 7 Y el sistema: an x1n ... a2 x12 a1 x1 a0 y 1 an x2 n ... a2 x2 2 a1 x2 a0 y 2 ....................................................... ....................................................... an xn 1n ... a2 xn 12 a1 xn 1 a0 y n 1 La matriz de coeficientes de este sistema se conoce como la matriz de Vandermonde y se puede demostrar que es no singular si los xi son todos distintos. (Esta condición se asumirá de aquí en adelante). De modo que el polinomio de interpolación Pn ( x) exista por la proposición anterior. Ejemplo:Hallar el polinomio interpolador para la función f : (3 , 3) (5 , 8) , (6 , 9) puntos distintos de f . El polinomio es: P( x) 0.2667 x4 3.85x3 18.93x2 37.85x 22.5 8 y (1, 0) , (2 , 4) , Archivo m: Parautilizar el siguiente programa las variables x e y deben ser arreglos y escritos entre corchetes, digitar en la ventana de comandos: >> ser1( x , y ). 9 Método: Newton. n en la siguiente forma: P( x) a0 a1 ( x x1 ) a2 ( x x1 )( x x2 ) ... an ( x x1 )( x x2 )...( x xn ) para n 1 Este método construye el polinomio interpolador de orden puntos dados reemplazando los puntos dados en el polinomio, lo que permite obtener una matriz de coeficientes triangular inferior. Esto es una gran ventaja ya que la matriz de Vandermonde es densa y en general mal acondicionada. Ejemplo:Consideremos una función f: y (2 ,10) , (1, 4) , (1, 6) (2 , 3) ,puntos distintos de f . Construyamos. P( x) a0 a1 ( x 2) a2 ( x 2)( x 1) a3 ( x 2)( x 1)( x 1) Reemplazando los valores en el polinomio se obtiene el siguiente sistema de ecuaciones: a0 10 a0 a1 4 a0 3 a1 6a2 6 a0 4 a1 12a2 12a3 3 Esto es equivalente al sistema: 1 0 0 0 a0 10 1 1 0 0 a 4 1 1 3 6 0 a2 6 1 4 12 12 a3 3 Obteniendo así el resultado: a0 10, a1 6, a2 7 / 3, a3 11/12. y el polinomio: P( x) 10 6( x 2) (7 / 3)( x 2)( x 1) (11/12)( x 2)( x 1)( x 1) 10 Ejemplo:Hallar el polinomio interpolador para la función f : y (1, 0) , (2 , 4) , (3 , 3) (5 , 8) , (6 , 9) puntos distintos de f . P( x) 4( x 1) 2.5( x 1)( x 2) 0.916( x 1)( x 2)( x 3) 0.26( x 1)( x 2)( x 3)( x 5) Cálculo de ai mediante diferencias divididas: Las diferencias divididas de orden 0, 1, 2, ..., n se pueden deducir recursivamente por medio de las siguientes relaciones: f x0 f ( x0 ) f x0 , x1 f x1 f x0 f x0 , x1 , x2 x1 x0 f x1 , x2 f x0 , x1 x2 x0 1 f ( x2 ) f ( x1 ) f ( x1 ) f ( x0 ) x1 x0 x2 x1 x1 x0 11 f x0 ,..., xk f x1 ,..., xk f x0 ,..., xk 1 xk x0 Ejemplo: Consideremos los valores de una función f en forma tabular: x f(x) x0 = -2 f[x0]=10 x1 = -1 f[x1]=4 x2 =1 f[x2]=6 x3 =2 f[x3]=3 La tabla de diferencias divididas es: x f[x0] f[x0, x1] f[x0, x1 , x2] f[x0, x1 , x2, x3 ,] -2 10 (4 -10)/(-1+2) (1+6)/(1+2) (-4/3-7/3)/(2+2) 4 = -6 (6-4)/(1+1) =7/3 (-3-1)/(2+1) = - 11/12 -1 =-4/3 6 =1 (3-6)/(2-1) 1 = -3 2 3 12 Simplificando se obtiene: x f[x0] f[x0, x1] f[x0, x1 , x2] f[x0, x1 , x2, x3 ,] -2 10 -6 7/3 -11/12 -1 4 1 -4/3 1 6 -3 2 3 Donde en la primera fila se observan los coeficientes del polinomio P( x) a0 a1 ( x 2) a2 ( x 2)( x 1) a3 ( x 2)( x 1)( x 1) . Para el caso general de n 1 puntos buscamos los coeficientes del polinomio: P( x) a0 a1 ( x x1 ) a2 ( x x1 )( x x2 ) ... an ( x x1 )( x x2 )...( x xn ) A continuación presentamos el archivo m, que determina la tabla de las diferencias divididas y los coeficientes del polinomio de Newton. 13 Archivo m: Parautilizar el siguiente programa las variables x e y deben ser arreglos y escritos entre corchetes, digitar en la ventana de comandos: >>ninterp( x , y ). 14 Interpolación Polinomial por Partes El uso de polinomios de interpolación de alto grado puede producir errores grandes debido al alto grado de oscilación de este tipo de polinomios. Para evitar este problema se busca aproximar la función desconocida en intervalos pequeños usando polinomios de grado bajo. El caso más común de la interpolación por partes es usar polinomios cúbicos. n es divisible por tres y busca un polinomio cúbico que interpole a la función en los puntos x3 j 3 , x3 j 2 , x3 j 1 , x3 j . Polinomios Cúbicos de Lagrange: Este método considera que Este polinomio está dado en su representación de Lagrange como: P( x) Para 1 1 1 ( x x3 j 2 )( x x3 j 1 )( x x3 j ) y3 j 3 3 ( x x3 j 3 )( x x3 j 1 )( x x3 j ) y3 j 2 3 6h 2h 1 1 ( x x3 j 3 )( x x3 j 2 )( x x3 j ) y3 j 1 3 ( x x3 j 3 )( x x3 j 2 )( x x3 j 1 ) y3 j 3 2h 6h j n / 3 , x3 j 3 x x3 j y h xi 1 xi se asume constante i. Interpolación de Hermite: Este método construye un polinomio por partes sea cúbico en cada subintervalo x0 ,..., xn . xi1 xi , 1 i n. H n ( x) que y que interpole a f ( x) y f '( x) en H n ( x) queda determinada en forma única por estascondiciones y su cálculo requiere de la solución de n sistemas lineales de orden 4x4 los puntos La función cada uno. La desventaja de la interpolación de Hermite es que requiere de la disponibilidad de los f '( xi ), 0 i n lo cual no es el caso en muchas aplicaciones. Interpolación Spline: Los dos tipos de polinomios por partes que hemos discutidos hasta ahora tienen la desventaja de que su segunda derivada no es continua en los puntos de interpolación. Se ha observado que en aplicaciones gráficas, el ojo humano es capaz de detectar discontinuidades en las segundas derivadas de una función, haciendo que los gráficos con este tipo de funciones no luzcan uniformes. Esto motiva el uso de los splines que son funciones s( x) continúas por partes con las siguientes propiedades: 1. s( x) es polinomio cúbico en xi 1 xi , 1 i n. . 15 2. s '( x), s ''( x) existen y son continuas en x0 , xn . 3. s( x) interpola a la función f en los datos ( xi , yi ), 0 i n . 4. s( x) es continua en x0 , xn . Siescribimos s( x) a3 ( x x0 ) a2 ( x x0 ) a1 ( x x0 ) a0 , x 3 ntonces tenemos un total de 2 xi1, xi , 1 i n. e 4n valores desconocidos. Las condiciones 2) y 4) nos dan 3(n 1) ecuaciones mientras que de 3) obtenemos n 1 para un total de 2 grados de libertad. Estos grados de libertad se fijan imponiendo condiciones de frontera adicionales en s( x) . Ejemplo:Hallar f (4) en el polinomio interpolador para la función f : puntos (1, 0) , (2 , 4) , (3 , 3) (5 , 8) , (6 , 9) El polinomio cúbico en el intervalo 3,5 es: P( x) 0.60714( x 3)3 2.5357( x 3)2 0.19286( x 3) 3 P(4) 4.7857 16 en los Los 3 polinomios restantes son: El polinomio cúbico en el intervalo 1, 2 es: P( x) 1.6786( x 1)3 7.5357( x 1)2 9.8571( x 1) El polinomio cúbico en el intervalo 2,3 es: P( x) 1.6786( x 2)3 2.5( x 2)2 0.1786( x 2) 4 El polinomio cúbico en el intervalo 5, 6 es: P( x) 0.60714( x 5)3 1.1071( x 5)2 2.7143( x 5) 8 Matlab provee un comando para determinar los coeficientes de los polinomios del Spline, a continuación se presenta en un archivo m. Archivo m: Parautilizar el siguiente programa las variables x e y deben ser arreglos y escritos entre corchetes, digitar en la ventana de comandos: >>scubico( x , y ). 17 Condición Natural de los Splines: Para fijar los dos grados de libertad en el spline, requerimos que s( x) sea lineal en los intervalos , x0 ], [ xn , lo cual es equivalente a las condiciones s ''( x0 ) s ''( xn ) 0 . Para el caso de implementar esta opción en Matlab se usa el formato: ps=spline(x,[0 y 0]). Mínimos Cuadrados Polinomiales Consideremos ahora el problema de aproximar una función en un número grande de puntos que contienen posiblemente un cierto grado de error. En lugar de tratar de ajustar un polinomio de alto grado o insistir en interpolar puntos que sabemos tienen un cierto grado de error, lo que hacemos es que buscamos una función que en cierto sentido suavice las fluctuaciones en los puntos y a la vez resalte las características esenciales de estos. En el método de los mínimos cuadrados, se trata de minimizar la suma de los cuadrados de las diferencias entre los valores y la función que se usa para aproximar estos valores. Suponga que los valoresestán dados por ( xk , yk ) , donde k 1, 2,..., m . La función que usamos para aproximar estos datos tiene la forma general: g ( x) a11 ( x) a22 ( x) ... ann ( x) y las funciones dadas y los i ( x) :1 i n son funciones ai :1 i n son desconocidas. Un caso común es tomar i ( x) x i 1 :1 i n y en este caso decimos que buscamos aproximar los datos con un polinomio de grado a lo más n 1 . Las diferencias entre los datos y la función g ( x) están dadas por: k yk (a11 ( x) a22 ( x) ... ann ( x)), 1 k n Buscamos pues minimizar la suma de los cuadrados de estas diferencias dada por: m S k2 k 1 18 Bajo ciertas condiciones en los datos que minimizan a ( xk , yk ), 1 k m , los valores de ai :1 i n S son solución del sistema lineal (ecuaciones normales): A t Aa A t b Dónde: 1 ( x1 ) 2 ( x1 ) 3 ( x1 ) ... n ( x1 ) ( x ) ( x ) ( x ) ... ( x ) n 2 1 2 2 2 3 2 A 1 ( x3 ) 2 ( x3 ) 3 ( x3 ) ... n ( x3 ) ............................................... ( x ) ( x ) ( x ) ... ( x ) n m 1 m 2 m 3 m La solución cuadrados a1 a 2 , a a3 , ... a n y1 y 2 b y3 ... y m a de las ecuaciones normales se conoce como la solución de mínimos para los datos ( xk , yk ), 1 k m , usando las funciones base i ( x) :1 i n . En el caso i ( x) x i 1 :1 i n el problema de minimizar S se conoce como el problema de Mínimos Cuadrados Polinomiales y la matriz A toma la forma: 1 x1 x12 ... x1n 1 2 n 1 1 x2 x2 ... x2 A 1 x3 x32 ... x3n 1 ............................ 2 n 1 1 xm xm ... xm 19 . Ejemplo:Consideremos una f: función y (1, 2) , (3 , 1) , (5 , 4) (6 , 3) (10 , 5) puntos distintos de f . El polinomio de segundo grado es: P( x) 0.011836 x 2 El polinomio de tercer grado es: P( x) 0.027062 x 0.4519 x2 1.6238x 3.0733 20 3 0.25905x 1.3 Polinomios lineales: Este método construye una función lineal en cada par de puntos consecutivos, esto es para P( x) yi A( xi , yi ) y B( xi 1 , yi 1 ) . yi 1 yi ( xi 1 xi ) , i 0,..., n xi 1 xi Ejemplo:Hallar f (3) en el polinomio interpolador para puntos , (2 , 1) , (4 , 2) (5 , 6) , (6 , 7) El polinomio lineal en el intervalo 4,5 es: P( x) 1 0.5( x 2) P(3) 1.5 21 la función f : en los FUNCIONES POLINÓMICAS Y DE INTERPOLACIÓN Matlab provee funciones para operaciones polinómicas, raíces polinómicas, evaluacióny diferenciación.Ademáspresenta funciones más avanzadas,como ajuste de curvas y expansión en fracciones parciales, las cuales tienen aplicaciones importantes en las áreas como señal y el procesamiento de imágenes. Matlab representa polinomios ordenados en forma descendente como vectores fila, donde sus coeficientes se ingresan en una matriz. Función Descripción conv(P,Q) Multiplica los polinomios P y Q . decon(P,Q) Divide polinomios P y Q . poly(r) Calcula los coeficientes de un polinomio partiendo de sus raíces. polyder( P) Calcula los coeficientes de la deriva del polinomio P . polyfit(x,y) Ajuste polinómico para un conjunto de puntos x, y. polyval( P ,x) Evalúa el polinomio P en x. polyvalm(A) Evalúa un polinomio con argumento matricial. residue(a,b) Calcula la expansión en fracciones parciales de a y b. roots( P ) Calcula las raíces del polinomio P . 22 Multiplicación de Polinomios P( x) x2 2 x 3 y Q( x) 4 x 2 5x 6 . Ejemplo: Consideremos el polinomio >> P = [ 12 3 ]; >> Q = [ 45 6 ]; >> R = conv(P,Q) Nos devuelve como resultado: 4 13 28 27 18 Esto es R( x) P( x)Q( x) 4 x 4 13x3 28x 2 27 x 18 . División de Polinomios Ejemplo: Consideremos el polinomio P( x) 4 x3 x 2 2 x 3 y Q( x) x 2 3x 6 >> P = [ 4 1 -2 3 ]; >> Q = [ 1 3 6 ]; >> [cr] = deconv(P,Q) Nos devuelve como resultado: c= 4 -11 r= 0 0 7 69 Esto es C ( x) 4 x 11 cociente y R( x) 7 x 69 residuo. 23 Raíces de Polinomios Ejemplo: Consideremos el polinomio P( x ) x 3 2 x 5 >>P = [1 0 -2 -5]; >> r = roots(P) Nos devuelve como resultado: 2.0946 -1.0473 + 1.1359i -1.0473 - 1.1359i Observación.- Por convención,Matlab almacena las raíces en vectores columna. Coeficientes de un Polinomio a partir de sus raíces Consideremos las raíces r1 2.0946 , r2 1.0473 1.1359i , r3 1.0473 1.1359i de un polinomio P . Ejemplo: >> r = [ 2.0946 -1.0473 + 1.1359i -1.0473 - 1.1359i ]; >> p = poly(r) Nos devuelve como resultado: 1 Esto es P( x) 0 -2 -5 x3 2 x 5 La función poly calcula los coeficientes del polinomio característico en el caso que su argumento sea una matriz. 24 Ejemplo: >>A = [1.2 3 -0.9; 5 1.75 6; 9 0 1]; >>poly(A) Nos devuelve como resultado: 1.0000 -3.9500 -1.8500 -163.2750 Estos son los coeficientes del polinomio característico de la matriz A, y las raíces de este polinomioson los auto valoresde la matriz. Derivada de un polinomio Ejemplo: Consideremos P( x) 2 x4 x3 3x 2 5x 9 el polinomio a derivar. >> P = [ 2 -1 3 5 9]; >>polyder(P) Nos devuelve como resultado: 8 Esto es P '( x) 8x 3 -3 6 5 3x 2 6 x 5 Derivada de un producto de Polinomios polyder. - Calcula la derivada de un producto P*Q con un solo argumento de salida. Ejemplo: Consideremos P( x ) x 2 5 x 9 y P( x) x 2 x 1 . 25 >> P = [1 -5 9]; >> Q = [1 1 -1]; >>R = polyder(P,Q) Nos devuelve como resultado: 4 -12 Esto es 6 14 R( x) ( P( x)Q( x)) ' 4 x3 12 x 2 6 x 14 Derivada de un cociente de Polinomios polyder calcula la derivada de un cociente P/Q con dos argumentos de salida. Ejemplo: Consideremos P( x) x2 5x 9 y Q( x) x 7 >> P = [1 -5 9]; >> Q = [17]; >> [n d ] = polyder(P,Q) Nos devuelve como resultado: n= 1 14 -44 1 14 d= Esto es 49 n( x) x 2 14 x 44 numerador y d ( x) x 2 14 x 49 el denominador. 26 AJUSTE POLINÓMICO DE CURVAS Matlab utiliza el método de los mínimos cuadrados para realizar el ajuste de curvas a través de un polinomio, considerando para ello un conjunto de datos tabulados de la curva. Ejemplo: Consideremos los puntos de la siguiente tabla x y 0 1 2 4 1 1 7 61 >> x = [ 0 1 2 4]; >> y = [ 1 1 7 61]; >>polyfit(x, y, 3) Nos devuelve como resultado: 1.0000 Esto es P( x) 0.0000 -1.0000 1.0000 x3 x 1, y n 3 es el grado del polinomio a ajustar. 27 EXPANSIÓN EN FRACCIONES PARCIALES residue. - expresa en fracciones parciales el cociente de dos polinomios, en el caso que no posea raíces múltiples. r1 r2 rn a( s) ... k b( s) s p1 s p2 s pn Donde la r es un arreglo columna de residuos, p es un arreglo columna de polos,y k es un arreglo fila que contiene el resto. Ejemplo: Considere la función de transferencia >> a = [ -4 8 ]; >> b = [ 1 6 8 ]; >> [ r, p, k ] = residue(a , b) Nos devuelve como resultado: r =-12 8 p =-4 -2 k =[ ] Esto es: a( s) 12 8 . b( s ) s 4 s 2 28 a( s) 4s 8 2 b( s ) s 6 s 8 Ejemplo: Considere la función de transferencia >> a = [ 5 5 -6]; >> b = [ 1 0 -1]; >> [ r, p, k ] = residue(a , b) Nos devuelve como resultado: r= 2 3 p= 1 -1 k= 5 Esto es: a( s) 2 3 5 b( s ) s 1 s 1 29 a ( s ) 5s 2 5s 6 b( s ) s2 1 INTERPOLACIÓN UNIDIMENSIONAL Matlab provee dos tipos de interpolación de una sola dimensión: • La interpolación polinómica • La interpolación basada en FFT, este método calcula la transformada de Fourier de un vector que contiene los valores de una función periódica. Interpolación polinómica.- La función interp1 realiza interpolación de una sola dimensión, una operación importante para el análisis de datos y el ajuste de curvas.Esta función usa técnicas polinómicas, ajustando los datos suministrados conpolinomios su forma más general es: y1 = interp1(x, y, x1, Metodo) Dónde: x , es un arreglo de valores en orden creciente. y , es un arreglo que contiene las imágenes de x de una función. x1 , es un número o arreglo números los cuales van a ser interpolados. Metodo, son lasopciones a utilizar en la interpolación, nearest(valor del punto más próximo), linear(utiliza una función lineal para cada par de puntos consecutivos), spline(utiliza una función cúbica suave para cada par de puntos consecutivos) cubic(utiliza una función cúbica). Observación.-linear es el método predeterminado para la función del interp1. Ejemplo: >> x = [0 1 2 4 7 11]; >> y = [2 -3 2 13 15 1]; >>x1=[3 5 6 8 9 10]; % valores a interpolar >> y1=interp1(x, y, x1,'nearest') 30 >>plot(x,y) >> hold on >>plot(x1, y1, 'or') >>grid on Nos devuelve como resultado: y1 = 13 13 15 15 1 Ejemplo: >> x = [0 1 2 4 7 11]; >> y = [2 -3 2 13 15 1]; >>x1=[3 5 6 8 9 10]; % valores a interpolar >> y1=interp1(x, y, x1, 'linear'); >>plot(x,y) >> hold on >>plot(x1, y1, 'or') 31 1 >>grid on Nos devuelve como resultado: y1 = 7.5000 13.6667 14.3333 11.5000 Ejemplo: >> x = [0 1 2 4 7 11]; >> y = [2 -3 2 13 15 1]; >>x1=[3 5 6 8 9 10]; % valores a interpolar >> y1=interp1(x, y, x1, 'spline'); >>plot(x,y) >> hold on >>plot(x1, y1, 'or') >>grid on 32 8.0000 4.5000 Nos devuelve como resultado: y1 = 8.1974 15.6036 16.1458 12.5393 Ejemplo: >> x = [0 1 2 4 7 11]; >> y = [2 -3 2 13 15 1]; >>x1=[3 5 6 8 9 10]; % valores a interpolar >> y1=interp1(x, y, x1, 'cubic'); >>plot(x,y) >> hold on >>plot(x1, y1,'or') >>grid on Nos devuelve como resultado: y1 = 33 9.1369 5.1661 8.4889 14.0762 14.7603 13.9152 10.9405 6.4955 EXTRAPOLACIÓN Si cualquier elemento de x1 está fuera del rango de x, las funciones spline y cubic lo aceptan como argumento para extrapolar sus valores. Ejemplo: >> x = [0 1 2 4 7 11]; >> y = [2 -3 2 13 15 1]; >>x1=[3 5 6 8 9 10 12 13]; % valores a interpolar y extrapolar >> y1=interp1(x, y, x1, 'cubic'); >>plot(x,y) >> hold on >>plot(x1, y1, 'or') >>grid on 34 Nos devuelve como resultado: y1 = 8.488 14.076 14.760 13.915 10.940 6.495 -5.126 -11.464 Velocidad y suavidad de los métodos Al escoger un método de interpolación, se debe tener en cuenta que alguna requiera más memoria o más tiempo en los cálculos. • La interpolación nearest es el método más rápido. Sin embargo,provee los peores resultados en términos de la suavidad. • La interpolación linear usa más memoria que el método nearesty requiere ligeramente más tiempo de ejecución.A diferencia de la interpolación nearest sus resultados son continuos. • La interpolación spline tiene el tiempo de ejecución relativo más largo,aunque toma menos memoria que la interpolación cúbica y produce los mejores resultados de suavidad de todos los métodos de interpolación. Sin embargo, si sus datos de entrada son poco uniformes y algunos puntos están muy cercanos entre ellos se pueden obtener resultados inesperados. • La interpolación cúbica requiere más memoria y el tiempo de ejecución que ya sea nearest o los métodos lineales. 35 Interpolación basada en FFT La función interpft realiza interpolación de una sola dimensión usando un método basado en FFT, el cual calcula la transformada de Fourier de un vector que contiene los valores de una función periódica. Su sintaxis es: y = interpft (x,n) x es un vector que contiene los valores de una función periódica, para puntos igualmente espaciados, n es el número de puntos igualmente espaciados que retorna. INTERPOLACIÓNBIDIMENSIONAL La función interp2 nos permite interpolar valores de dos dimensiones,su forma general es: Z1 = interp2 (X,Y,Z,X1,Y1,Método) Donde: Z, es un arreglo rectangular que contiene los valores correspondientes a los puntos X, Y. X e Y, son arreglos de un mismo tamaño conteniendo los puntos para los cuales los valores en Z son dados. X1 e Y1, son arreglos que contienen los puntos a interpolar. Método, son opciones a utilizar en la interpolación, existiendo tres métodos diferentes de interpolación para datos de dos dimensiones: nearest(valor del punto más próximo), bilinear(utiliza una combinación de los valores de los 4 puntos más cercanos), bicubic(utiliza una combinación de los valores de los 16 puntos más cercanos). Comparación de los Métodos de Interpolación de dos dimensiones Estos ejemplos comparan los métodos de interpolación de dos dimensiones en una matriz de orden 7 x7 . 36 Ejemplo >> [x , y]= meshgrid(-3 : 1 : 3); >> z = 3*(1-x).^2.*exp(-(x.^2) - (y+1).^2) - 10*(x/5 - x.^3 - y.^5)… .*exp(-x.^2- y.^2) - 1/3*exp(-(x+1).^2 - y.^2); >>surf(x , y , z) Ejemplo: Genera una malla más fina debido al incremento de 0.25. >> [x , y] = meshgrid(-3 : 0.25 : 3); >> z = 3*(1-x).^2.*exp(-(x.^2) - (y+1).^2) - 10*(x/5 - x.^3 - y.^5)… .*exp(-x.^2- y.^2) - 1/3*exp(-(x+1).^2 - y.^2); >>surf(x, y, z) 37 Ejemplo:Interpolación en los puntos x1, y1 usando la opción nearest. >> [ x, y ] = meshgrid(-3 : 1 : 3); >>z = 3*(1-x).^2.*exp(-(x.^2) - (y+1).^2) - 10*(x/5 - x.^3 - y.^5)… .*exp(-x.^2- y.^2) - 1/3*exp(-(x+1).^2 - y.^2); >>surf(x , y , z) >> hold on >>x1 = -3 : 0.3 : 3; >> y1 = -3 : 0.3 : 3; >> [ x1, y1 ] = meshgrid(x1, y1); >> z1 = interp2(x, y, z, x1, y1, 'nearest'); >>surf(x1, y1, z1+10) 38 Ejemplo:Interpolación en los puntos x1, y1 usando la opción bilineal. >> [ x, y ] = meshgrid(-3 : 1 : 3); >>z = 3*(1-x).^2.*exp(-(x.^2) - (y+1).^2) - 10*(x/5 - x.^3 - y.^5)… .*exp(-x.^2- y.^2) - 1/3*exp(-(x+1).^2 - y.^2); >>surf(x , y , z) >> hold on >>x1 = -3 : 0.3 : 3; >> y1 = -3 : 0.3 : 3; >> [ x1, y1 ] = meshgrid(x1, y1); >> z2 = interp2(x, y, z, x1, y1, ' bilineal'); >>surf(x1, y1, z2+10) 39 Ejemplo:Interpolación en los puntos x1, y1 usando la opción bicubic. >> [ x, y ] = meshgrid(-3 : 1 : 3); >>z = 3*(1-x).^2.*exp(-(x.^2) - (y+1).^2) - 10*(x/5 - x.^3 - y.^5)… .*exp(-x.^2- y.^2) - 1/3*exp(-(x+1).^2 - y.^2); >>surf(x , y , z) >> hold on >>x1 = -3 : 0.3 : 3; >> y1 = -3 : 0.3 : 3; >> [ x1, y1 ] = meshgrid(x1, y1); >> z3 = interp2(x, y, z, x1, y1, 'bicubic'); >>surf(x1, y1, z3+10) 40 INTERPOLACIÓNEN TRES DIMENSIONES La función interp3 nos permite interpolar valores en tres dimensiones,su forma general es: V1 = interp3(X, Y, Z, V, X1, Y1, Z1, Método) Donde: V, es un arreglo tridimensional que contiene los valores correspondientes a los puntos X, Y, Z. X ,Y, Z son arreglos de un mismo tamaño conteniendo los puntos para los cuales los valores en V son dados. X1,Y1, y Z1 son arreglos que contienen los puntos a interpolar. Método, son lasopciones a utilizar en la interpolación, existiendo tres métodos diferentes de interpolación para datos de tres dimensiones: nearest(valor del punto más próximo), trilinear(utiliza una combinación de los valores de los 8 puntos más cercanos), tricubic(utiliza una combinación de los valores de los 64 puntos más cercanos). Todos estos métodos requieren que los arreglos X,Y,y Z sean crecientes o decrecientes. Ejemplo: Interpolación en los puntos x1, y1, z1 usando la opción linear. >> x = [ 0 3 ]; >> [x, y, z] = meshgrid(x, x, x); >> v = x.^2 + y.^2 + z; >> [x1, y1, z1] = meshgrid( 1: 1 : 2 ); >> v1 = interp3(x , y , z , v , x1, y1, z1,' linear ' ) Nos devuelve como resultado: v1( :, : , 1) = 41 7.0000 10.0000 10.0000 13.0000 v1( :, :, 2) = 8.0000 11.0000 11.0000 14.0000 42 INTERPOLACIÓNMULTIDIMENSIONAL La función interpn nos permite realizar una interpolación multidimensional,su forma general es: V1 = interpn(X, Y, Z, …, W, V, X1, Y1, Z1,…, W1, Método) Donde: V, es un arreglo multidimensional que contiene los valores correspondientes a los puntos X, Y, Z, ... , W. X ,Y, Z, … , W, son arreglos de un mismo tamaño conteniendo los puntos para los cuales los valores en V son dados. X1,Y1, Z1, …, W1, son arreglos que contienen los puntos a interpolar. Método, son lasopciones a utilizar en la interpolación, para lo cual se cuenta con tres métodos diferentes de interpolación para datos multidimensionales: nearest(valor del punto más próximo), linear(utiliza una combinación de los valores de los 2 puntos más cercanos en cada dimensión), cubic(utiliza una combinación de los valores de los 4 puntos más cercanos en cada dimensión). Cada método automáticamente traza un mapa de la entrada para un dominio igualmente espaciado antes de interpolar. Ejemplo:Interpolación en los puntos x1, y1, z1, w1 usando la opción nearest. >> x = [2 5]; >> [x, y, z, w] = ndgrid(x); >> v = x.^2 + y + z - w.^2; >> [x1, y1, z1, w1] = ndgrid(3 : 1 : 4); >> v1 = interpn(x, y, z, w, v, x1, y1, z1, w1, 'nearest') Nos devuelve como resultado: v1(:, :, 1, 1) = 4 7 25 28 43 v1(:, :, 2, 1) = 7 10 28 v1(:, :, 1, 2) = 31 -17 -14 4 v1(:, :, 2, 2) = 7 -14 -11 7 10 Mallas para datos multidimensionales La función del ndgrid genera arreglos multidimensionales de datos para la evaluación e interpolación de una función. ndgrid transforma el dominio especificado por una serie de vectores de entrada en una serie de arreglos de salida. La sintaxis para ndgrid es: [X1, X2, X3,... ] = ndgrid(x1, x2, x3, ... ) Ejemplo: Consideremos la evaluación de una función de tres variables w ye x 2 y2 z2 Para evaluar y graficar esta función escribiremos: >> x = -2 : 0.2 : 2; >> y = -2 : 0.25 : 2; >> z = -2 : 0.16 : 2; >> [x, y, z] = ndgrid(x, y, z); 44 >> w = y.*exp(-x.^2 - y.^2 - z.^2); >> slice(y, x, z, w, [-1.2 0.8 2], 2 , [-2 0.2]); 45 INTEGRACIÓN NUMÉRICA OBJETIVO: UTILIZAR MÉTODOS DE APROXIMACIÓN NUMÉRICA EN EL CÁLCULO DE UNA INTEGRAL DEFINIDA. CONTENIDO: Método del trapecio. Método de Simpson 1/3. Método de Simpson 3/8. Método de Boole. Comparación de Métodos. Integración doble. 46 INTEGRACIÓN NUMÉRICA En el presente capítulo se describen diferentes métodos de integración numérica los cuales permiten evaluar integrales simples b a f ( x)dx , e integrales dobles b ( x) a ( x) f ( x, y)dydx , donde las funciones f (x) , f ( x, y ) pueden estar dadas en forma analítica o en forma discreta mediante una tabla. La integración de una función tiene muchas aplicaciones en la ciencia e Ingeniería por ejemplo: a) Un topógrafo podría necesitar saber el área de un campo limitado por una corriente zigzagueante y dos caminos. b) Un ingeniero en hidráulica tal vez requiera conocer el área de la sección transversal de un río. c) Un ingeniero en estructuras quizás necesita determinar la fuerza neta ejercida por un viento no uniforme que sopla contra un lado de un rascacielos. a b c Éstas son sólo algunas de las diferentes aplicaciones de la integración que se modelarían como: 47 b I f ( x)dx a Para calcular la integral definida b a f ( x)dx por el Segundo Teorema Fundamental del Cálculo se tiene: b a f ( x)dx F ( x) ba F (b) F (a) Sin embargo, para el cálculo de la antide rivada existen integrales definidas tales como: 1 0 2 e x dx, senx dx, x 2 1 cosh x dx x Para los que no existe un método conocido para encontrar su antiderivada, pero si la función f ( x) es continua en el intervalo cerrado a, b la integral definida existe y es un número único. Para estos casos, en que no se pueden encontrar la antiderivada, veremos a continuación métodos de aproximación para estimar el valor de una integral definida. 48 MÉTODO DEL TRAPECIO Sea f : a, b cerrado a, b , una función continua y positiva ( f ( x) 0) en el intervalo y sea R la región plana limitada por las curvas y f ( x) , el eje X , las rectas x a y x b , por los teoremas del cálculo integral el área de R se define como: b A( R) f ( x)dx a Gráficamente: Construyamos un trapecio de vértices (a,0), (b,0), (b, f (b)), y (a, f (a)) y consideremos como una aproximación el área del trapecio al área buscada como se muestra a continuación. 49 Esto es: b A( R) f ( x)dx a A( R) h f (a) f (b) 2 h f (a) f (b) , h b a. 2 Obteniendo la fórmula del método del trapecio. Generalización del Método del Trapecio para n subintervalos Sea a, b el intervalo cerrado con partición regular del intervalo a x0 x0 a ….. x1 , x2 ... b y P a x0 , x1 , ... , xn b una a a, b , en n subintervalos de la forma h xn b x1 a h, x2 a 2h , … . . xi a ih, xn a nh b. Gráficamente Aplicando la fórmula del Trapecio a cada subintervalo se tiene: 50 ba n h f ( xo ) f ( x1 ) 2 h A2 f ( x1 ) f ( x2 ) 2 h A3 f ( x2 ) f ( x3 ) 2 ......... A1 ......... An h f ( xn1 ) f ( xn ) 2 n Calculando A( R) Ai i 1 Reemplazando el valor de cada una de las áreas parciales se tiene: A( R) (h / 2) f ( x0 ) 2 f ( x1 ) 2 f ( x2 ) ... 2 f ( xn1 ) f ( xn ) Equivalentemente: A( R) (h / 2) f (a) 2 f (a h) 2 f (a 2h) ... 2 f (a (n 1)h) f (b) Ejemplo: Calcular numéricamente el valor de la siguiente integral definida e x dx , considerando tres intervalos y doce subintervalos respectivamente. 1 x 2 2 0 Solución: Para n= 3 subintervalos. 51 e x dx 0.741726 1 x 2 2 2 0 Para n = 12 subintervalos e x dx 0.725389 1 x 2 0 52 Archivo m: Parautilizar el siguiente programa digitar en la ventana de comandos: >>trap1(' función ' , a , b , n ). 53 MÉTODO DE SIMPSON 1/3 Sea f : a, b cerrado a, b , una función continua y positiva ( f ( x) 0) en el intervalo y sea R la región plana limitada por las curvas y f ( x) , el eje X , las rectas x a y x b , por los teoremas del cálculo integral el área de R se define como: b A( R) f ( x)dx a Gráficamente: Dividamos el intervalo a, b en 2 subintervalos, esto es h ba y x0 a , 2 x1 a h, x2 b. Construyamos un polinomio interpolador puntos P( x) Ax2 Bx C que pase por los ( x0 , f ( x0 )), ( x1, f ( x1 )) y ( x2 , f ( x2 )). Si consideremos como una aproximación P f para el cálculo de la integral, se obtiene: b b a a A( R) f ( x)dx P( x)dx (h / 3)[ f (a) 4 f (a h) f (b)]. 54 Gráficamente: Generalización del Método de Simpson 1/3 para 2n subintervalos Sea a, b el intervalo cerrado con partición regular del intervalo a x0 x0 a ….. x1 , x2 ... a a, b , en b y P a x0 , x1 , ... , x2n b una 2n subintervalos de la forma h x2 n b x1 a h, x2 a 2h , … . . xi a ih, x2 n a 2nh b. Gráficamente 55 ba 2n Aplicando la fórmula de Simpson 1/3 a cada 3 puntos consecutivos se tiene: A1 (h / 3) f ( xo ) 4 f ( x1 ) f ( x2 ) A2 (h / 3) f ( x2 ) 4 f ( x3 ) f ( x4 ) A3 (h / 3) f ( x4 ) 4 f ( x5 ) f ( x6 ) ......... ......... An (h / 3) f ( x2 n 2 ) 4 f ( x2 n 1 ) f ( x2 n ) n Calculando A( R) Ai i 1 Reemplazando el valor de cada una de las áreas parci ales se tiene: A( R) (h / 3) f ( x0 ) 4 f ( x1 ) 2 f ( x2 ) ... 4 f ( x2n1 ) f ( x2n ) Equivalentemente: A( R) (h / 3) f (a) 4 f (a h) 2 f (a 2h) ... 4 f (a (2n 1)h) f (b) Ejemplo: Calcular numéricamente el valor de la siguiente integral definida 3 0 e2 x sen2 xdx considerando dos y 10 subintervalos respectivamente. 56 Solución: Para n = 1. 3 3 0 e2 x sen2 xdx 43.9872 Para n= 5 . 0 e2 x sen2 xdx 66.5547 57 Archivo m: Parautilizar el siguiente programa digitar en la ventana de comandos: >>simp1(' función ' , a , b , n ). 58 MÉTODO DE SIMPSON 3/8 Sea f : a, b cerrado a, b , una función continua y positiva ( f ( x) 0) en el intervalo y sea R la región plana limitada por las curvas y f ( x) , el eje X , las rectas x a y x b , por los teoremas del cálculo integral el área de R se define como: b A( R) f ( x)dx a Gráficamente: Dividamos el intervalo a, b en 3 subintervalos, esto es h ba y x0 a , 3 x1 a h, x2 a 2h , x3 b. Construyamos un polinomio interpolador los puntos P( x) Ax3 Bx 2 Cx D que pase por ( x0 , f ( x0 )), ( x1 , f ( x1 )), ( x2 , f ( x2 )) y ( x3 , f ( x3 )). Si consideremos como una aproximación P f para el cálculo de la integral, se obtiene: b b a a A( R) f ( x)dx P( x)dx (3h / 8)[ f (a) 3 f (a h) 3 f (a 2h) f (b)]. 59 Gráficamente: Generalización del Método de Simpson 3/8 para 3n subintervalos Sea a, b el intervalo cerrado con partición regular del intervalo a x0 x0 a ….. x1 , x2 ... a a, b , en b y P a x0 , x1 , ... , x3n b una 3n subintervalos de la forma h x3n b x1 a h, x2 a 2h , x3 a 3h , … . . xi a ih, x3n a 3nh b. Gráficamente 60 ba 3n Aplicando la fórmula de Simpson 3/8 a cada 4 puntos consecutivos se tiene: A1 (3h / 8) f ( xo ) 3 f ( x1 ) 3 f ( x2 ) f ( x3 ) A2 (3h / 8) f ( x4 ) 3 f ( x5 ) 3 f ( x6 ) f ( x7 ) A3 (3h / 8) f ( x8 ) 3 f ( x9 ) 3 f ( x10 ) f ( x11 ) ......... ......... An (3h / 8) f ( x3n 3 ) 3 f ( x3n 2 ) 3 f ( x3n 1 ) f ( x3n ) n Calculando A( R) Ai i 1 Reemplazando el valor de cada una de las áreas parciales se tiene: f ( x0 ) 3 f ( x1 ) 3 f ( x2 ) 2 f ( x3 ) ... A( R) (3h / 8) ... 2 f ( x3n3 ) 3 f ( x3n2 ) 3 f ( x3n1 ) f ( x3n ) Equivalentemente: f (a) 3 f (a h) 3 f (a 2h) 2 f (a 3h) ... A( R) (3h / 8) 2 f (a (3n 3)h) 3 f (a (3n 2)h) 3 f (a (3n 1)h) f (b) Ejemplo: Calcular numéricamente el valor de la siguiente integral definida 2 0.2 x 2 sin( x)dx considerando3 y 9 subintervalos respectivamente. 61 Solución: Para n = 1. 2 0.2 x 2 sin( x)dx 2.4338 Para n = 3. 2 0.2 x 2 sin( x)dx 2.46873 62 Archivo m: Parautilizar el siguiente programa digitar en la ventana de comandos: >>simp2(' función ' , a , b , n ). 63 MÉTODO DE BOOLE Sea f : a, b cerrado a, b , una función continua y positiva ( f ( x) 0) en el intervalo y sea R la región plana limitada por las curvas y f ( x) , el eje X , las rectas x a y x b , por los teoremas del cálculo int egral el área de R se define como: b A( R) f ( x)dx a Gráficamente: Dividamos el intervalo a, b en 4 subintervalos, esto es h ba y x0 a , 4 x1 a h, x2 a 2h , x3 a 3h , x4 b. Construyamos un polinomio interpolador pase por los puntos P( x) Ax 4 Bx3 Cx 2 Dx E que ( x0 , f ( x0 )), ( x1 , f ( x1 )), ( x2 , f ( x2 )), ( x3 , f ( x3 )) y ( x4 , f ( x4 )). Si consideremos como una aproximación P f para el cálculo de la integral, se obtiene: b b a a A( R) f ( x)dx P( x)dx A( R) (h / 45)[14 f (a) 64 f (a h) 24 f (a 2h) 64 f (a 3h) 14 f (b)] 64 Gráficamente: Generalización del Método deBoolepara 4n subintervalos Sea a, b el intervalo cerrado con partición regular del intervalo a x0 x1 x2 ... b y P a x0 , x1 , ... , x4n b una a a, b , en 3n subintervalos de la forma h ba 4n x4 n b x0 a , x1 a h , x2 a 2h , x3 a 3h , , x4 a 4 h , . . . xi a ih … . . x4 n a 4 nh b Se obtiene la siguiente formula: b A( R) f ( x)dx a h 14 f ( x0 ) 64 f ( x1 ) 24 f ( x2 ) 64 f ( x3 ) 28 f ( x4 ) ... 45 28 f ( x4 n4 ) 64 f ( x4 n3 ) 24 f ( x4 n2 ) 64 f ( x4 n1 ) 14 f ( x4 n ) Ejemplo: Calcular numéricamente el valor de la siguiente integral definida 2 0 2 x sin( x 2 )dx considerando4 y 12 subintervalos respectivamente. 65 Solución: Para n = 1. 2 0 2 x sin( x 2 )dx 4.90685 Para n = 3. 2 0 2 x sin( x 2 )dx 4.8267 66 Archivo m: Parautilizar el siguiente programa digitar en la ventana de comandos: >>bool1(' función ' , a , b , n ). 67 COMPARACIÓN DE LOS MÉTODOS DE INTEGRACIÓNNUMÉRICA Para la comparación de los Métodos de Integración Numérica se evaluará la siguiente integral definida 3 1 x 0.1e x dx , en igual número de intervalos(12 intervalos). Método del trapecio.( n = 12 ). Método de Simpson ⅓ ( n = 6 ) . 3 1 x0.1e x dx 0.334417. 3 1 x0.1e x dx 0.333776. 68 Método de Simpson ⅜ ( n = 4 ). Método de Boole( n = 3 ). 3 1 3 1 x0.1e x dx 0.333776. x0.1e x dx 0.333758. 69 INTEGRACIÓN DOBLE Para calcular una integral doble en el orden dydx , consideraremos una región cerrada D , llamada también dominio de integración, en el plano XY. Sea f :D 2 D x, y 2 una función continua sobre / a x b , ( x) y ( x) es y , :[a, b] son funciones D , donde: una continuas región en cerrada [ a , b] , ( x) ( x), x [a, b] . Gráficamente: y ( x) y (x) Entonces la integral de f sobre D es: b f ( x, y)dxdy ( a ( x) ( x) f ( x, y)dy)dx D En (1), si g ( x) ( x) ( x) (2) f ( x, y)dy 70 (1) en tal 2 que Reemplazando (2) en (1), se tiene: b a g ( x)dx (3) Donde la integral (3) se puede calcular aplicando cualquiera de los métodos de integración numérica estudiados en el capítulo anterior. 71