interp

13
Cálculo cientí co y técnico con HP49g/49g+/48gII/50g Módulo 3: Aplicaciones Tema 3.7 Polinomio interpolador Francisco Palacios Escuela Politécnica Superior de Ingeniería Manresa Universidad Politécnica de Catalunya Dep. Matemática Aplicada III Abril 2008, versión 1.3 1 Introducción 1.1 Polinomio interpolador En la interpolación polinomial, partimos de n +1 puntos dados (x 0 ,y 0 ), (x 1 ,y 1 ),..., (x n ,y n ), y nuestro objetivo consiste en encontrar un polinomio de grado n P (x)= a 0 + a 1 x + a 2 x 2 + ··· + a n x n que pase por los puntos, esto es, que cumpla las n +1 condiciones: P (x j )= y j , j =0, 1,...,n. Si los valores x j son distintos, entonces se puede garantizar que existe un único polinomio de grado n que cumple las condiciones jadas. Podemos usar el polinomio interpolador para aproximar el valor de y en posi- ciones intermedias de x dentro del intervalo de interpolación 1 [min x j , max x j ]. Ejemplo 1.1 Polinomio interpolador de la tabla x 1.0 1.5 2.0 3.5 y 1.25 2.56 4.28 3.14 1 Si los valores x j están ordenados de forma creciente, esto es, x 0 <x 1 < ··· <x n , entonces el intervalo de iterpolación es [x 0 ,x n ] 1

Transcript of interp

  • Clculo cientfico y tcnico conHP49g/49g+/48gII/50gMdulo 3: Aplicaciones

    Tema 3.7 Polinomio interpolador

    Francisco PalaciosEscuela Politcnica Superior de Ingeniera Manresa

    Universidad Politcnica de CatalunyaDep. Matemtica Aplicada III

    Abril 2008, versin 1.3

    1 Introduccin

    1.1 Polinomio interpolador

    En la interpolacin polinomial, partimos de n+ 1 puntos dados

    (x0, y0), (x1, y1), . . . , (xn, yn),

    y nuestro objetivo consiste en encontrar un polinomio de grado n

    P (x) = a0 + a1x+ a2x2 + + anxn

    que pase por los puntos, esto es, que cumpla las n+ 1 condiciones:

    P (xj) = yj , j = 0, 1, . . . , n.

    Si los valores xj son distintos, entonces se puede garantizar que existe unnico polinomio de grado n que cumple las condiciones fijadas.Podemos usar el polinomio interpolador para aproximar el valor de y en posi-ciones intermedias de x dentro del intervalo de interpolacin1 [minxj ,maxxj ].

    Ejemplo 1.1 Polinomio interpolador de la tabla

    x 1.0 1.5 2.0 3.5

    y 1.25 2.56 4.28 3.14

    1Si los valores xj estn ordenados de forma creciente, esto es, x0 < x1 < < xn,entonces el intervalo de iterpolacin es [x0, xn]

    1

  • Como tenemos 4 pares de datos (xj , yj), el problema consiste en determinarun polinomio de grado 3

    P (x) = a0 + a1x+ a2x2 + a3x

    3.

    Para ello hemos de calcular los valores de los coeficientes aj para los quese cumplen las condiciones P (xj) = yj . Existen varios mtodos disponiblespara determinar los coeficientes. Empleando cualquiera de ellos, se obtieneel polinomio

    P (x) = 1.168x3 6.076x2 + 7.022x 3.364

    Actividad 1.1 Comprueba que el polinomio del ejemplo anterior interpolalos valores de la tabla, es decir, que verifica P (xj) = yj para los valores dela tabla. Usando el polinomio interpolador, aproxima el valor de y(1.55).(Sol. y(1.55) = 2.728)

    1.2 Matriz de Vandermonde

    Podemos obtener el polinomio interpolador resolviendo un sistema de ecua-ciones lineales2. Consideremos n+ 1 puntos

    (x0, y0), (x1, y1), . . . , (xn, yn)

    con abscisas distintas, y sea

    P (x) = a0 + a1x+ a2x2 + + anxn

    el polinomio interpolador. Imponiendo las n+ 1 condiciones

    P (xj) = yj , j = 0, 1, . . . , n,

    resulta un sistema de n + 1 ecuaciones lineales en las n + 1 incgnitasa0, a1, . . . , an,

    a0 + a1x0 + a2x20 + + anxn0 = y0,

    a0 + a1x1 + a2x21 + + anxn1 = y1,...

    a0 + a1xn + a2x2n + + anxnn = yn.

    El sistema puede escribirse matricialmente en la forma

    1 x0 x20 xn0

    1 x1 x21 xn1

    ......

    .... . .

    ...1 xn x

    2n xnn

    a0a1...an

    =

    y0y1...yn

    .

    2Esta es una forma tericamente muy clara, aunque desde el punto de vista prctico,son preferibles los mtodos directos como el interpolador de Newton o de Lagrange.

    2

  • La matriz de coeficientes del sistema se denomina matriz de Vandermondeasociada a los puntos x0, x1, . . . , xn. Se trata de una matriz cuadrada deorden n+ 1 con la siguiente estructura

    V (x0, x1, . . . , xn) =

    1 x0 x20 xn0

    1 x1 x21 xn1

    ......

    .... . .

    ...1 xn x

    2n xnn

    .

    Ejemplo 1.2 Matriz de Vandermonde.

    Consideremos la tabla de valores

    x 1 1/2 1 2y 1 2 0 3

    La matriz de Vandermonde correspondiente a las abscisas

    x0 = 1, x1 = 1/2, x2 = 1, x3 = 2

    es

    V =

    1 1 1 11 1/2 1/4 1/81 1 1 11 2 4 8

    .

    El polinomio interpolador de la tabla es un polinomio de grado 3

    P (x) = a0 + a1x+ a2x2 + a3x

    3.

    Los coeficientes aj pueden obtenerse resolviendo el sistema

    1 1 1 11 1/2 1/4 1/81 1 1 11 2 4 8

    a0a1a2a3

    =

    1203

    Como solucin obtenemos

    a0 = 4, a1 = 17/6, a2 = 7/2, a3 = 7/3.

    El polinomio interpolador es, por tanto

    P (x) = 4 176x 7

    2x2 +

    7

    3x3 2

    Actividad 1.2 Verifica que el polinomio obtenido en el Ejemplo 1.2, inter-pola la tabla

    x 1 1/2 1 2y 1 2 0 3

    Aproxima el valor de y(1.5). (Sol. y(1.5) ' P (1.5) = 0. 25)

    3

  • Actividad 1.3 Representa el polinomio

    P (x) = 4 176x 7

    2x2 +

    7

    3x3

    en el intervalo x [1.1, 2.1]. Verifica grficamente que el polinomio pasapor los puntos de la tabla.

    2 Resolucin con la calculadora

    2.1 Comando LAGRANGE

    El comando LAGRANGE calcula el polinomio interpolador de una tablade valores. Puedes encontrarlo en el catlogo [CAT], o bien, en la segundapgina del men de herramientas para polinomios3 [ARITH][POLY]. El fun-cionamiento del comando es muy simple, cargamos en el nivel 1 de la pilauna matriz con los puntos

    x0 x1 xny0 y1 yn

    y, al ejecutar el comando LAGRANGE, se obtiene el polinomio interpolador.Por ejemplo, para determinar el interpolador de la tabla

    x 1 1/2 1 2y 1 2 0 3

    Construimos la matriz indicada, con los valores xj en la primera fila y losvalores yj en la segunda

    Pulsamos [F6] para ejecutar el comando LAGRANGE, y se obtiene

    3Para acceder a [ARITH] pulsa [1].

    4

  • Resultado que coincide con el obtenido en el Ejemplo 1.2. Para reescribir elpolinomio en un formato ms habitual, usamos el comando DISTRIB, queaplica la propiedad distributiva del producto respecto de la suma. Encon-traremos el comando en el Catalogo o en [CNVRT][REWRITE]4. Despusde ejecutar varias veces el comando DISTRIB, obtenemos

    Si pulsamos [F2] para ejecutar [EXPLN], obtenemos el polinomio en la for-ma

    Actividad 2.1 A partir de los datos de la tabla

    x 1 1/2 3 4

    y 1 1 0 4

    aproxima el valor de y(1.5) usando interpolacin cbica5.(Sol. y(1.5) ' 1.3929)Actividad 2.2 A partir de los datos de la tabla

    x 1.5 2.0 2.5 3.0

    y 1.12 1.34 1.56 1.41

    Aproxima los valores y(1.73), y(2.65), usando interpolacin cuadrtica, esdecir, un polinomio interpolador de grado 2. Para ello, en cada caso, escogelos tres puntos cuyas abscisas estn ms prximas de valor de x considerado.(Sol. Para x = 1.73, construimos el polinomio de grado dos con los puntos deabscisas 1.5, 2.0 y 2.5. Se obtiene y(1.73) ' 1.22. Para x = 1.73, obtenemosy(2.56) ' 1.56)

    4Para acceder al men de conversiones [CNVRT] pulsa [6]5La interpolacin con 4 puntos se denomina interpolacin cbica. De forma anloga,

    la interpolacin con 3 puntos se denomina cuadrtica y la interpolacin con dos puntoslineal.

    5

  • Ejemplo 2.1 Aproximacin del valor de una integral usando un polinomiointerpolador.

    Consideramos la integral Z 10.5

    sinx

    xdx.

    Es bien conocido que la funcin f(x) = sin(x)/x no es la derivada de ningunacombinacin simple de funciones elementales. Para aproximar el valor de laintegral, determinamos abscisas igualmente espaciadas en el intervalo [0.5, 1]con una separacin h = 0.1, y calculamos el valor del integrando f(x), estoes

    x 0.5 0.6 0.7 0.8 0.9 1.0

    f(x) 0.95885 0.94107 0.92031 0.89669 0.87036 0.84147

    Ahora podemos calcular el polinomio interpolador P (x) de la tabla, que serde grado 5 y usarlo para aproximar el valor de la integralZ 1

    0.5

    sinx

    xdx '

    Z 10.5P (x) dx.

    Veamos cmo hacerlo con la calculadora. El procedimiento que se explica acontinuacin nos permite construir la matriz de puntos sin entrar los datosmanualmente.

    1. Fijamos el modo angular en radianes y el formato decimal en FIX 5.

    2. Accede al editor de matrices6 [MATRW]. Si es necesario, pulsa [F2] y[F5] para activar el modo de entrada de vectores y el modo de despla-zamiento horizontal.

    Construye un vector con las abscisas y pulsa ENTER para cargarlo enel Nivel 1 de la pila.

    6Tecla (4,3).

    6

  • 3. Ahora vamos a construir el vector con las imgenes. Define7 la funcinf(x) = sin(x)/x,

    y duplica el vector de abscisas.

    4. No se puede aplicar directamente una funcin sobre un vector o unamatriz, pero comando MAP permite aplicar cualquier programa a loselementos de una matriz o un vector. Carga en el Nivel 1 de la pila elsiguiente programa.

    Busca el comando MAP en el catlogo8

    7Por ejemplo, usando el comando DEFINE.8Tambin puedes teclearlo directamente.

    7

  • y pulsa [F6] o ENTER para ejecutarlo, obtendrs

    5. Ahora tenemos que crear un vector a partir de los dos vectores de lapila. Para ello, ejecuta el comando AUGMENT que podemos encon-trar en [MTRCES][CREAT]. Este comando, forma una matriz a partirde dos bloques, el resultado es una matriz de 2 filas y 6 columnas

    6. Ahora puedes ejecutar el comando LAGRANGE y obtener el polino-mio interpolador.

    8

  • 7. Vamos a calcular la integral del polinomio. Pulsa [H] para acceder aleditor de ecuaciones y calculamos la integral del polinomio obtenidoentre x = 0.5 y x = 1.

    8. Como resultado, obtendrs 0.45298.

    Veamos ahora cual es el valor de la integral. Fija el modo numrico9 FIX 7y accede al editor de ecuaciones [EQW] para escribir la integral.

    Pulsa ENTER para cargar la integral en la pila yNUM para calcular unaevaluacin decimal. Como resultado, obtendrs

    Actividad 2.3 Aproxima el valor de la integralZ 1.51

    sinx

    xdx

    siguiendo el modelo del ejemplo precedente. Toma las abscisas espaciadascon paso h = 0.1. (Sol. Valor aproximado integrando el polinomio interpo-lador 0.37860)

    9El nmero de decimales fijado en MODES, determina la precisin del mtodo deintegracin numrica de la calculadora.

    9

  • Actividad 2.4 Para obtener n + 1 puntos igualmente espaciados en unintervalo [a, b], tomamos el paso h = (b a)/n y los puntos xj = a + jh.Determina el paso para obtener 5 puntos igualmente espaciados en [0.5, 1].Con los 5 valores de xj obtenidos, determina un polinomio (de grado 4)que interpole la funcin

    f(x) = sin(x lnx).

    Qu error se comete cuando aproximas f(0.67) usando el polinomio?Ycuando aproximas f(0.75)?

    (Sol. Para obtener 5 abscisas es n = 4, luego h = 0.125. Las abscisas sonx0 = 0.5, x1 = 0.625, x2 = 0.75, x4 = 0.875, x5 = 1. El valor del interpoladoren x = 0.75 es P (0.67) = 0.265124. error = f(0.67) P (0.67) = 0.000012.En x = 0.75 el error es nulo, es una de las abscisas de interpolacin.)

    2.2 Matriz de Vandermonde

    El comando VANDERMONDE nos proporciona la matriz de Vandermondea partir del vector de abscisas [x0, x1, . . . , xn]. Podemos encontrarlo en elCatlogo o bien en la tercera pgina del men de herramientas para cons-truir matrices [MATRICES][CREAT]. Veamos, por ejemplo, la matriz deVandermonde correspondiente a las abscisas

    x0 = 1, x1 = 1/2, x2 = 1/3, x3 = 2.

    Cargamos en la pila el vector de abscisas

    y pulsamos [F5] para ejecutar el comando VANDERMONDE,

    10

  • Vemos que las potencias aparecen sin efectuar, si pulsamos [NUM], obten-dremos una evaluacin numrica de los elementos de la matriz. Para obteneruna evaluacin simblica, cargamos en la pila el programa > yejecutamos el comando MAP del Catlogo

    Ejemplo 2.2 Obtencin del polinomio interpolador usando la matriz deVandermonde.

    Consideremos la tabla

    x 1.5 2.0 2.5 3.0

    y 1.12 1.34 1.56 1.41

    El polinomio interpolador es de grado 3. Sabemos que los coeficientes delpolinomio interpolador pueden calcularse resolviendo el sistema

    V

    a0a1a2a2

    =

    1.121.341.561.41

    donde V es la matriz de Vandermonde correspondiente al vector de abscisas[1.5, 2.0, 2.5, 3.0]. Si escribimos el sistema en la forma V a = y, entonces elvector de coeficientes puede calcularse como10 a = V 1y.

    1. Carga el vector de abscisas en la pila

    10En general, calcular el polinomio interpolador invirtiendo la matriz de Vandermondeno es una buena estrategia. En primer lugar, el clculo de la inversa es costoso, por otraparte, la matriz de Vandermonde es un caso de matriz mal condicionada y eso significaque en el clculo de su inversa pueden generarse importantes errores numricos.

    11

  • y ejecuta el comando VANDERMONDE.

    2. Pulsa [1/x] para calcular V 1

    3. Finalmente, carga en la pila un vector con los valores yj

    y pulsa [] para calcular V 1y

    El polinomio interpolador es

    P (x) = 4.16 5.357x+ 2.960x2 0.493x3

    12

  • Actividad 2.5 Calcula el polinomio interpolador del ejemplo anterior usan-do el comando LAGRANGE.

    Actividad 2.6 Calcula el polinomio interpolador de la tabla

    x 1.5 2.0 2.5 3.0

    y 1.12 1.34 1.56 1.41

    usando la matriz de Vandermonde. Verifica el resultado usando el comandoLAGRANGE.

    Actividad 2.7 Si interpolamos una tabla de 4 puntos, es posible que ob-tengamos un polinomio de grado 2?Y de grado 1? Qu condicin debecumplirse para que sto pase?

    13