Professional Documents
Culture Documents
Diferenciacin numrica
Como se indica antes, se pueden generar frmulas por diferencias divididas de alta exac-
titud tomando trminos adicionales en la expansin de la serie de Taylor. Por ejemplo, la
expansin de la serie de Taylor hacia adelante se escribe como [ecuacin (4.21)]:
f ( xi ) 2
f(xi+1) = f(xi) + f (xi)h + h + (23.1)
2
de la que se despeja
f ( xi +1 ) f ( xi ) f ( xi )
f (xi) = h + O(h2) (23.2)
h 2
En el captulo 4 truncamos este resultado al excluir los trminos de la segunda de-
rivada en adelante y nos quedamos con un resultado final,
f ( xi +1 ) f ( xi )
f (xi) = + O(h) (23.3)
h
Ahora retendremos, en cambio, el trmino de la segunda derivada sustituyendo la
siguiente aproximacin de la segunda derivada [recuerde la ecuacin (4.24)]
f ( xi +2 ) 2 f ( xi +1 ) + f ( xi )
f (xi) = + O(h) (23.4)
h2
en la ecuacin (23.2) para dar
f ( xi +1 ) f ( xi ) f ( xi +2 ) 2 f ( xi +1 ) + f ( xi )
f ( xi ) = h + O(h 2 )
h 2h 2
23.1 FRMULAS DE DIFERENCIACIN CON ALTA EXACTITUD 669
o, al agrupar trminos,
f ( xi +2 ) + 4 f ( xi +1 ) 3 f ( xi )
f ( xi ) = + O(h 2 )
2h (23.5)
FIGURA 23.1
Frmulas de diferencias divididas finitas hacia delante: se presentan dos versiones para
cada derivada. La ltima versin emplea ms trminos de la expansin de la serie de Taylor
y, en consecuencia, es ms exacta.
f (x i +1) f (x i )
f ( x i ) = O(h)
h
f (x i +2 ) + 4f (x i +1) 3f (x i )
f ( x i ) = O(h2)
2h
Segunda derivada
f (x i +2 ) 2f (x i +1) + f (x i )
f (x i ) = O(h)
h2
f (x i +3 ) + 4f (x i +2 ) 5f (x i +1) + 2f (x i )
f (x i ) = O(h2)
h2
Tercera derivada
f (x i +3 ) 3f (x i +2 ) + 3f (x i +1) f (x i )
f (x i ) = O(h)
h3
3f (x i + 4 ) + 14f (x i +3 ) 24f (x i +2 ) + 18f (x i +1) 5f (x i )
f (x i ) = O(h2)
2h3
Cuarta derivada
f (x i + 4 ) 4f (x i +3 ) + 6f (x i +2 ) 4f (x i +1) + f (x i )
f (x i ) = O(h)
h4
2f (x i +5 ) + 11f (x i + 4 ) 24f (x i +3 ) + 26f (x i +2 ) 14f (x i +1) + 3f (x i )
f (x i ) = O(h2)
h4
670 DIFERENCIACIN NUMRICA
f (x i ) f (x i 1)
f ( x i ) = O(h)
h
3f (x i ) 4f (x i 1) + f (x i 2 )
f ( x i ) = O(h2)
2h
Segunda derivada
f (x i ) 2f (x i 1) + f (x i 2 )
f (x i ) = O(h)
h2
2f (x i ) 5f (x i 1) + 4f (x i 2 ) f (x i 3 )
f (x i ) = O(h2)
h2
Tercera derivada
FIGURA 23.2 f (x i ) 3f (x i 1) + 3f (x i 2 ) f (x i 3 )
f (x i ) = O(h)
Frmulas de diferencias h3
divididas finitas hacia atrs: 5f (x i ) 18f (x i 1) + 24f (x i 2 ) 14f (x i 3 ) + 3f (x i 4 )
f (x i ) = O(h2)
se presentan dos versiones 2h3
para cada derivada. La Cuarta derivada
ltima versin emplea ms
f (x i ) 4f (x i 1) + 6f (x i 2 ) 4f (x i 3 ) + f (x i 4 )
trminos de la expansin f (x i ) = O(h)
de la serie de Taylor y, h4
en consecuencia, es ms 3f (x i ) 14f (x i 1) + 26f (x i 2 ) 24f (x i 3 ) + 11f (x i 4 ) 2f (x i 5 )
f (x i ) = O(h2)
exacta. h4
Cuarta derivada
f (x i +2 ) 4f (x i +1) + 6f (x i ) 4f (x i 1) + f (x i 2 )
f (x i ) = O(h2)
h4
f (x i +3 ) + 12f (x i +2 ) + 39f (x i +1) + 56f (x i ) 39f (x i 1) + 12f (x i 2 ) + f (x i 3 )
f (x i ) = O(h4)
6h 4
23.1 FRMULAS DE DIFERENCIACIN CON ALTA EXACTITUD 671
donde los errores fueron calculados basndose en el valor verdadero: 0.9125. Repita
este clculo, pero ahora emplee las frmulas con alta exactitud a partir de las figuras
23.1 a 23.3.
La diferencia hacia adelante de exactitud O(h2) se calcula como sigue (figura 23.1):
Como se esperaba, los errores para las diferencias hacia adelante y hacia atrs son
considerablemente menores y los resultados ms exactos que los del ejemplo 4.4. Sin
embargo, de manera sorprendente, la diferencia centrada da un resultado perfecto. Esto
es porque las frmulas se basan en la serie de Taylor, y son equivalentes a polinomios
que pasan a travs de los puntos.
672 DIFERENCIACIN NUMRICA
Hasta aqu hemos visto que hay dos formas para mejorar la estimacin obtenida al em-
plear diferencias divididas finitas: 1. disminuir el tamao de paso o 2. usar una frmula
de grado superior que emplee ms puntos. Un tercer procedimiento, basado en la extra-
polacin de Richardson, utiliza dos estimaciones de la derivada para calcular una terce-
ra aproximacin ms exacta.
Recuerde de la seccin 22.1.1 que la extrapolacin de Richardson constituye un
medio para obtener una mejor estimacin de la integral I por medio de la frmula [ecua-
cin (22.4)]
1
I I (h2 ) + [ I (h2 ) I (h1 )] (23.6)
(h1 / h2 ) 2 1
donde I(h1) e I(h2) son estimaciones de la integral obtenidas usando dos tamaos de paso,
h1 y h2. Debido a su conveniencia cuando se expresa como un algoritmo computacional,
esta frmula usualmente se escribe para el caso en que h2 = h1/2, como
4 1
I I(h2) I(h1) (23.7)
3 3
De manera similar, la ecuacin (23.7) se escribir para las derivadas como
4 1
D D(h2) D(h1) (23.8)
3 3
Para aproximaciones por diferencia centrada con O(h2), la aplicacin de esta frmula
dar una nueva estimacin de la derivada de O(h4).
El ejemplo anterior dio un resultado perfecto debido a que la funcin analizada era
un polinomio de cuarto grado. El resultado perfecto se debi al hecho de que la extra-
polacin de Richardson, en realidad, es equivalente a ajustar un polinomio de grado
superior a los datos y despus evaluar las derivadas con diferencias divididas centradas.
As, este caso concuerda, precisamente, con la derivada del polinomio de cuarto grado.
Para las otras funciones que no son polinomios, por supuesto, esto no ocurrir y nuestra
estimacin de la derivada ser mejor, pero no perfecta. En consecuencia, como en el caso
de la aplicacin de la extrapolacin de Richardson, el procedimiento puede aplicarse de
manera iterativa usando un algoritmo de Romberg, hasta que el resultado se halle por
debajo de un criterio de error aceptable.
3.75
z, cm
FIGURA 23.4
Temperatura contra la profundidad bajo el suelo.
dT
q( z = 0) = kC
dz z=0
m2 kg J C
q(z = 0) = 3.5 107 1 800 3 840 133.3333
s m kg C m
= 70.56 W/m2
diferenciacin numrica es que tiende a amplificar los errores de los datos. La figura
23.5a muestra datos uniformes sin errores, que al diferenciarse numricamente producen
un resultado adecuado (figura 23.5c). En cambio, la figura 23.5b usa los mismos datos,
pero con algunos puntos ligeramente por arriba y otros por abajo. Esta peque-
a modificacin es apenas notoria en la figura 23.5b. Sin embargo, el efecto resultante
en la figura 23.5d es significativo, ya que el proceso de diferenciacin amplifica los
errores.
Como era de esperarse, el principal procedimiento para determinar derivadas de
datos imprecisos consiste en usar regresin por mnimos cuadrados, para ajustar una
funcin suave y diferenciable a los datos. Si no se tiene alguna otra informacin, una
regresin polinomial de grado inferior podra ser una buena eleccin. Obviamente, si se
conoce la verdadera relacin funcional entre las variables dependiente e independiente,
esta relacin deber ser la base para el ajuste por mnimos cuadrados.
As como las tcnicas para el ajuste de curvas, como la regresin, se utilizan para dife-
renciar datos inciertos, se emplea un proceso similar para la integracin. No obstante,
debido a la diferencia en estabilidad entre diferenciacin e integracin, esto rara vez se
hace.
Como se ilustr en la figura 23.5, la diferenciacin tiende a ser inestable; es decir,
amplifica los errores. En cambio, el hecho de que la integracin sea un proceso de suma
FIGURA 23.5
Ilustracin de cmo los
y y
pequeos errores en
los datos se amplifican
mediante la diferencicin
numrica: a) datos sin
error, b) datos modificados
ligeramente, c) resultado de
la diferenciacin numrica t t
que se obtiene de la curva
Diferenciando
Diferenciando
a) b)
a), y d) la diferenciacin
resultante de la curva b) que
manifiesta un aumento en
la variabilidad. En cambio,
la operacin inversa de dy dy
integracin [movindose de dt dt
d) a b) y tomando el rea
bajo d)] tienden a suavizar
o atenuar los errores en los
datos.
t t
c) d)
676 DIFERENCIACIN NUMRICA
tiende a hacerlo muy estable respecto a datos inciertos. En esencia, conforme los puntos
se suman para formar una integral, los errores aleatorios positivos y negativos tienden
a compensarse. En cambio, debido a que la diferenciacin es sustractiva, los errores
aleatorios positivos y negativos tienden a sumarse.
Las bibliotecas y los paquetes de software tienen muchas capacidades para la integracin
y la diferenciacin numrica. En esta seccin le daremos una muestra de algunas de las
ms tiles.
23.5.1 MATLAB
MATLAB tiene varias funciones prediseadas que permiten integrar y diferenciar fun-
ciones y datos. El siguiente ejemplo ilustra cmo se utilizan algunas de ellas.
>> y=fx(x)
y =
Columns 1 through 7
0.2000 1.3097 1.3052 1.7434 2.0749 2.4560
2.8430
Columns 8 through 11
3.5073 3.1819 2.3630 0.2320
>> integral=trapz(x,y)
integral =
1.5948
Como su nombre lo indica, trapz aplica la regla del trapecio a cada intervalo y suma los
resultados para obtener la integral total.
Por ltimo, se diferencian los datos irregularmente espaciados en x y y. Para ello se
utiliza la funcin diff, que slo determina las diferencias entre los elementos adyacentes
de un vector, por ejemplo,
>> diff(x)
ans =
Columns 1 through 7
0.1200 0.1000 0.1000 0.0400 0.0400 0.0400
0.1000
Columns 8 through 10
0.1000 0.0600 0.1000
El resultado representa las diferencias entre cada par de elementos de x. Para calcular
aproximaciones por diferencias divididas de la derivada, slo realizamos una divisin
vectorial de las diferencias de y entre las diferencias de x tecleando
>> d=diff(y)./diff(x)
que da
d =
Columns 1 through 7
9.2477 0.0449 4.3815 8.2877 9.5274 9.6746
6.6431
Columns 8 through 10
3.2537 13.6488 21.3100
stas representan estimaciones burdas de las derivadas en cada intervalo. Tal procedi-
miento se detallar utilizando espaciamientos ms finos.
678 DIFERENCIACIN NUMRICA
23.5.3 IMSL
IMSL tiene varias rutinas para la integracin y la diferenciacin (tabla 23.1). En el presen-
te anlisis, nos concentraremos en la rutina QDAG. Dicha rutina integra una funcin por
medio de un esquema globalmente adaptable basado en las reglas de Gauss-Kronrod.
QDAG se implementa con la siguiente declaracin CALL:
CALL QDAG (F, A, B, ERRABS, ERRREL, IRULE, RESULT, ERREST)
donde
F = Funcin que introduce el usuario para que sea integrada. La forma es F(X),
donde X es la variable independiente. Observe que F se debe declarar como
EXTERNAL en el programa principal.
A = Lmite inferior de integracin. (Entrada)
B = Lmite superior de integracin. (Entrada)
ERRABS = Exactitud absoluta deseada. (Entrada)
ERRREL = Exactitud relativa deseada. (Entrada)
IRULE = Seleccin de la regla de cuadratura. (Entrada). IRULE = 2 se recomienda
para la mayora de las funciones. Si la funcin tiene una singularidad, use
IRULE = 1; si la funcin es oscilatoria, IRULE = 6.
Cuadratura
univariada
QDAGS Adaptativa de propsito general con singularidad en puntos extremos
QDAG Adaptativa de propsito general
QDAGP Adaptativa de propsito general con puntos de singularidad
QDAGI Adaptativa de propsito general con intervalos infinitos
QDAWO Adaptativa con oscilacin ponderada (trigonomtrica)
QDAWF Adaptativa de Fourier ponderada (trigonomtrica)
QDAWS Adaptativa algebraica ponderada con singularidad en puntos extremos
QDAWC Adaptativa de Cauchy ponderada con valor principal
QDNG No adaptiva de propsito general
Cuadratura
multidimensional
TWODQ Cuadratura bidimensional (integral iterada)
QAND Adaptativa cuadratura N-dimensional sobre un hiperrectngulo
Reglas de Gauss
y recurrencias de
tres trminos
GQRUL Regla de cuadratura de Gauss para pesos clsicos
GQRCF Regla de cuadratura de Gauss a partir de coeficientes de recurrencia
RECCF Coeficientes de recurrencia para pesos clsicos
RECQR Coeficientes de recurrencia a partir de la regla de cuadratura
FQRUL Regla de cuadratura de Fejer
Diferenciacin
DERIV Aproximacin a la primera, segunda o tercera derivadas
PROBLEMAS 679
PROGRAM Integrate
USE mimsl
IMPLICIT NONE
INTEGER::irule=1
REAL::a=0.,b=0.8,errabs=0.0.errrel=0.001
REAL::errest,res,f
EXTERNAL f
END PROGRAM
FUNCTION f(x)
IMPLICIT NONE
REAL::x,f
f=0.2+25.*X200.*X**2+675.*X**3.900.*X**4+400.*X**5
END FUNCTION
Output:
Computed = 1.6405
Error estimate = 5.000E05
PROBLEMAS
23.1 Calcule las aproximaciones por diferencias hacia delante 23.2 Repita el problema 23.1, pero para y = log x evaluada en x
y hacia atrs, de O(h) y O(h2), y aproximaciones por diferencia = 25 con h = 2.
central de O(h2) y O(h4) para la primera derivada de y = cos x, 23.3 Use aproximaciones por diferencias centradas para estimar las
en x = p/4, con el uso de un valor de h = p/12. Estime el error derivadas primera y segunda de y = ex en x = 2 para h = 0.1. Emplee
relativo porcentual verdadero et para cada aproximacin. las dos frmulas de O(h2) y O(h4) para hacer sus estimaciones.
680 DIFERENCIACIN NUMRICA
Compare sus resultados con las soluciones analticas. a) Utilice MATLAB para integrar estos datos de x = 1 a 1 y
23.9 Para un cohete, se recabaron los datos siguientes de la 2 a 2, con la funcin trap.
distancia recorrida versus el tiempo: b) Emplee MATLAB para estimar los puntos de inflexin de
estos datos.
t, s 0 25 50 75 100 125
23.15 Emplee IMSL para integrar la distribucin normal (vase
y, km 0 32 58 78 92 100 el problema 23.13) de x = 1 a 1, de 2 a 2, y de 3 a 3.
23.16 Escriba un programa en MATLAB para integrar
Use diferenciacin numrica para estimar la velocidad y acele-
/2
racin del cohete en cada momento.
23.10 Desarrolle un programa amigable para el usuario a fin de
0
cos(cos x ) dx
aplicar el algoritmo de Romberg para estimar la derivada de una 23.17 Escriba un programa en MATLAB que integre
funcin dada. 2/ sen t
23.19 El objetivo de este problema es comparar las aproxima- v = re r + r e y a = (r r 2 )e r + (r + 2r ) e
ciones por diferencias finitas de segundo orden exactas hacia
delante, atrs y centradas, de la primera derivada de una funcin 23.23 Desarrolle un programa de macros en Excel VBA para
con el valor real de la derivada. Esto se har para leer en columnas adyacentes de una hoja de clculo los valores
de x y y. Evale las derivadas en cada punto con el uso de la
f(x) = e2x x ecuacin 23.9, y muestre los resultados en una tercera columna
que se construya en la hoja, adyacente a las de los valores x y y.
a) Use el clculo para determinar el valor correcto de la deri-
Pruebe su programa aplicndolo para evaluar las velocidades
vada en x = 2.
para los valores tiempo-posicin del problema 23.21.
b) Para evaluar las aproximaciones por diferencias finitas cen-
23.24 Use regresin para estimar la aceleracin en cada momen-
tradas, comience con x = 0.5. As, para la primera evaluacin,
to para los datos siguientes con polinomios de segundo, tercero
los valores de x para la aproximacin por diferencias cen-
y cuarto orden. Grafique los resultados.
tradas ser x = 2 0.5 o x = 1.5 y 2.5. Entonces, disminuya
en pasos de 0.01 hacia abajo hasta un valor mnimo de x t 1 2 3.25 4.5 6 7 8 8.5 9.3 10
= 0.01. v 10 12 11 14 17 16 12 14 14 10
c) Repita el inciso b) para las diferencias de segundo orden
hacia delante y hacia atrs. (Observe que esto se puede hacer 23.25 Usted tiene que medir la tasa de flujo de agua a travs de
al mismo tiempo que la diferencia centrada se calcula en el un tubo pequeo. Para ello, coloque una boquilla en la salida del
lazo.) tubo y mida el volumen a travs de ella como funcin del tiempo,
d) Grafique los resultados de b) y c) versus x. Para efectos de segn se ha tabulado a continuacin. Estime la tasa de flujo en
comparacin, incluya el resultado exacto en la grfica. t = 7 s.
23.20 Use una expansin en series de Taylor para obtener una
Tiempo, s 0 1 5 8
aproximacin a la tercera derivada que tenga una exactitud de
segundo orden, por diferencias finitas centradas. Para hacer esto, Volumen, cm3 0 1 8 16.4
tendr que usar cuatro expansiones diferentes para los puntos
xi-2, xi-1, xi+1 y xi+2. En cada caso, la expansin ser alrededor del 23.26 Se mide la velocidad v (m/s) del aire que fluye por una
superficie plana a distintas distancias, y (m) de la superficie. De-
punto xi. El intervalo x se usar en cada caso de i 1 e i + 1, y
termine el esfuerzo cortante t (N/m2) en la superficie (y = 0).
2x se emplear en cada caso de i 2 e i + 2. Las cuatro ecua-
ciones deben combinarse en forma que se elimine las derivadas dv
=
primera y segunda. Utilice suficientes trminos en cada expansin dy
para evaluar el primer trmino que se truncar a fin de determi- Suponga un valor de viscosidad dinmica = 1.8 105 N s/m2.
nar el orden de la aproximacin.
23.21 Use los datos siguientes para encontrar la velocidad y y, m 0 0.002 0.006 0.0012 0.018 0.024
aceleracin en t = 10 segundos: v, m/s 0 0.287 0.899 1.915 3.048 4.299
Tiempo, t, s 0 2 4 6 8 10 12 14 16 23.27 Es frecuente que las reacciones qumicas sigan este modelo:
Posicin, x, m 0 0.7 1.8 3.4 5.1 6.3 7.3 8.0 8.4 dc
= kc n
dt
Emplee los mtodos de diferencias finitas correctas de segundo
orden a) centradas, b) hacia delante, c) hacia atrs. donde c = concentracin, t = tiempo, k = tasa de reaccin, y
23.22 Un avin es seguido por radar, y se toman datos cada n = orden de reaccin. Es posible evaluar valores dados de c
segundo en coordenadas polares q y r. y dc/dt, k y n, por medio de regresin lineal del logaritmo de
esta ecuacin:
t, s 200 202 204 206 208 210
log = log k + n log c
dc
q, (rad) 0.75 0.72 0.70 0.68 0.67 0.66 dt
r, m 5 120 5 370 5 560 5 800 6 030 6 240 Use este enfoque y los datos que siguen para estimar los valores
de k y n:
A los 206 segundos, utilice diferencias finitas centradas (correc-
tas de segundo orden) para encontrar las expresiones vectoriales t 10 20 30 40 50 60
para la velocidad u , y aceleracin a . La velocidad y aceleracin c 3.52 2.48 1.75 1.23 0.87 0.61
en coordenadas polares son: