• No se han encontrado resultados

Derivación e integración numéricas

N/A
N/A
Protected

Academic year: 2021

Share "Derivación e integración numéricas"

Copied!
5
0
0

Texto completo

(1)

Obtención de fórmulas de tipo interpolatorio

Para obtener fórmulas de derivación o integración numéricas a partir de la interpolación polinómica necesitamos calcular, en primer lugar, el polinomio de interpolación y después la derivada correspondiente en un punto a o la integral en un intervalo @a,bD. En lo que respecta a la derivación numérica, consideraremos distintos órdenes de derivación. Los datos de interpolación para las fórmulas de derivación numérica serán lagrangianos y para la inte-gración numérica serán lagrangianos y de tipo Hermite. El polinomio interpolador se obtiene, en todos los casos, con la orden InterpolatingPolynomial.

ü

Obtención de fórmulas de derivación numérica

En la derivación numérica, los nodos de la fórmula, es decir los puntos de interpolación de la función f, serán el punto

a y puntos a su derecha e izquierda, de la forma a-h, a+h, a+2h, etc. La primera fórmula que vamos a obtener es la que utiliza los nodos a y a+h para la derivada primera.

Clear@a, h, f, x, datosD

datos=88a, f@aD<,8a+h, f@a+hD<<;

pol=Simplify@InterpolatingPolynomial@datos, xDD; Simplify@∂xpolê. x→aD

Observe cómo se ha expresado la derivada del polinomio respecto de su variable.

A continuación vamos a usar los nodos a-h, a y a+h para la derivada primera. datos=88a−h, f@a−hD<,8a, f@aD<,8a+ h, f@a+ hD<<; pol=Simplify@InterpolatingPolynomial@datos, xDD; Simplify@∂xpolê. x→aD

Es una fórmula con sólo dos nodos (el coeficiente de fHaL vale cero). Por último, para la derivada primera, vamos a obtener una fórmula (que no se suele usar) que utiliza los nodos a, a+h y a+3h.

datos=88a, f@aD<,8a+h, f@a+hD<,8a+3h, f@a+3hD<<; pol=Simplify@InterpolatingPolynomial@datos, xDD; Simplify@∂xpolê. x→aD

Ahora vamos a obtener una fórmula para la derivada segunda, concretamente la que usa cinco nodos simétricos,

a-2h, a-h, a, a+h y a+2h

datos=Table@8a+i h, f@a+i hD<,8i,−2, 2<D; pol=Simplify@InterpolatingPolynomial@datos, xDD; Simplify@D@pol,8x, 2<D ê. x→aD

De igual forma se obtendría cualquier otra fórmula. A continuación vamos a analizar el orden de precisión de la última fórmula obtenida. Tenemos que ver hasta qué potencia del tipo xi es exacta. De antemano, para i=0, 1, 2, 3 y 4 está

(2)

garantizada la exactitud por ser la fórmula de tipo interpolatorio. Al probar con i=5 observamos que la fórmula da como resultado 20a3, es decir el valor exacto de la derivada. Para i=6 el valor proporcionado es 30a4-8h4,

difer-ente de 30a4. Luego el orden de precisión es 5.

f@x_D:=x5 SimplifyA− 30 f@aD+f@a−2 hD−16 f@a−hD−16 f@a+hD+f@a+2 hD 12 h2 E f@x_D:=x6 SimplifyA− 30 f@aD+f@a−2 hD−16 f@a−hD−16 f@a+hD+f@a+2 hD 12 h2 E

ü

Comportamiento del error en las fórmulas de derivación numérica

Como es conocido, aunque sea muy simple, toda fórmula de derivación numérica que se obtuvo en el desarrollo teórico es convergente. Los errores tienden a cero cuando h tiende a cero. Sin embargo, en la computación aparecen otros errores que pueden desaconsejar el uso de valores muy pequeños de h si se quiere una buena aproximación. Es lo que ocurre con el eror de cancelación en las fórmulas de derivación numérica. Veámoslo. Vamos a dar el valor de las derivadas numéricas de una función f en el punto a=2, con la fórmula f Ha+hL−h f HaL para valores de h de la forma

h=10-j con j¥1.Veremos que llega un momento en el que la derivada numérica deja de converger, con unas oscila-ciones no controlables, para después pasar a valer cero, porque el numerador vale cero. Esto último ocurre cuando h es tan pequeño que para el ordenador a+h=h.

f@z_D:= z−0.5 1+z2 n=20; a=2.; derivadasnumericas=TableAf@a+10 −jDf@aD 10−j ,8j, n<E

El valor exacto de la derivada de f en 2 es

f '@2.D

errores=f '@aD−derivadasnumericas

Los redondeos (a seis cifras) de la derivada numérica para j=6, 7, 8 coinciden con el valor exacto. Al principio, a medida que h disminuye el error disminuye, después empieza un comportamiento extraño donde los errores pueden ser muy grandes y finalmente la aproximación que da es cero. Puede cambiar el valor de a y comprobarlo para otros valores y otras funciones. Por ejemplo el comportamiento del error en a= -1 se muestra a continuación:

a= −1.; derivadasnumericas=TableAf@a+10 −jDf@aD 10−j ,8j, n<E errores=f '@aD−derivadasnumericas

El error mínimo en valor absoluto se alcanza cuando j=8; después empieza a aumentar hasta j=16. A partir de

j=17, el error se hace constante porque la derivada numérica es cero. Cambiamos ahora a una fórmula de mayor precisión y volvemos a calcular las derivadas numéricas y los errores.

derivadas2=TableA1 2 f@a+10−jD−f@a−10−jD 10−j ,8j, n<E f '@aD−derivadas2

(3)

El comportamiento es similar al de la primera fórmula, sólo que el error de truncamiento es menor. Se consiguen más cifras exactas, once, sin que h tenga que disminuir tanto como antes. Ahora con j=5 se han conseguido once cifras. Antes el error mínimo se alcanzó con j=8 y fueron ocho cifras. Nuevamente, si h es muy pequeño vuelven a aparecer errores importantes, y finalmente da cero.

ü

Integración numérica

Vamos a obtener las fórmulas del Trapecio y de Simpson.

Clear@a, b, fD

pol=Simplify@InterpolatingPolynomial@88a, f@aD<,8b, f@bD<<, xDD; SimplifyA‡ a b pol xE datos=98a, f@aD<,9a+b 2 , fA a+b 2 E=,8b, f@bD<=; pol=Simplify@InterpolatingPolynomial@datos, xDD; SimplifyA‡

a b

pol xE

Un método alternativo, pero equivalente, consiste en imponer exactitud. Veámoslo para la fórmula de Simpson.

B=TableA‡ a b xi x,8i, 0, 2<E; A=TableA9ai,i k jja+b 2 y { zzi, bi=,8i, 0, 2<E; sol=Simplify@LinearSolve@A, BDD SimplifyAsol.9f@aD, fAa+b

2 E, f@bD=E

Por último, vamos a obtener la fórmula del trapecio corregida, es decir, la que usa como datos el valor de la función y el de la derivada en cada extremo.

datos=88a,8f@aD, f '@aD<<,8b,8f@bD, f '@bD<<<; pol=Simplify@InterpolatingPolynomial@datos, xDD; SimplifyA‡

a b

pol xE

ü

Ejemplos de uso de fórmulas compuestas

ü Fórmula del rectángulo compuesta.

Vamos a aplicar varias fórmulas a la integración en @0, 2D de la función Hx3x+2L x

. Su valor exacto, en este caso, se puede obtener con la orden Integrate[función, {variable, límite inferior, límite superior}]. En aprox1 guardamos la aproximación obtenida con la fórmula del rectángulo derecha, en aprox2 guardamos el resultado del trapecio y en aprox3 el de Simpson. En todos los casos el número de subintervalos es el mismo, n=200.

Integrate@Hx3x+2L x,8x, 0, 2<D N@%D

(4)

f@x_D:=Hx3−x+2L x a=0.; b=2.; n=200; h= b−a n ; nod=Table@a+i h,8i, 0, n<D; aprox1=h‚ i=1 n f@nodPi+1TD error1=3.+3. 2.−aprox1

ü Fórmulas compuestas basadas en las del trapecio y Simpson aprox2=hi k jjjjj1 2 f@nodP1TD+‚i=2 n f@nodPiTD+ 1 2 f@nodPn+1TD y { zzzzz error2=3.+3. 2.−aprox2 aprox3= 1 6 h i k jjjjjf@nodP1TD+2‚ i=2 n f@nodPiTD+4‚ i=1 n fAnodPiT+ h 2E+f@nodPn+1TD y { zzzzz error3=3.+3. 2.−aprox3

Observamos la gran precisión de la fórmula de Simpson, que es una de las más usadas en la práctica.

Mathematica y la integración numérica.

Mathematica tiene una orden de integración numérica, es NIntegrate, que nos da la respuesta con 6 dígitos, pero podemos recuperar hasta la precisión interna estándar (unas 15 cifras) si lo pedimos a través de WorkingPrecision.

NIntegrate@Hx3x+2L x,8x, 0, 2<, WorkingPrecision20D

No debe confundir NIntegrate con Integrate. La primera lleva programada una integración numérica y puede aplicarla a cualquier función definida y acotada en un intervalo @a,bD; sin embargo, la segunda requiere que la función tenga una primitiva, a la que aplica la regla de Barrow. Intente integrar en el intervalo @1, 2D la función xx usando ambas órdenes.

Ejercicios

1.- Obtenga mediante interpolación en el espacio 2 una fórmula para aproximar f''HaL del tipo combinación de

fHa-hL, fHaL y fHa+hL.

2.- Con la fórmula obtenida en el ejercicio 1, halle una tabla de aproximaciones y errores de f1''H2.5L, siendo f

1HxL=xx,

para h=10-i, i=1, ..., 5. 3.- Sea f2HxL= x

2+40 ÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅ

x+è!!!!!!!5 x+7. Calcule una tabla que recoja las derivadas de f2 en xi=1, 2, ..., 10, utilizando la primera

(5)

cometido en cada punto. Repita el ejercicio con la segunda fórmula obtenida para la derivada primera y, finalmente, para la obtenida en el ejercicio 1 (con respecto a la segunda derivada).

4.- Divida el intervalo @1, 2D en 100 partes iguales y aplique las fórmulas del rectángulo, Simpson y trapecio compues-tas para aproximar la integral en dicho intervalo de f1. Compare los resultados obtenidos con los que se calculan

mediante el comando NIntegrate.

5.- Repita el ejercico 4 para f2.

6.- Sea f3HxL=x15ex en @0, 2D. Vamos a dividir el intervalo en 10µ2n subintervalos, es decir, 10, 20, 40, 80, ....y a

aplicar la fórmula de Simpson compuesta hasta que la diferencia entre dos aproximaciones consecutivas (por ejemplo, podrían ser con 20 y 40 subintervalos) sea menor que 10-2, dando en tal caso por buena la última aproximación obtenida. Programe y calcule dicha aproximación. Compare el resultado con el obtenido mediante el comando NInte-grate y compare ambas aproximaciones con el valor exacto.

Referencias

Documento similar