SlideShare una empresa de Scribd logo
1 de 108
Descargar para leer sin conexión
An´alisis Num´erico
de Integrales
y
Ecuaciones Diferenciales
Temas de An´alisis Num´erico y Programaci´on
Vol´umenes:
I : Cardona, A., y Neuman, C.E.: Temas de Programaci´on I, 1996, (se-
gunda edici´on en preparaci´on, 1997)
II : Neuman, C.E. (editor): Matem´atica asistida por computadora, 1996
III : Neuman, C.E.: An´alisis Num´erico de Integrales y Ecuaciones Diferen-
ciales, 1997
IV : Neuman, C.E.: Algoritmos Geom´etricos y Gr´aficos en 3D. Laboratorios
de Matem´atica, segunda edici´on, 1999.
V : Neuman, C.E., Vilchez, A.G.: Algoritmos Geom´etricos y Gr´aficos en
3D. Laboratorios de Matem´atica, tercera edici´on (en preparaci´on), 2001.
ii
Temas de An´alisis Num´erico y Programaci´on
Volumen VI
An´alisis Num´erico
de Integrales
y
Ecuaciones Diferenciales ¶
Segunda edici´on
Carlos E. Neuman
Departamento de Matem´atica (FIQ)
Universidad Nacional del Litoral
Santa Fe
2001
∞
¶
Trabajo realizado con fondos provenientes de la Universidad Nacional del Litoral (UNL),
a trav´es de la programaci´on Curso de Acci´on para la Investigaci´on y el Desarrollo (CAI+D),
Secretar´ıa de Ciencia y T´ecnica de la UNL
An´alisis Num´erico de Integrales y Ecuaciones
Diferenciales
Carlos E. Neuman
Departamento de Matem´atica, FIQ, UNL, Santiago del Estero 2829,
3000 Santa Fe, Argentina
E-mail address: ceneuman@fiqus.unl.edu.ar
URL: http://www.intec.unl.edu.ar/CN/CNBook3.pdf
Key words and phrases. Integraci´on num´erica, Resoluci´on num´erica de ecuaciones
diferenciales, M´etodos de un paso, Integraci´on adaptativa
Trabajo realizado con fondos provenientes de la Universidad Nacional del Litoral
(UNL), a trav´es de la programaci´on Curso de Acci´on para la Investigaci´on y el
Desarrollo (CAI+D), Secretar´ıa de Ciencia y T´ecnica de la UNL.
Resumen. En este texto se tratan temas de integraci´on num´erica de funciones
y de ecuaciones diferenciales, teoremas de existencia y unicidad de soluciones,
convergencia, estabilidad y consistencia de soluciones aproximadas de ecua-
ciones diferenciales y algunos complementos te´oricos. Se presentan numerosos
ejemplos y ejercicios y dos laboratorios de integraci´on adaptativa.
´Indice General
Prefacio xiii
Prefacio a la segunda edici´on xvii
´Indice de Tablas 1
´Indice de Figuras 3
Cap´ıtulo 1. Integraci´on 1
1.1. Introducci´on 1
1.2. La integral de Riemann–Stieltjes 3
1.3. La f´ormula de suma de Euler 4
1.4. M´etodos b´asicos de integraci´on num´erica 7
1.5. M´etodos de extrapolaci´on 11
1.6. Cuadratura de Gauß 12
1.7. M´etodos de Montecarlo 13
1.8. M´etodos adaptativos 16
1.9. Ejercicios 17
Cap´ıtulo 2. Ecuaciones diferenciales 21
2.1. Introducci´on 21
2.2. M´etodos en diferencias de un paso 23
2.3. Ejercicios 33
Ap´endice A. Bibliograf´ıa y referencias 35
A.1. Textos b´asicos 35
A.2. Bibliograf´ıa complementaria 35
Ap´endice B. Coeficientes indeterminados con el Mathematica 37
B.1. El m´etodo de Simpson 37
B.2. El m´etodo de Newton 38
B.3. El m´etodo de cuadratura de Gauß de tres puntos 40
B.4. Los coeficientes de la cuadratura de Gauß de cinco puntos 41
Ap´endice C. Cuadernos del Mathematica y archivos script de Matlab 47
C.1. La funci´on mihumps 47
C.2. Extrapolaci´on repetida de Richardson 48
C.3. M´etodos de Montecarlo 50
C.4. Integraci´on de Simpson adaptativa 53
C.5. El m´etodo cl´asico de Runge-Kutta 55
Ap´endice D. La integral de Riemann–Stieltjes 59
vii
viii ´INDICE GENERAL
D.1. Funciones de variaci´on acotada 59
D.2. La integral 61
D.3. F´ormula de la suma de Euler 65
D.4. Pero, ¿Hay funciones integrables? 65
D.5. Ejercicios 66
Ap´endice E. Polinomios y n´umeros de Bernoulli 67
E.1. Polinomios de Bernoulli con el Mathematica 67
E.2. N´umeros de Bernoulli 73
E.3. Integraci´on por partes 74
Ap´endice F. Laboratorio de Matem´atica: Integraci´on Adaptativa 75
F.1. Objetivos 75
F.2. Antes del laboratorio 75
F.3. Laboratorio 76
F.4. Aplicaciones y desarrollos avanzados 77
F.5. Referencias 77
Ap´endice G. Laboratorio de Matem´atica: Soluci´on adaptativa de ODEs 79
G.1. Objetivos 79
G.2. Antes del laboratorio 79
G.3. Laboratorio 79
G.4. Aplicaciones y desarrollos avanzados 79
G.5. Referencias 80
Ap´endice H. Existencia y unicidad de soluciones de ODEs 81
H.1. Referencias 85
´INDICE GENERAL ix
Para S., N., y F.
´INDICE GENERAL xi
Our ancestors were eager to understand
the worlds but had not quite stumbled
upon the method. They imagined a
small, quaint, tidy universe in which the
dominant forces were gods like Anu, Ea,
and Shamash. In that universe humans
played an important if not central role.
We were intimately bound up with the
rest of nature. The treatment of tooth-
ache with second-rate beer was tied to
the deepest cosmological mysteries.
Today we have discovered a powerful
and elegant way to understand the uni-
verse, a method called science; it has
revealed to us a universe so ancient and
so vast that human affairs seem at first
sight to be of little consequence.
Sagan, C.: Cosmos, Ballantine,
New York, 1992.
Prefacio
Este texto surgi´o de la necesidad de presentar una visi´on unificada de los
m´etodos elementales de integraci´on num´erica de funciones y de algunos de los que
son ´utiles para las ecuaciones diferenciales ordinarias.
♣ Los p´arrafos que se colocan entre tr´eboles pueden ser omitidos en las primeras
lecturas puesto que no son esenciales para la continuidad del texto. ♣
Seguimos en t´erminos generales las ideas planteadas en Linz∗
(1988). Para este
autor el t´ermino matem´atica computacional esta asociado con el espectro amplio
de actividades relacionadas con la soluci´on aproximada de problemas cient´ıficos
expresados en t´erminos de modelos matem´aticos, que, en su forma t´ıpica, est´an
constituidos por ecuaciones diferenciales e integrales de las que, en general, no se
conoce soluci´on en forma cerrada. Para resolverlos las ecuaciones son convertidas,
mediante discretizaci´on, en un conjunto finito de ecuaciones m´as simples que puedan
ser resueltas por m´etodos algebraicos.
Se puede distinguir la metodolog´ıa num´erica, que estudia m´etodos para dis-
cretizar los operadores diferenciales e integrales y c´omo resolver los sistemas finitos
resultantes, del an´alisis num´erico que involucra el estudio riguroso de los algoritmos
creados por la metodolog´ıa.
La meta primaria del an´alisis es describir la relaci´on entre la soluci´on exacta
de la ecuaci´on original, y la aproximada obtenida a partir de la versi´on discreta.
El an´alisis num´erico ha resultado muy ´util para complementar el proceso de
creaci´on de m´etodos num´ericos generado por las aplicaciones ingenieriles. Por ejem-
plo las t´ecnicas de relajaci´on o de elementos finitos fueron creadas por ingenieros
basados en la intuici´on f´ısica. El an´alisis num´erico posterior ha resultado crucial
para la consolidaci´on de estos m´etodos, la extensi´on de su aplicabilidad, y el estudio
de sus propiedades de convergencia o estabilidad.
En muchos casos a partir de objetivos del An´alisis Num´erico se han obtenido
nuevos resultados en An´alisis Funcional, en cuyos t´erminos suelen plantearse los
problemas.
Seg´un resume Linz (1988): En art´ıculos publicados en revistas como el SIAM
Journal on Numerical Analysis o Numerische Mathematik se encuentran habitual-
mente t´erminos como espacios de Hilbert, clausura compacta, y convergencia d´ebil.
Estos conceptos le resultan muy ´utiles al te´orico y han facilitado el establecimiento
de una teor´ıa abarcativa y coherente de la soluci´on aproximada de las ecuaciones
de operadores.
♣ Ilustraremos esto con el ejemplo de la ecuaci´on del operador lineal
Lx = y (0.1)
∗
Las referencias se enumeran en el ap´endice A, p´agina 35
xiii
xiv PREFACIO
donde L: X → Y es un operador lineal entre los espacios normados X e Y . El
miembro derecho, y, es un dato y la ecuaci´on debe ser resuelta para la inc´ognita x.
Suponemos que L tiene una inversa acotada en Y . Un ejemplo muy simple de esto
es la ecuaci´on
d
dt
x(t) = y(t) = f(t, x(t)) (0.2)
con la condici´on inicial
x(t0) = x0 (0.3)
En el proceso de discretizaci´on la ecuaci´on (0.1) es reemplazada por una suce-
si´on param´etrica de problemas
Lnxn = yn (0.4)
donde Ln es un operador en ciertos espacios n–dimensionales Xn e Yn. El s´ımbolo
n se denomina par´ametro de discretizaci´on y mide el grado en el que el operador
discreto Ln representa al operador L.
Como Ln es efectivamente una matriz de n×n, es posible, en principio, resolver
(0.4) en forma algebraica y obtener la soluci´on aproximada xn.
El objetivo fundamental del an´alisis posterior es conocer la relaci´on entre la
soluci´on verdadera x y su aproximaci´on xn. En particular, desearemos demostrar
la convergencia. Esto significa que, cuando se incrementa n, la soluci´on aproximada
deber´a acercarse m´as y m´as a la soluci´on verdadera, en el sentido que
lim
n→∞
x − xn = 0 (0.5)
Usualmente, el primer paso del an´alisis es definir el error de consistencia
rn(x) = Lx − Lnx (0.6)
De (0.1) y (0.4) se obtiene directamente que
Ln(x − xn) = y − yn − rn(x) (0.7)
y obtenemos una cota para el error de la soluci´on aproximada
x − xn ≤ L−1
n { y − yn + rn } (0.8)
En la mayor´ıa de los casos es relativamente elemental mostrar que
lim
n→∞
y − yn = 0 (0.9)
y que, bajo condiciones bien definidas
lim
n→∞
rn = 0 (0.10)
Se necesita una condici´on adicional, la condici´on de estabilidad
lim
n→∞
L−1
n ≤ K < ∞ (0.11)
Si reemplazamos en la ecuaci´on (0.8), obtenemos el teorema central del an´alisis
num´erico: estabilidad y consistencia implican convergencia.
Se tiene un gran n´umero de problemas no resueltos por causa de las dificultades
t´ecnicas de las que el problema principal es verificar la condici´on de estabilidad
(0.11). Hay otras cuestiones, por ejemplo, cu´an dificil es resolver (0.4) o cu´an
velozmente converge xn a x, pero, normalmente estas son menos complejas que la
estabilidad.
PREFACIO xv
Supongamos ahora que hemos determinado que nuestro m´etodo num´erico es
estable y convergente. ¿Qu´e nos dice esto? Nos expresa que, en alg´un sentido
asint´otico, el m´etodo funciona.
A menudo podemos decir m´as. En muchos casos el error de aproximaci´on puede
ser acotado en forma m´as expl´ıcita como
x − xn ≤ n−p
L−1
n η(x) (0.12)
donde η es un funcional de la soluci´on desconocida x El exponente p se denomina
orden de convergencia y nos da informaci´on respecto de cu´an exacto es el m´etodo.
Para un dado nivel de esfuerzo computacional, un m´etodo con un orden de conver-
gencia mayor tender´a a dar mejores resultados que uno con un orden menor.
La cota que nos da la expresi´on 0.12 tiene una utilidad limitada puesto que
depende de la inc´ognita x. Se puede sortear esa dificultad realizando un an´alisis
a posteriori que utiliza la soluci´on calculada xn en lugar de la x. A partir de las
ecuaciones 0.1 y 0.4 se puede obtener
x − xn ≤ n−p
L−1
ρn (0.13)
donde ρn es el residuo de la soluci´on calculada
ρn(xn) = Lxn − y (0.14)
Es posible obtener cotas buenas para ρn , en cambio es m´as dif´ıcil obtener cotas
realistas para L−1
lo que se convierte en el elemento clave del que depende el
an´alisis a posteriori. ♣
Los problemas b´asicos de la metodolog´ıa num´erica no son el establecimiento
del m´etodo de discretizaci´on, sino el manejo de los detalles involucrados en la re-
presentaci´on de dominios, de los propios m´etodos de discretizaci´on, de los m´etodos
de operaci´on con los sistemas de ecuaciones, de las matrices ralas, y de los m´etodos
para resolver los sistemas de ecuaciones con dimensiones muy altas. En el desarro-
llo de m´etodos para resolver estos problemas suele incluirse —cuando se trata de
utilizar la metodolog´ıa en las aplicaciones— una dosis relativamente alta de lo que
puede denominarse pragm´atica num´erica la que, por tratarse de algo naturalmente
impreciso, siempre puede fallar, pero que no deber´ıa ser totalmente ignorada por
causa de ello. Los beneficios de la metodolog´ıa num´erica son tan considerables
que se la utiliza a´un en los casos en que no puede justificarsela rigurosamente. La
idea fuerza no es rechazar los puntos de vista pragm´aticos sino desarrollar los m´as
efectivos.
En el primer cap´ıtulo se estudian algunos aspectos relevantes del c´alculo de inte-
grales. Se desarrollan los m´etodos cl´asicos, los de extrapolaci´on y los de Montecarlo.
Debido a que las extensiones a integrales m´ultiples son relativamente directas, so-
lamente se trata el problema de vol´umenes e hipervol´umenes utilizando el m´etodo
de Montecarlo por la simple raz´on que, en muchos casos, es el ´unico aplicable. En
el segundo cap´ıtulo se introduce el problema de hallar soluciones aproximadas para
problemas de valores iniciales de ecuaciones diferenciales ordinarias. Asimismo se
deducen algunos m´etodos elementales de los del tipo de ‘un paso’. En los ap´endices
se presentan ejemplos realizados con Matlab y Mathematica, se desarrolla una breve
introducci´on a la teor´ıa de la integral y se realizan c´alculos para obtener los polino-
mios de Bernoulli, que resultan necesarios para la interpretaci´on de los coeficientes
en el desarrollo asint´otico del error en los m´etodos trapezoidal y Simpson.
xvi PREFACIO
En el ´ultimo de los ap´endices se incluye un Laboratorio de Matem´atica en el
tema de la cuadratura adaptativa. He elegido este por la simplicidad del algorit-
mo recursivo. Sin embargo, cualquiera de los restantes temas del texto, por su
importancia matem´atica, su riqueza y su atractivo, merece la elaboraci´on de un
Laboratorio propio. El objetivo de estos laboratorios es aspirar a la recreaci´on viva
de conceptos y temas que enriquecen el portafolios del pregraduado en Matem´atica.
Los libros citados en la secci´on de bibliograf´ıa y el conjunto de referencias en
ellos citados facilitan al lector interesado el estudio de cualquiera de los temas en
que desee especializarse. Este texto, que se basa en su totalidad en ellos, y que
comparte la selecci´on de temas de inter´es que tratan, no aspira a colocarse en un
plano de igualdad, sino, humildemente, enfatizar algunos aspectos y no otros.
Debo agradecer a los sucesivos grupos de alumnos que han enriquecido el curso
de C´alculo Num´erico con filosas preguntas y soluciones ingeniosas a los problemas
propuestos. Asimismo a mis colegas por la discusi´on de temas y el desarrollo de
m´etodos aptos para la ense˜nanza. En cambio, de los errores que pudiera contener,
me hago ´unico responsable.
Carlos E. Neuman
Santa Fe, 29 de abril de 1997
Prefacio a la segunda edici´on
Esta nueva edici´on se desarrolla con varias correcciones y agregados con el fin
de adaptar el texto a los cursos de C´alculo Num´erico I y II en la modalidad ‘a
distancia’.
Carlos E. Neuman
Santa Fe, 12 de noviembre de 2001
xvii
´Indice de Tablas
1 Extrapolaci´on de Richardson (M´etodo de Romberg) 12
1 Integraci´on de Romberg para la funci´on mihumps (ver
tabla 1). La integral (con el Mathematica) resulta Q =
0.2985832539549867 50
2 Integraci´on de Romberg para la funci´on mihumps (continuaci´on,
ver tablas 1 y 1). La integral (con el Mathematica) resulta
Q = 0.2985832539549867 50
1
´Indice de Figuras
1 Campo de direcciones de f(x, y) = −xy 21
2 El rect´angulo S est´a contenido en el R 22
3 Primer m´etodo de Runge 26
4 Segunda f´ormula de Runge 28
5 El m´etodo de Runge-Kutta 29
1 La funci´on mihumps 47
2 Histograma de distribuci´on de los valores estimados de la
integral del ejemplo C.3.1 52
3 Integraci´on por Runge-Kutta cl´asico de x = −tx en [0, 7] 57
1 El polinomio de Bernoulli B1(x) 69
2 El polinomio de Bernoulli B2(x) 70
3 El polinomio de Bernoulli B6(x) 71
4 El polinomio de Bernoulli B10(x) 72
5 El polinomio de Bernoulli B40(x) 73
1 Puntos de evaluaci´on de quad para la funci´on f(x) en [0, 2] 76
3
CAP´ıTULO 1
Integraci´on
1.1. Introducci´on
El objetivo del presente cap´ıtulo es estudiar m´etodos num´ericos para calcular
integrales definidas de la forma
b
a
f(x) dx (1.1)
Los m´etodos m´as simples —que se originan en la propia definici´on de la integral de
Riemann,— se establecen como sigue. Se elige una partici´on regular de paso h en
el intervalo [a, b] de modo de obtener N subintervalos (es decir que Nh = (b − a).
Se toma un valor conveniente de la funci´on f en cada subintervalo y se calcula la
suma
h
N
i=1
fi (1.2)
donde fi es el valor elegido de la funci´on f en el intervalo [xi−1, xi]. En el caso de
escoger fi = f(xi−1) se obtiene una “regla del rect´angulo”
b
a
f(x) dx h
N
i=1
f(xi−1) (1.3)
si, en cambio, se toma fi = f(xi) se obtiene otra regla del rect´angulo
b
a
f(x) dx h
N
i=1
f(xi) (1.4)
en realidad ‘la’ regla del rect´angulo es m´as precisa si se elige fi = f((xi−1 + xi)/2),
en este caso se obtiene la regla del rect´angulo R(h) (o ‘midpoint’)
b
a
f(x) dx R(h) = h
N
i=1
f(
xi−1 + xi
2
) (1.5)
con fi = (f(xi−1) + f(xi))/2, en cambio, se obtiene la regla del trapecio T(h)
b
a
f(x) dx T(h) = h
N
i=1
f(xi−1) + f(xi)
2
(1.6)
es decir En algunos textos este
m´etodo se denomina
trapezoidal compuesto,
pero la distinci´on es
poco relevante
T(h) = h(
f(a)
2
+
N−1
i=1
f(xi) +
f(b)
2
) (1.7)
1
2 1. INTEGRACI ´ON
y, si el n´umero N de subintervalos es par, se pueden agrupar los subintervalos de
a dos contiguos y, en cada par utilizar f2i+1 = (f(x2i) + 4f(x2i+1) + f(x2i+2))/6,
con lo que se obtiene la “regla de Simpson” S(h)
b
a
f(x) dx S(h) =
2h
6
N
2 −1
j=0
(f(x2j) + 4f(x2j+1) + f(x2j+2)) (1.8)
es decirLa regla de Simpson es
exacta para polinomios
de orden cuatro S(h) =
2h
6
(f(a) + 4f(x1) + 2f(x2) + · · · + 4f(xN−1) + f(xN )) (1.9)
En todos estos casos se tiene la expresi´on
b
a
f(x) dx A
N
i=0
cif(xi) (1.10)
dondeEl operador ‘.*’ facilita
la integraci´on num´erica
[Rect´angulo]A = 2h y c = (0, 1, 0, 1, 0, 1, . . . , 0, 1, 0)
[Trapezoidal]A = h/2 y c = (1, 2, 2, . . . , 2, 1)
[Simpson] A = 2h/6 y c = (1, 4, 2, 4, . . . , 2, 4, 1)
Observaci´on 1.1.1. Las expresiones anteriores sugieren un m´etodo muy simple
para programar estos m´etodos elementales en Matlab
De la inspecci´on de estos m´etodos surgen varias ideas interesantes
(1) Se tiene una ´ıntima relaci´on entre integrales y sumas y las primeras se
aproximan por las segundas.
(2) Es necesario desarrollar m´etodos para estudiar los errores de aproximaci´on
de estas reglas de integraci´on (es simple establecerlas pero no es tan claro
c´omo estimar los respectivos errores)
(3) Se deber´ıan explorar m´etodos aplicables a particiones que no sean regu-
lares
Para la primera utilizaremos una teor´ıa de la integral que permite unificar las
metodolog´ıas para tratar con integrales y sumas. Citamos textualmente a Tom
Apostol en la introducci´on al cap´ıtulo 7 (p´ag. 169) de su texto (Apostol, 1976)La integral de Riemann-
Stieltjes generaliza la in-
tegral de Riemann
. . . se estudia el proceso de integraci´on con cierto detalle. En rea-
lidad consideramos un concepto m´as general que el de Riemann: a
saber, la integral de Riemann-Stieltjes, que involucra dos funciones
f y α. El s´ımbolo que utilizamos para designar tales integrales es
b
a
f(x)dα(x), o alguno similar, y la integral de Riemann se obtiene
como caso particular cuando α(x) = x. Cuando α tiene derivada con-
tinua, la definici´on es tal que la integral de Stieltjes
b
a
f(x)dα(x) se
convierte en la intgral de Riemann
b
a
f(x)α (x) dx. Sin embargo, la
integral de Stieltjes tiene sentido en el caso en que α no es diferen-
ciable e incluso cuando no es continua. De hecho, es al tratar con
funciones discontinuas α cuando se hace patente la importancia de la
integral de Stieltjes. Eligiendo adecuadamente una funci´on disconti-
nua α, una suma finita o infinita puede expresarse como una integral
de Stieltjes, y la sumaci´on y la integral de Riemann ordinaria son
casos especiales de este proceso m´as general. Los problemas f´ısicos
que consideran la distribuci´on de masas que son en parte discretas
1.2. LA INTEGRAL DE RIEMANN–STIELTJES 3
y en parte continuas pueden ser abordados utilizando la integral de
Stieltjes. En la teor´ıa matem´atica de la Probabilidad esta integral es
un instrumento muy ´util que hace posible la consideraci´on simult´anea
de variables aleatorias continuas y discretas.
En muchos casos se utilizan integrales para calcular sumas que pueden ser
complicadas de obtener por otros m´etodos, en raz´on de ello las interrelaciones
entre unas y otras es mucho mayor de lo que puede suponerse en una primera
aproximaci´on.
En las secciones 1.4 y 1.6 estudiamos herramientas para obtener diversos m´etodos
de integraci´on y para estimar los errores de las aproximaciones conseguidas. El es-
quema b´asico es aproximar la integral por una suma del tipo La integral aproximada
es un promedio pesado
de los valores de la
funci´on
N
i=1
wif(xi) (1.11)
sobre una partici´on del intervalo de integraci´on, y elegir en forma conveniente los
pesos wi y los puntos xi.
Cuando aceptamos que las particiones no sean regulares surge naturalmente la
idea de refinar la partici´on en los subintervalos donde los errores sean muy grandes
y la idea opuesta de agrupar intervalos donde los errores sean excesivamente pe-
que˜nos. Esto nos lleva a los denominados m´etodos adaptativos de integraci´on que
estudiaremos en la secci´on 1.8
1.2. La integral de Riemann–Stieltjes
1.2.1. Definici´on y propiedades.
Definici´on 1.2.1. Sea P = {x0, x1, . . . , xn} una partici´on del intervalo [a, b] y
sea, para cada k, ξk un punto del intervalo [xk−1, xk]. Una suma de la forma
S(P, f, g) =
n
k=1
f(ξk)∆gk (1.12)
(donde ∆gk = g(xk) − g(xk−1)) se llama suma de Riemann-Stieltjes de f respecto
de g. Diremos que f es integrable respecto de g en [a, b] si existe un n´umero I que
satisface la siguiente propiedad: para cada ε > 0, existe una partici´on Pε de [a, b]
tal que, para cada partici´on P m´as fina que Pε y para cada elecci´on de los puntos
ξk del intervalo [xk−1, xk], k = 1, . . . , n, se tiene
|S(P, f, g) − I| < ε (1.13)
Observaci´on 1.2.1. Si un tal n´umero I existe, entonces es ´unico y se representa
por la expresi´on
b
a
f(x)dg(x) (1.14)
Ejemplo 1.2.1. Si g(x) = x entonces la integral se reduce a una integral de
Riemann
Ejemplo 1.2.2. Si g(x) es de clase C1
en [a, b] entonces la integral resulta
b
a
f(x)g (x) dx (1.15)
Nota: Este resultado se demuestra en el teorema D.2.5 en la p´agina 63
4 1. INTEGRACI ´ON
Ejemplo 1.2.3. Si f es continua y g(x) = x entonces la integral resulta
i∈Z
a<i≤b
f(i) (1.16)
y si g(x) = x entonces
i∈Z
a≤i<b
f(i) (1.17)
Nota: Este resultado se demuestra en el teorema D.2.7 en la p´agina 65. Notar la
diferencia entre los l´ımites de suma.
1.2.2. Integraci´on por partes.
Teorema 1.2.2. [F´ormula de integraci´on por partes] Si f es integrable respecto
de g en el intervalo [a, b], en el sentido de Riemann-Stieltjes, entonces g es integrable
respecto de f en el intervalo [a, b], en el sentido de Riemann-Stieltjes, y se tiene
b
a
f(x)dg(x) +
b
a
g(x)df(x) = f(b)g(b) − f(a)g(a) (1.18)
Demostraci´on: Ver el teorema D.2.4 en la p´agina 62
En el ap´endice D en p´agina 59 se desarrollan aspectos elementales de la teor´ıa
de integraci´on de Riemann-Stieltjes siguiendo el texto de Apostol (1976)
1.3. La f´ormula de suma de Euler
Sea {x0, x1, . . . , xn}, donde x0 = a, x1 = a + h, . . . , xn = a + nh = b, una
partici´on regular del intervalo [a, b]. La suma trapezoidal para la integral
b
a
f(x) dx (1.19)
se denota T(h) y resulta ser
T(h) = h
1
2
f0 + f1 + f2 + f3 + . . . + fn−1 +
1
2
fn (1.20)
o bien
T(h) = h
1
2
f0 +
n−1
i=1
fi +
1
2
fn (1.21)
Desear´ıamos demostrar el siguiente teorema
Teorema 1.3.1. Sea T(h) la suma trapezoidal 1.21. Entonces
T(h) =
b
a
f(x) dx +
h2
12
(f (b) − f (a)) (1.22)
−
h4
720
(f(3)
(b) − f(3)
(a)) (1.23)
+
h6
30240
(f(5)
(b) − f(5)
(a)) (1.24)
+ . . . + c2rh2r
(f(2r−1)
(b) − f(2r−1)
(a)) + O(h2r+2
) (1.25)
1.3. LA F ´ORMULA DE SUMA DE EULER 5
Donde los coeficientes {c2r} tienen la funci´on generatriz
1 + c2h2
+ c4h4
+ c6h6
+ . . . =
h
2
eh
+ 1
eh − 1
(1.26)
(para la interpretaci´on detallada de los coeficientes ver el ap´endice E en la
p´agina 67)
1.3.1. El s´ımbolo ‘O’. La notaci´on ‘O grande’ es ´util para representar y
calcular en forma exacta con magnitudes aproximadas. En general la notaci´on
O(f(n)) se usa —si f(n) es una funci´on definida sobre los n´umeros naturales— con
el fin de representar un n´umero xn con el significado de que existe una constante
positiva M tal que el n´umero xn representado por O(f(n)) satisface la condici´on
|xn| ≤ M|f(n)|, ∀n ≥ n0 (1.27)
No damos expl´ıcitamente —en general— las constantes M y n0, las que suelen ser
distintas en cada aparici´on de O
Ejemplo 1.3.1. Sabemos que
n
i=1
i2
=
1
3
n(n +
1
2
)(n + 1) =
1
3
n3
+
1
2
n2
+
1
6
n (1.28)
en consecuencia
n
i=1
i2
= O(n3
) (1.29)
n
i=1
i2
=
1
3
n3
+ O(n2
) (1.30)
La ecuaci´on 1.30 es m´as fuerte que la ecuaci´on 1.29 (Justificar la validez de estas
ecuaciones y la relaci´on entre ambas).
Las siguientes son operaciones v´alidas con la notaci´on ‘O’
f(n) = O(f(n)) (1.31)
cO(f(n)) = O(f(n)), si c es una constante (1.32)
O(f(n)) + O(f(n)) = O(f(n)) (1.33)
O(O(f(n))) = O(f(n)) (1.34)
O(f(n))O(g(n)) = O(f(n)g(n)) (1.35)
O(f(n)g(n)) = f(n)O(g(n)) (1.36)
Nota 1.3.1. La notaci´on ‘ O ’ suele extenderse a la variable real x. Por ejemplo
se escribe
ex
= 1 + x +
1
2!
x2
+
1
3!
x3
+ O(x4
) (1.37)
Una cierta dosis de observaci´on permite resolver la siguiente paradoja.
Ejercicio 1.3.2. ¿Qu´e est´a m´al en el siguiente razonamiento? “Como n =
O(n), 2n = O(n), . . . , se tiene
1≤k≤n
kn =
1≤k≤n
O(n) = 0(n2
)” (1.38)
Notar que es f´acil demostrar que 1≤k≤n kn = O(n3
).
6 1. INTEGRACI ´ON
Ejercicio 1.3.3. Demostrar que si se permite a x tomar valores arbitraria-
mente grandes, entonces, para toda potencia m, ex
= O(xm
)
Este tipo de desarrollos
en potencias de un ope-
rador suele utilizarse en
los cursos elementales de
C´alculo para la f´ormula
del polinomio de Tay-
lor en dos variables in-
dependientes
1.3.2. lgebra de operadores. Si D representa el operador d/dx se tiene
f(x + h) = f(x) + hf (x) +
h2
2!
f (x) +
h3
3!
f (x) + . . . (1.39)
= 1 + hD +
(hD)2
2!
+
(hD)3
3!
+ . . . f(x) (1.40)
= ehD
f(x) (1.41)
donde el operador ehD
debe entenderse definido por la serie, para la que es f´acil
verificar que es normalmente convergente. En consecuencia
f(x + 2h) = ehD
f(x + h) = e2hD
f(x) (1.42)
y as´ı sucesivamente. Utilizamos esta representaci´on de la traslaci´on en la siguiente
f´ormula
T(h) = h
1
2
f0 + f1 + f2 + . . . + fn−1 +
1
2
fn (1.43)
= h
1
2
+ ehD
+ e2hD
+ . . . + e(n−1)hD
+
1
2
enhD
f(x0) (1.44)
= h

−
1
2
+
n−1
j=0
ejhD
+
1
2
enhD

 f(x0) (1.45)
luego, por la f´ormula de la suma geom´etrica,
T(h) = h −
1
2
+
enhD
− 1
ehD − 1
+
1
2
enhD
f(x0) (1.46)
= h
1
ehD − 1
+
1
2
enhD
− 1 f(x0) (1.47)
=
h
2
ehD
+ 1
ehD − 1
enhD
− 1 f(x0) (1.48)
pero
t
2
et
+ 1
et − 1
=
∞
j=0
c2jt2j
(1.49)
para la que, con el Mathematica, se obtiene directamente:
Series[(h/2)(Exp[h]+1)/(Exp[h]-1),{h,0,21}]
2 4 6 8 10
h h h h h
1 + -- - --- + ----- - ------- + -------- -
12 720 30240 1209600 47900160
12 14 16
691 h h 3617 h
------------- + ----------- - ----------------- +
1307674368000 74724249600 10670622842880000
18 20
43867 h 174611 h 22
1.4. M´ETODOS B´ASICOS DE INTEGRACI ´ON NUM´ERICA 7
------------------- - --------------------- + O[h]
5109094217170944000 802857662698291200000
Resulta entonces
T(h) =

1 +
∞
j=1
c2j(hD)2j

 enhD
− 1
D
f(x0) (1.50)
=
enhD
− 1
D
f(x0) +
∞
j=1
c2jh2j
D2j−1
enhD
− 1 f(x0) (1.51)
=
b
a
f(x) dx +
∞
j=1
c2jh2j
f(2j−1)
(b) − f(2j−1)
(a) (1.52)
lo que justifica el enunciado del teorema 1.3.1
1.3.3. La f´ormula de Euler. En el ap´endice E (p´agina 67) demostramos una
f´ormula de suma de Euler que enunciamos a continuaci´on con modificaciones.
Teorema 1.3.2. Supongamos que f es una funci´on suave, de clase C∞
en el
intervalo [a, b]. Sea n ≥ 1, h = (b − a)/n, xj = a + jh, para j = 0, 1, . . . , n. Sea,
adem´as, {x} = x − x . Entonces se tiene
b
a
f(x) dx = h
f(a)
2
+ f(x1) + . . . + f(xn−1) +
f(a)
2
+h
b
a
B1
x − a
h
f (x) dx (1.53)
La demostraci´on est´a presentada en el ap´endice.
Se tiene la siguiente f´ormula de integraci´on por partes (ver 74),
1
m!
b
a
Bm({(x − a)/h})f(m)
(x) dx =
1
(m + 1)!
(Bm+1(1)f(m)
(b) − Bm+1(0)f(m)
(a)
−
1
(m + 1)!
b
a
Bm+1({(x − a)/h})f(m+1)
(x) dx (1.54)
Utilizandola directamente se puede generalizar la f´ormula 1.53 para obtener por
inducci´on el teorema 1.3.1 de la p´agina 4
1.4. M´etodos b´asicos de integraci´on num´erica
En las secciones 4.3 y 4.4 del texto de Burden y Faires (1996) se deducen y des-
arrollan los m´etodos b´asicos simples y compuestos para la determinaci´on num´erica
de la integral
b
a
f(x) dx (1.55)
La deducci´on de los mismos se basa en la aproximaci´on de la funci´on f en el
intervalo (o, en el caso de los m´etodos compuestos, en subintervalos de) [a, b]. La
lectura de las secciones citadas es instructiva puesto que suministra una metodolog´ıa
alternativa para la obtenci´on de las expresiones de los distintos m´etodos respecto
8 1. INTEGRACI ´ON
de la que desarrollaremos a continuaci´on, que se denomina “m´etodo de coeficientes
indeterminados”
1.4.1. El m´etodo de coeficientes indeterminados. Para deducir los m´etodos
b´asicos de integraci´on num´erica mediante este m´etodo reemplazamos la integral por
una suma finita
b
a
f(x) dx
N
i=1
wif(xi) (1.56)
donde los N puntos a ≤ xi ≤ b se eligen en forma conveniente (lo que depender´a de
la aplicaci´on particular) y los coeficientes wi (que son pesos en un sentido general)
se consideran indeterminados al principio y resultan ser las variables que debemos
determinar. Para ello se reemplaza en la expresi´on una familia conveniente de po-
linomios de grado creciente y se utilizan las ecuaciones resultantes para determinar
los wi y, eventualmente, estimar los errores de aproximaci´on del m´etodo.
En una secci´on posterior (ver 1.6 en la p´agina 12) se generalizar´a este m´etodo
para el caso en que se utilizan las ecuaciones para determinar tanto los wi como los
xi.El m´etodo de coeficien-
tes indeterminados es
una alternativa frente a
los m´etodos basados en
la aproximaci´on median-
te polinomios
No se pierde generalidad si se considera que el intervalo de integraci´on es [a, b] =
[−1, 1], o bien [a, b] = [−h, h] por ello realizaremos las cuentas en alguno de estos
intervalos particulares puesto que as´ı las expresiones suelen simplificarse.
1.4.2. El m´etodo trapezoidal. Si utilizamos el producto Mathematica para
obtener los coeficientes las entradas y salidas podr´ıan ser
(* Trapezoidal *)
a0=a;a1=b; (* Defino los puntos *)
p0[x_]:=1; (* Defino los polinomios *)
p1[x_]:=(2x-a-b)/(b-a);
p2[x_]:=((2x-a-b)/(b-a))^2;
s0=A p0[a0] + B p0[a1]//Simplify (* Integraci’on num’erica *)
s1=A p1[a0] + B p1[a1]//Simplify; A + B
i0=Integrate[p0[x],{x,a,b}]//Simplify (* Integro los polinomios *)
i1=Integrate[p1[x],{x,a,b}]//Simplify;
-a + b
Solve[{s0==i0,s1==i1},{A,B}]//Simplify (* Resuelvo el sistema *)
-a + b -a + b
{{A -> ------, B -> ------}}
2 2
Se tiene, adem´as, que el error ε1 para un paso h = b − a se puede escribir
(utilizando la f´ormula de interpolaci´on lineal o utilizando el error para el polinomio
p2(x) del cuaderno de Mathematica precedente) como
ε1(f) = −
(b − a)3
12
f (η), η ∈ [a, b] (1.57)
1.4. M´ETODOS B´ASICOS DE INTEGRACI ´ON NUM´ERICA 9
(Justificar), an´alogamente el εn correspondiente al paso h = (b − a)/n resulta
εn(f) =
n
j=1
−
h3
12
f (ηj)
= −
h3
n
12
1
n
n
j=1
f (ηj) (1.58)
y, por la suavidad de f (∈ C∞
[a, b]) se tiene que
∃η ∈ [a, b]: f (η) =
1
n
n
j=1
f (ηj) (1.59)
en definitiva
εn(f) = −
(b − a)h2
12
f (η) η ∈ [a, b] (1.60)
Si utilizamos la f´ormula del teorema 1.3.1 podemos escribir
εn(f) = −
B2h2
2!
(f (b) − f (a)) + O(h4
) (1.61)
−
h2
12
f (ξ)(b − a) + O(h4
), ξ ∈ [a, b] (1.62)
lo que nos da un resultado del mismo orden.
A partir de la expresi´on 1.58 se puede seguir otra l´ınea deductiva: tomamos
l´ımite,
lim
n→∞
εn(f)
h2
= lim
n→∞

−
h
12
n
j=1
f (ηj)

 (1.63)
= −
1
12
lim
n→∞


n
j=1
f (ηj)h

 (1.64)
pero, en esta expresi´on, xj−1 ≤ ηj ≤ xj, j = 1, . . . , n con lo que la f´ormula 1.64 es
una suma de Riemann, en consecuencia
lim
n→∞
εn(f)
h2
= lim
n→∞
−
1
12
b
a
f (x) dx = −
1
12
(f (b) − f (a)) (1.65)
es decir que
εn(f) εn(f) ≡ −
h2
12
(f (b) − f (a)) (1.66)
εn(f) es una aproximaci´on al error asint´otico lo que podemos establecer en la si-
guiente definici´on:
Definici´on 1.4.1. Sean εn(f) y εn(f), el error exacto y una estimaci´on del
error respectivamente. Decimos que εn(f) es una estimaci´on asint´otica del error
εn(f) si
lim
n→∞
εn(f)
εn(f)
= 1 (1.67)
10 1. INTEGRACI ´ON
Utilizando εn(f) es posible dar un m´etodo trapezoidal corregido TC
h (f)
TC
h (f) = Th(f) + εn(f) (1.68)
es decir
TC
h (f) = h
f0
2
+ f1 + f2 + . . . + fn−1 +
fn
2
−
h2
12
(f (b) − f (a)) (1.69)
Ejercicio 1.4.1. Estudiar el comportamiento num´erico del m´etodo trapezoidal
corregido TC
h (f)
1.4.3. El m´etodo de Simpson. Utilizamos el producto Mathematica para
determinar los coeficientes del m´etodo de Simpson (ver Ap´endice B, p´agina 37)
Obtenemos
S
b − a
2
=
b − a
6
f(a) + 4f(
a + b
2
) + f(b) (1.70)
y un error de truncamiento
(b − a)5
2880
f(4)
(
a + b
2
) (1.71)
lo que equivale a
εt =
b−a
2
5
90
f(4)
(
a + b
2
) (1.72)
En forma an´aloga al caso de m´etodo trapezoidal y utilizando las expresiones
precedentes se tiene que
ε2(f) = −
4 b−a
2
5
15
f(4)
(η)
24
, η ∈ [a, b] (1.73)
= −
b − a
2
5
1
90
f(4)
(η), η ∈ [a, b] (1.74)
y
εn(f) = −
h5 n
2
90
2
n
n
2
j=1
f(4)
(ηj)
= −
h4
(b − a)
180
f(4)
(η), η ∈ [a, b] (1.75)
y la f´ormula asint´otica
εn(f) = −
h4
180
(f(3)
(b) − f(3)
(a)) (1.76)
(Esta ´ultima tambi´en se obtiene a partir del desarrollo asint´otico de Euler)
1.4.4. M´etodos de Newton. En la secci´on precedente hemos obtenido la
f´ormula del m´etodo de Simpson. La misma metodolog´ıa se puede utilizar para
cualquier elecci´on de los puntos de la partici´on del intervalo de integraci´on. Por
ejemplo, si desearamos calcular los que corresponden a una partici´on regular de
once puntos, nuevamente utilizamos el producto Mathematica para obtener los co-
eficientes (ver ap´endice B en p´agina 37).
Estos m´etodos llevan el nombre de m´etodos de Newton, y en algunos textos
tambi´en el de f´ormulas de Newton-Cotes.
1.5. M´ETODOS DE EXTRAPOLACI ´ON 11
1.5. M´etodos de extrapolaci´on
En esta secci´on utilizaremos la expresi´on que calculamos para el error en el
m´etodo trapezoidal para ejemplificar el uso de los m´etodos de extrapolaci´on repe-
tida de Richardson.
Supongamos que b0 = I(0) es la integral que deseamos calcular y que, para el
paso h se tiene
I(h) = b0 + b1h2
+ b2h4
+ b3h6
+ . . . (1.77)
(f´ormula que sabemos v´alida para el mencionado m´etodo trapezoidal). El error de
truncamiento es
I(h) − b0 =
n−1
i=1
bih2i
+ O(h2n
) (1.78)
de modo que, con 1.77 y
I(
h
2
) = b0 + b1
h2
4
+ b2
h4
16
+ b3
h6
64
+ . . . (1.79)
se obtiene efectuando ‘4 por (1.79) − (1.77)’
4I(
h
2
) − I(h) = 3b0 −
3
4
b2h4
−
15
16
b3h6
+ . . . (1.80)
y, dividiendo por el coeficiente de b0
I(1)
(h) = I(0)
(
h
2
) +
I(0)
(h
2 ) − I(0)
(h)
3
= b0 −
1
4
b2h4
−
5
16
b3h6
+ . . . (1.81)
(ver la secci´on C.2 en el ap´endice, donde se deducen estas expresiones con el Mat-
hematica). El error de truncamiento es
I(1)
(h) − b0 = −
1
4
b2h4
−
5
16
b3h6
+ . . . (1.82)
Si repetimos este c´alculo (ver C.2) se obtiene
I(0)
(h) = I(h) (1.83)
I(1)
(h) = I(0)
(
h
2
) +
I(0)
(h
2 ) − I(0)
(h)
22 − 1
(1.84)
I(2)
(h) = I(1)
(
h
2
) +
I(1)
(h
2 ) − I(1)
(h)
24 − 1
(1.85)
... (1.86)
I(j+1)
(h) = I(j)
(
h
2
) +
I(j)
(h
2 ) − I(j)
(h)
22j+2 − 1
(1.87)
y, en general,
I(j)
(h) = b0 + O(h2j+2
) (1.88)
El esquema resultante es que cada elemento de la segunda columna se obtiene
con los dos inmediatos a su izquierda, cada vez que se calcula una aproximaci´on
con paso m´as fino se puede calcular una antidiagonal de la tabla, y, por ´ultimo, el
criterio de detenci´on es que dos valores en la misma columna difieran en menos que
un valor de tolerancia preestablecido.
12 1. INTEGRACI ´ON
Tabla 1. Extrapolaci´on de Richardson (M´etodo de Romberg)
I(0)
(h) I(1)
(h) I(2)
(h) I(3)
(h) I(4)
(h) . . .
I(0)
(h
2 ) I(1)
(h
2 ) I(2)
(h
2 ) I(3)
(h
2 ) . . .
I(0)
(h
4 ) I(1)
(h
4 ) I(2)
(h
4 ) . . .
I(0)
(h
8 ) I(1)
(h
8 ) . . .
I(0)
( h
16 ) . . .
...
1.6. Cuadratura de Gauß
La expresi´on aproximada
N
i=1
wif(xi) (1.89)
para la integral
b
a
f(x) dx es mucho m´as ´util si no se escogen de antemano los
puntos xi. El problema de hallar los puntos y los pesos de modo que la expresi´on
sea exacta para polinomios del mayor grado posible es resoluble y conduce a los
m´etodos de integraci´on de Gauß.
En el ap´endice B (p´agina 37) incluimos un cuaderno del Mathematica que
calcula los coeficientes para un m´etodo de Gauß de tres puntos (se realiza en el
intervalo [−1, 1], pero un simple cambio de variables permite extenderlo a cualquier
intervalo [a, b])
Es conveniente, si embargo, atacar el problema de cuadratura en un contexto
un poco m´as general.
Sea v una funci´on de peso positiva en el intervalo [−1, 1], si x0, x1, . . . , xm se
eligen como los ceros del polinomio pm+1 de grado m+1 en la familia de polinomios
ortogonales asociada a v(x), entonces la f´ormula
1
−1
f(x)v(x) dx w0f0 + w1f1 + . . . + wmfm (1.90)
es exacta para todos los polinomios de orden 2m + 2 siempre que los coeficientesLa inclusi´on de la fun-
ci´on peso v facilita con-
siderar distintas familias
de polinomios ortogona-
les
satisfagan
wi =
1
−1
δi(x)v(x) dx (1.91)
donde δi(x) es el polinomio de grado m (orden m + 1) tal que
δi(xj) =
0 j = i
1 j = i
j = 0, 1, 2, . . . , m (1.92)
Para verificar esta afirmaci´on tomemos un polinomio f de orden 2m + 2, existen
entonces polinomios q y r de orden m + 1 tales que
f = qpm+1 + r (1.93)
1.7. M´ETODOS DE MONTECARLO 13
Por lo tanto, debido a la ortogonalidad de la familia {pi}
1
−1
f(x)v(x) dx =
1
−1
q(x)pm+1(x)v(x) dx +
1
−1
r(x)v(x) dx =
1
−1
r(x)v(x) dx
(1.94)
Asimismo, dado que xi es un cero de pm+1, i = 0, 1, . . . , m, se tiene
m
i=0
wifi =
m
i=0
wiq(xi)pm+1(xi) +
m
i=0
wir(xi) =
m
i=0
wir(xi) (1.95)
pero, tambi´en se tiene
1
−1
r(x)v(x) dx =
m
i=0
wir(xi) (1.96)
porque los coeficientes wi fueron elegidos de modo que la f´ormula sea exacta para
todos los polinomios de grado m o menor (orden m + 1)
Observaci´on 1.6.1. Aplicando la f´ormula 1.90 al caso f(x) = (δi(x))2
se tiene
(fj = 0 para j = i)
1
−1
(δi(x))2
v(x) dx = wi (1.97)
por lo que los coeficientes wi en las f´ormulas de cuadratura de Gauß son positivos.
Observaci´on 1.6.2. Para obtener los coeficientes se toman los xi como los
ceros de los polinomios del orden deseado y se utiliza un calculador simb´olico como
el Mathematica para obtener los coeficientes y para estimar el error de trunca-
miento local. En diversos manuales de f´ormulas matem´aticas figuran los puntos y
coeficientes de Gauß para distintas familias de polinomios y distintos ´ordenes.
El an´alisis del error puede desarrollarse en forma an´aloga a los casos conside-
rados previamente, por ello dejamos los detalles para el lector interesado.
1.7. M´etodos de Montecarlo
En esta secci´on consideramos un m´etodo conceptualmente distinto, respecto de
los anteriormente presentados, para obtener aproximaciones a las integrales
b
a
f(x) dx (1.98)
Suponemos que se posee una definici´on de la funci´on f, por ejemplo en un
m-file de Matlab
function y = mifun(x)
% MIFUN define mi funci’on
[mx,nx]=size(x)
if (mx == 1) & (nx == 1)
y = 2 * x;
else
disp(’error’);
end % if
o, tambi´en, si la funci´on est´a dada por N puntos en un tabla mif de N × 2 donde
mix=mif(:,1) y miy=mif(:,2), se la calcula, por ejemplo, mediante y=spline(mix,miy,x)
´o bien y=interp1(mix,miy,x) seg´un se desee.
14 1. INTEGRACI ´ON
Para la funci´on f se determinan
Mf = sup
a≤x≤b
f(x) (1.99)
y
mf = inf
a≤x≤b
f(x) (1.100)
(en realidad basta que se tomen cotas superior e inferior respectivamente). El
m´etodo se aplica entonces a la funci´on f(x) = f(x) − mf que resulta no negativa y
con su gr´afico contenido en el rect´angulo R = [a, b] × [0, Mf − mf], y consiste en lo
siguiente. Se hallan P puntos al azar en el rect´angulo R y se determina el n´umeroLa funci´on rand permi-
te obtener puntos al azar
en un dominio
Pf de los que se encuentran en el ´area que deseamos aproximar. A continuaci´on se
calcula la estimaci´on del ´area mediante la expresi´on
(b − a) (Mf − mf)
Pf
P
+ mf (1.101)
En la secci´on C.3 incluimos ejemplos de integrales de Montecarlo.
Este m´etodo no suele ser utilizado para el caso de ´areas puesto que existen
buenos m´etodos de cuadratura (como los ya estudiados), sin embargo, el caso de
los vol´umenes o hipervol´umenes es distinto. Supongamos que se desea conocer el
volumen de la intersecci´on de 5 cuerpos que se cortan en el espacio Eucl´ıdeo tridi-
mensional, y que adem´as, se desea distinguir la parte de la intersecci´on que perte-
nece a un sexto cuerpo de aquella que no est´a contenida en el mismo. El intento de
obtener la integral por m´etodos cl´asicos o num´ericos puede ser de una complejidad
excesiva a´un para casos de cuerpos definidos por ecuaciones muy simples. El uso
del m´etodo de Montecarlo permite superar estas dificultades.
1.7.1. Determinaci´on de un volumen. En esta secci´on calcularemos el vo-
lumen del s´olido que resulta de la intersecci´on, en el primer octante, de los cilindros
x2
+ z2
= 1 (1.102)
y
y2
+ (z −
1
2
)2
= 1 (1.103)
En primer t´ermino atacamos el problema con Matlab, a continuaci´on desarro-
llamos un cuaderno del Mathematica en el que obtenemos una soluci´on similar para
‘verificar’.
% MONTEK volumen por m’etodo de Montecarlo
% C.E.Neuman, 11-may-97
rand(’seed’,sum(100*clock)); % inicializa el generador de n’umeros al azar
scores=[]; % en esta variable se acumulan los resultados
NN=20; % da el numero de cubitos por lado
N=NN^4; % da el numero total de puntos
h=1/NN; % da el paso (dimension del cubito)
for indice=1:10,
X=zeros(N,3);
for i=1:NN, % construcci’on de los puntos al azar
1.7. M´ETODOS DE MONTECARLO 15
im1=i-1; % en cada cubito
for j=1:NN,
jm1=j-1;
for k=1:NN,
km1=k-1;
ps = rand(NN,3);
ini=im1*NN*NN*NN+jm1*NN*NN+km1*NN+1;
fin=ini-1+NN;
X(ini:fin,:) = [ps(:,1)+i-1 ps(:,2)+j-1 ps(:,3)+k-1]*h;
end % rof
end % rof
disp(i);
end % rof
x=X(:,1);
y=X(:,2); % asignaci’on de coordenadas al azar
z=X(:,3);
%%% la siguiente variable calcula los valores de las funciones
%%% de corte para las variables:
TEST=[y.*y+4*(z-0.5).*(z-0.5) x.*x+z.*z];
%%% en I se seleccionan los ’{i}ndices correspondientes a puntos
%%% contenidos en el volumen que se desea medir (intersecci’on
%%% de los dos cuerpos definidos por las expresiones de TEST)
I=find( (TEST(:,1)<=1) & (TEST(:,2)<=1) );
[mI,nI]=size(I);
scores=[scores; mI/N]; % acumulaci’on del resultado
disp(indice);
end % rof
mime=mean(scores)
mide=std(scores)
scorord=sort(scores);
[m,n]=size(scores);
mimeord=mean(scores(0.1*m:0.9*m))
mideord=std(scores(0.1*m:0.9*m))
figure;
hist(scores);
% Salidas del programa precedente
%mime =
% 0.6352
%mide =
% 3.8221e-004
%mimeord =
% 0.6352
%mideord =
% 4.0451e-004
%scores =
% 0.6349
% 0.6347
% 0.6356
% 0.6356
% 0.6347
% 0.6356
16 1. INTEGRACI ´ON
% 0.6350
% 0.6356
% 0.6356
% 0.6352
Esta regularidad se ve confirmada por el siguiente cuaderno del Mathematica
(* M’etodo de Montecarlo para integrales triples
C’alculo num’erico de la integral *)
(* Determino el l’{i}mite de separaci’on *)
Solve[4(1-x^2)==(1+Sqrt[1-y^2])^2,y]
2 2
{{y -> -Sqrt[-4 + 4 x - 4 Sqrt[1 - x ]]},
2 2
{y -> Sqrt[-4 + 4 x - 4 Sqrt[1 - x ]]},
2 2
{y -> -Sqrt[-4 + 4 x + 4 Sqrt[1 - x ]]},
2 2
{y -> Sqrt[-4 + 4 x + 4 Sqrt[1 - x ]]}}
(* Defino el l’{i}mite de integraci’on *) f[x_]:=Sqrt[-4+4x
x+4Sqrt[1-x x]]
(* Determino el punto de separaci’on *) Solve[f[x]==1,x]
-Sqrt[3] -Sqrt[3] Sqrt[3]
{{x -> --------}, {x -> --------}, {x -> -------},
2 2 2
Sqrt[3]
{x -> -------}}
2
(* Defino el punto de separaci’on *) c=Sqrt[3]/2 Sqrt[3]
-------
2
(* Defino los extremos de integraci’on *)
geu[x_,y_]:=(1/2)(1+Sqrt[1-y y]) ged[x_,y_]:=(1/2)(1-Sqrt[1-y y])
fcu[x_,y_]:=Sqrt[1-x x]
(* Calculo las integrales en forma num’erica *)
I1=NIntegrate[1,{x,0,c},{y,f[x],1},{z,ged[x,y],geu[x,y]}]
I2=NIntegrate[1,{x,0,c},{y,0,f[x]},{z,ged[x,y],fcu[x,y]}]
I3=NIntegrate[1,{x,c,1},{y,0,f[x]},{z,ged[x,y],fcu[x,y]}] I1+I2+I3
0.244751 0.358503 0.0320788 0.635332 (* valor de la integral
*)
1.8. M´etodos adaptativos
En el ´ultimo ap´endice (F, p´agina 75) se propone un laboratorio de Matem´atica
orientado a estudiar algoritmos adaptativos para la integraci´on num´erica.
En la secci´on C.4, en la p´agina 53, se incluye —para ilustraci´on— el c´odigo
de una funci´on de Matlab, adaptada de la denominada quad, que implementa un
algoritmo adaptativo recursivo de bajo orden basado en el m´etodo de Simpson. La
1.9. EJERCICIOS 17
funci´on miquad es en realidad un driver que llama a la verdadera funci´on recursiva
que se denomina miquadst la que realiza cada paso de la recursi´on.
1.8.1. Comparaci´on entre NIntegrate y quad. Calculamos el ´area bajo
la curva normal, que puede encontrarse en cualquier tabla estad´ıstica, utilizando
las funciones NIntegrate del Mathematica y quad de Matlab. La primera da (los
resultados de medici´on de tiempos se expresan en segundos)
(* Calculo con el Mathematica *)
f[x_]:=(1/Sqrt[2Pi]) E^(-x^2/2);//Timing
{0. Second, Null}
NIntegrate[f[x],{x,0,1}]//Timing
{0.11 Second, 0.341345}
N[NIntegrate[f[x],{x,0,1}],15]//Timing
{0.11 Second, 0.341344746068543}
Para la segunda es necesario definir en un m-archivo la funci´on que se desea
integrar:
function y=nintquad(x)
% NINTQUAD Densidad normal
%%% C.E.Neuman, 10 de mayo de 1997
y=(1/sqrt(2*pi))*exp(-x.^2/2);
% fin de nintquad
La salida y la medici´on del tiempo empleado con Matlab es
Salidas de la integraci’on adaptativa con Matlab t=cputime;
Q=quad1(’nintquad’,0,1); cputime-t, Q ans =
0.06
Q =
0.34134540613909
t=cputime; Q=quad1(’nintquad’,0,1,1e-5); cputime-t, Q
ans =
0.11
Q =
0.34134474647804
t=cputime; Q=quad1(’nintquad’,0,1,1e-7); cputime-t, Q
ans =
0.6
Q =
0.34134474607765
t=cputime; Q=quad1(’nintquad’,0,1,1e-9); cputime-t, Q
ans =
2.47
Q =
0.34134474606860
Observamos que, en esta medici´on, —la que, al margen, no es muy precisa,—
parece que la primera metodolog´ıa es m´as eficiente que la segunda.
1.9. Ejercicios
Ejercicio 1.9.1. Utilizar el m´etodo de Romberg para calcular la integral
4
0
f(x) dx (1.104)
18 1. INTEGRACI ´ON
donde f(x) est´a definida por la siguiente tabla:
x 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0
f(x) −4271 −2522 −499 1795 4358 7187 10279 13633 17247
¿Son necesarios todos los valores?
Ejercicio 1.9.2. Probar que la f´ormula
1
−1
f(x) dx
1
9
5f −
3
5
+ 8f(0) + 5f
3
5
(1.105)
es exacta para polinomios de quinto grado, y aplicarlo al c´alculo de
1
0
sin x
1 + x
dx (1.106)
Ejercicio 1.9.3. (a) Deducir una f´ormula de integraci´on de Gauß de dos
puntos para integrales de la forma
1
−1
f(x)(1 + x2
) dx (1.107)
que sea exacta cuando f(x) es un polinomio de grado 3.
(b) Aplicar la f´ormula a f(x) = x4
. Usar el resultado para obtener una
aproximaci´on del resto.
Ejercicio 1.9.4. Supongamos que una integral numericamente aproximada se
representa mediante el s´ımbolo In donde n es el n´umero de subdivisiones del inter-
valo de integraci´on. Si se calculan los valores de In para alg´un m´etodo num´erico,
analizar en forma emp´ırica la velocidad de convergencia de In a I (el valor de la
integral calculada exactamente) mediante los cocientes
Rn =
I2n − In
I4n − I2n
(1.108)
Dar ejemplos y explicar los resultados.
Ejercicio 1.9.5. [Optativo] Considerar el conjunto S1 de funciones definidas
en el intervalo [a, b] de la siguiente forma. Sea n > 0, h = (b−a)/n, tj = a+jh, para
j = 0, 1, . . . , n. Sea f(x) definida por la propiedad de ser lineal en cada subintervalo
[tj−1, tj], para j = 1, . . . , n. Mostrar que este conjunto de funciones f, para todo
n ≥ 1, es denso en el conjunto C[a, b] de funciones continuas en el intervalo [a, b].
Ejercicio 1.9.6. Obtener f´ormulas de integraci´on de Gauß para
I =
1
0
xf(x) dx
n
j=1
wjf(xj) (1.109)
con funci´on peso w(x) = x
Ejercicio 1.9.7. Considerar la siguiente tabla de integrales aproximadas In
obtenidas mediante la regla de Simpson. Predecir el orden de convergencia de la
sucesi´on de In a la integral I:
1.9. EJERCICIOS 19
n In
2 0.28451779686
4 0.28559254576
8 0.28570248748
16 0.28571317731
32 0.28571418363
64 0.28571427643
Es decir que, si I − In c/np
, entonces, ¿cu´anto vale p? El resultado ¿resulta ser
una forma v´alida para el error de estos datos? Predecir un valor de c y del error en
I64. ¿Qu´e valor de n es necesario alcanzar para que el error en In sea menor que
10−11
?
Ejercicio 1.9.8. Denotamos IT
n a la regla trapezoidal para aproximar la inte-
gral
b
a
f(x) dx, y, analogamente, IM
n para la f´ormula de ‘midpoint’. Los respectivos
errores asint´oticos —en el caso en que f sea suficientemente regular en [a, b],— son
I − IT
n = −
h2
12
[f (b) − f (a)] + O(h4
) (1.110)
y
I − IM
n =
h2
24
[f (b) − f (a)] + O(h4
) (1.111)
Utilizar estos resultados para obtener un nuevo m´etodo num´erico, In, con orden
de convergencia mayor, combinando IT
n y IM
n . ¿Cu´ales son los pesos de la nueva
f´ormula In?
CAP´ıTULO 2
Ecuaciones diferenciales
2.1. Introducci´on
Decimos que la ecuaci´on diferencial ordinaria
y = f(x, y) (2.1)
en una funci´on inc´ognita y, con f(x, y) funci´on continua en un dominio D del
plano, tiene una soluci´on y(x) en un intervalo x0 ≤ x ≤ x1, si y(x) es una fuci´on
diferenciable, (x, y(x)) est´a en el dominio D para cada x del intervalo [x0, x1] y,
adem´as, y (x) = f(x, y(x)) en [x0, x1].
Desde el punto de vista geom´etrico podemos considerar que la ecuaci´on y =
f(x, y) define un campo continuo de direcciones sobre D. Y que las funciones
soluci´on son tangentes a esas direcciones (en cada punto del dominio). El campo de direcciones
permite estimar
gr´aficamente las
trayectorias
T
E
0
y
x1 2 3
1
2
3
d e
e
f
f
e
e
g
g
i
i
f
f
i
i
d e
e
f
f
e
e
g
g
i
i
f
f
i
i
r r r
r r r
r r
Figura 1. Campo de direcciones de f(x, y) = −xy
Ejemplo 2.1.1. Sea la ecuaci´on diferencial y = −xy, entonces y /y = −x y es
posible integrar ambos miembros obteniendo log y = −x2
/2 + C , expresi´on de la
que tomando la exponencial de ambos miembros se deduce la soluci´on general
y(x) = Ce−x2
/2
(2.2)
de la ecuaci´on diferencial. En la figura 1 esquematizamos el campo de direcciones
definido por f(x, y) = −xy. (En cada punto (x, y) dibujamos un peque˜no segmento
en la direcci´on de la recta por el punto con pendiente −xy.)
Una soluci´on
ε-aproximada difiere
casi uniformemente de
la soluci´on en menos de
ε
21
22 2. ECUACIONES DIFERENCIALES
Definici´on 2.1.1. Sea f(x, y) una funci´on continua definida en el dominio D.
Una funci´on y(x), definida en el intervalo [x1, x2], es una soluci´on (aproximada) de
y = f(x, y) con error menor que ε si
(i) (x, y(x)) ∈ D, x1 ≤ x ≤ x2
(ii) y(x) es continua en [x1, x2]
(iii) y(x) tiene derivada continua a trozos en [x1, x2] que puede no estar defi-
nida en un n´umero finito de puntos del intervalo [x1, x2], llam´emoslos ξ1,
ξ2, . . ., ξn
(iv) |y (x) − f(x, y(x))| ≤ ε, x1 ≤ x ≤ x2, x = ξi, i = 1, 2, . . . , n.
Una vez definidas las soluciones aproximadas de una ecuaci´on diferencial de-
seamos demostrar un resultado de existencia de las mismas que, adem´as, resulta
constructivo, puesto que nos da un m´etodo para obtener la aproximaci´on
Teorema 2.1.1. Sea (x0, y0) un punto del dominio D (de la definici´on 2.1.1)
y supongamos que el rect´angulo R = {|x − x0| ≤ a, |y − y0| ≤ b} est´a contenido en
D. Sea |f(x, y)| ≤ M, (x, y) ∈ R. Entonces, si h = min(a, b/M), puede construirse
una soluci´on aproximada y(x) de y = f(x, y) en el intervalo |x − x0| ≤ h, tal que
y(x0) = y0, donde el error ε puede ser un n´umero positivo arbitrariamente peque˜no.
Notar que h es independiente de ε.
S
R
α
O
P
Qh E'
Mh
c
T(x0, y0)
(x0 + h, y0)
5
5
5
5
5
5
5
5
5
5
™
™
™
™
™
™
™
™
™
™
333s
(x1, y1)
4
4
4
4
222
Figura 2. El rect´angulo S est´a contenido en el R
Demostraci´on: El rect´angulo S = {|x − x0| ≤ h, |y − y0| ≤ Mh} est´a contenido
en R por la definici´on de h (ver la figura 2). Supongamos dado el ε del teorema.
Como f(x, y) es continua en S, resulta uniformemente continua en S; es decir que,
dado ε > 0 (que lo tomamos como el del teorema) existe δ > 0 tal que si |˜x−x| ≤ δ
y |˜y − y| ≤ δ con (˜x, ˜y) ∈ S y (x, y) ∈ S, entonces
|f(˜x, ˜y) − f(x, y)| ≤ ε (2.3)
Sea x1, . . . , xn−1 un conjunto de puntos tales que: x0 < x1 < x2 < · · · <
xn−1 < xn = x0 + h, y
xi − xi−1 ≤ min(δ, δ/M), i = 1, . . . , n (2.4)
2.2. M´ETODOS EN DIFERENCIAS DE UN PASO 23
Construiremos la soluci´on aproximada en el intervalo x0 ≤ x ≤ x0 + h; un
proceso similar permite definirla en el intervalo x0 − h ≤ x ≤ x0.
La soluci´on aproximada ser´a una poligonal construida de la siguiente manera:
desde (x0, y0) se dibuja un segmento hacia la derecha con pendiente f(x0, y0), este
corta la recta x = x1 en un punto (x1, y1). Desde (x1, y1) se dibuja un segmento
hacia la derecha con pendiente f(x1, y1), que corta la recta x = x2 en y2; etc. El
punto (x1, y1) debe pertenecer al tri´angulo OQP de la figura 2 porque el ´angulo α
se toma de modo que tan α = M, y |f(x0, y0)| ≤ M. Por motivos an´alogos (x2, y2)
tambi´en est´a en OQP; etc. En consecuencia el proceso puede continuarse hasta
xn = x0 + h, porque la ´unica raz´on por la que podr´ıa detenerse ser´ıa que f(xk, yk)
no estuviese definida, caso en el que se tendr´ıa |yk −y0| > Mh lo que ser´ıa contrario
a la construcci´on. Podemos definir y(x) por las f´ormulas recursivas
y(x) = yi−1 + (x − xi−1)f(xi−1, y(xi−1)) (2.5)
donde
yi−1 = y(xi−1), xi−1 ≤ x ≤ xi, i = 1, . . . , n (2.6)
Por su definici´on y(x) es admisible, continua, y tiene derivada continua a trozos
y (x) = f(xi−1, y(xi−1), xi−1 < x < xi, i = 1, . . . , n (2.7)
que no est´a definida solamente en los puntos xi, i = 1, . . . , n − 1. Adem´as, si
xi−1 < x < xi
|y (x) − f(x, y(x))| = |f(xi−1, yi−1) − f(x, y(x))| (2.8)
Pero, por 2.4 |x − xi−1| < min(δ, δ/M), y, por 2.5
|y − yi−1| ≤ M|x − xi−1| ≤ M
δ
M
= δ (2.9)
En consecuencia, por 2.3
|f(xi−1, yi−1) − f(x, y(x))| ≤ ε (2.10)
y
|y (x) − f(x, y(x))| ≤ ε, x = xi, i = 1, 2, . . . , n − 1 (2.11)
Resulta as´ı que y(x) satisface todas las condiciones de la definici´on previa y la
construcci´on requerida por el teorema ha sido completada.(ver ap´endice H)
Este m´etodo de construir una soluci´on aproximada se conoce como m´etodo de
Euler. Es innecesario mejorar el valor del h del teorema porque, en general, se
puede demostrar que y(x) est´a definida en un intervalo mayor que |x − x0| ≤ h.
2.2. M´etodos en diferencias de un paso
2.2.1. M´etodos de Euler y retroEuler. El m´etodo de Euler para la reso-
luci´on aproximada de la ecuaci´on diferencial
y = f(x, y)
y(x0) = y0
(2.12)
se puede formular as´ı: M´etodo de Euler
yn+1 = yn + hf(xn, yn), n ≥ 0 (2.13)
donde h es de ahora en adelante el paso del m´etodo en estudio.
24 2. ECUACIONES DIFERENCIALES
En cada paso se cambia de miembro de la familia de soluciones de la ecuaci´on
diferencial, de manera que la precisi´on del m´etodo deber´a depender de la estabi-
lidad de las ecuaciones. Si las ecuaciones son estables, los errores en los primeros
pasos tendr´an peque˜no efecto posterior. Definimos provisoriamente la noci´on de
estabilidad de un m´etodo num´erico en funci´on de su comportamiento para resolver
la ecuaci´on diferencial y = λy con λ un n´umero complejo. La regi´on de estabilidad
absoluta es entonces el subconjunto de puntos hλ del plano complejo con h ≥ 0 para
los que una perturbaci´on en un ´unico valor yn produce una sucesi´on de cambios en
los siguientes valores que no crecen de paso a paso.Estabilidad del m´etodo
de Euler
Ejemplo 2.2.1. Para el m´etodo de Euler se tiene
yn+1 = yn + λhyn = (1 + λh)yn (2.14)
de modo que este m´etodo es absolutamente estable en la regi´on |1 + λh| ≤ 1 que es
el c´ırculo unitario del plano complejo centrado en el punto (−1, 0).
Ejemplo 2.2.2. El m´etodo de Euler aplicado a la ecuaci´on del ejemplo 2.1.1
resulta ser
yn+1 = yn − hxnyn = (1 − hxn)yn (2.15)
El m´etodo de Euler puede obtenerse tambi´en del siguiente razonamiento. Se
reemplaza la derivada y en la ecuaci´on
y (x) = f(x, y) (2.16)
por un cociente de incrementos en (xn, yn) para obtener
yn+1 − yn
h
= f(xn, yn) (2.17)
resultando el m´etodo al despejar la ecuaci´on para yn+1. Si, en cambio, se utiliza el
mismo cociente, pero en (xn+1, yn+1), se obtiene
yn+1 − yn
h
= f(xn+1, yn+1) (2.18)
lo que conduce al m´etodo denominado “retroEuler” (backward Euler)M´etodo de retroEuler
yn+1 = yn + hf(xn+1, yn+1) (2.19)
que tiene la caracter´ıstica especial de ser impl´ıcito y requiere la soluci´on de una
ecuaci´on en cada paso.
Ejemplo 2.2.3. Para el m´etodo retroEuler se tiene
yn+1 = yn + λhyn+1 (2.20)
es decir que luego de despejar yn+1
yn+1 =
1
1 − λh
yn (2.21)
de modo que este m´etodo es absolutamente estable en la regi´on |1/(1 − λh)| ≤ 1
v´alida en el semiplano de partes reales no positivas del plano complejo.
Estabilidad del m´etodo
retroEuler
2.2. M´ETODOS EN DIFERENCIAS DE UN PASO 25
Ejemplo 2.2.4. El m´etodo retroEuler aplicado a la ecuaci´on del ejemplo 2.1.1
resulta ser
yn+1 = yn − hxn+1yn+1 (2.22)
es decir
yn+1 =
1
(1 + hxn+1)
yn (2.23)
2.2.2. M´etodos de Runge–Kutta. Nuestro siguiente objetivo es generalizar
el m´etodo de Euler utilizando los desarrollos en polinomios de Taylor pero limitando
lo m´as posible el c´alculo de derivadas de las funciones involucradas. Recordemos
que en este m´etodo se puede escribir
yh(x) = y(x) + hD(x) + O(h2
) (2.24)
y que para el paso mitad
yh/2(x) = y(x) + (h/2)D(x) + O(h2
) (2.25)
(¿porqu´e?) y que aplicando la extrapolaci´on (de Richardson) para eliminar D(x)
y(x) = 2yh/2(x) − yh(x) + O(h2
) (2.26)
Apliqu´emosla a un paso de longitud h, se tiene
yh(xn + h) = yn + hf(xn, yn) (2.27)
y para medio paso
yh/2(xn + (h/2)) = yn + (h/2)f(xn, yn) (2.28)
en consecuencia
yh/2(xn + h) = yn + (h/2)f(xn, yn)
+(h/2)f(xn + (h/2), yn + (h/2)f(xn, yn)) (2.29)
luego, aplicando la extrapolaci´on,
y(xn+1) = 2yn + hf(xn, yn) + hf(xn + (h/2), yn + (h/2)f(xn, yn))
−yn − hf(xn, yn) + O(h2
) (2.30)
y simplificando
yn+1 = yn + hf(xn + (h/2), yn + (h/2)f(xn, yn)) (2.31)
En definitiva, podemos escribir
yn+1 = yn + hϕ(xn, yn, h; f) (2.32)
con Primera f´ormula de
Rungeϕ(x, y, h; f) = f(x + (h/2), y + (h/2)f(x, y)) (2.33)
¿En qu´e consiste esta primera f´ormula de Runge en forma gr´afica?
En la figura 3 representamos el efecto de aplicar la primera f´ormula de Runge
en el paso de xn a xn+1.
Notemos que para el m´etodo de Euler se puede definir en forma an´aloga ϕ(x, y, h; f) =
f(x, y).
Ejercicio 2.2.5. ¿Es posible expresar en esta notaci´on el m´etodo de retroEu-
ler?
26 2. ECUACIONES DIFERENCIALES
T
E
0
y
xxn xn+1









¨¨
¨¨¨
¨


Runge 10
Eulerr
r un(xn+1)r
Figura 3. Primer m´etodo de Runge
Para estudiar la estabilidad aplicamos la f´ormula a la ecuaci´on y = λy. Se
tiene yn+1 = yn + hλ(yn + (h/2)λyn) = yn(1 + hλ + 1
2 h2
λ2
) raz´on por la cual debe
tenerse que |1 + hλ + 1
2 h2
λ2
| ≤ 1. Estabilidad de la
primera f´ormula de
Runge
Este primer m´etodo de Runge es generalizaci´on del de Euler. Aunque existen
otras posibles generalizaciones, por ejemplo utilizando series de potencias, el pro-
blema es que hay que derivar la funci´on f. La idea de Runge fue dar f´ormulas que
se originan en tomar combinaciones de valores de f(x, y) en puntos adecuadamente
elegidos para obtener, sin derivaciones, expresiones cuyos desarrollos coincidan en
sus primeros t´erminos con la serie de potencias desarrollada en el entorno del punto.
Esas f´ormulas fueron mejoradas por Heun y por Kutta.
Llamaremos m´etodo de Runge-Kutta (RK) a
yn+1 = yn + hϕ(xn, yn, h; f), n ≥ 0 (RK) (2.34)
y en lo que sigue determinaremos diversas elecciones para ϕ. Es natural esperar
que ϕ(x, y(x), h; f) y (x) = f(x, y(x)) si h es peque˜no. El error de truncamiento
local es en este m´etodo
εn+1(y) = y(xn+1) − y(xn) − hϕ(xn, y(xn), h; f), n ≥ 0 (2.35)
♣ Ilustremos la deducci´on de distintas ϕ en el caso de segundo orden de aproxima-
ci´on. La propuesta es
ϕ(x, y, h; f) = γ1f(x, y) + γ2f(x + αh, y + βhf(x, y)) (2.36)
donde deben determinarse las constantes γ1, γ2, α, y β. Para ello desarrollemos el
error de truncamiento local en ´este m´etodo
εn+1(y) = Y (xn+1) − Y (xn) − hϕ(xn, Y (xn), h; f), n ≥ 0 (2.37)
en potencias de h
εn+1(y) = hYn +
h2
2
Yn +
h3
6
Yn + O(h4
) − hϕ(xn, Yn, h; f) (2.38)
2.2. M´ETODOS EN DIFERENCIAS DE UN PASO 27
donde (la notaci´on fx significa ∂f/∂x y analogamente para las derivadas parciales
de orden superior)
y = f (2.39)
y = fx + fyy = fx + fyf (2.40)
y = fxx + fxyf + (fyx + fyyf)f + fy(fx + fyf) (2.41)
= fxx + 2fxyf + fyyf2
+ fyfx + f2
y f (2.42)
y
ϕ(x, y, h; f) = γ1f(x, y) + γ2(f(x, y) + h(αfx + βffy)
+h2
(
1
2
α2
fxx + αβfxyf +
1
2
β2
fyyf2
)) + O(h3
) (2.43)
Sustituyendo y agrupando t´erminos en potencias de h se obtiene
εn+1 = h(1 − γ1 − γ2)f + h2
((
1
2
− γ2α)fx + (
1
2
− γ2β)ffy)
+h3
((
1
6
−
1
2
γ2α2
)fxx + (
1
3
− γ2αβ)ffxy + (
1
6
−
1
2
γ2β2
)f2
fyy
+
1
6
fyfx +
1
6
f2
y f) + O(h3
) (2.44)
todo evaluado en (xn, Yn). Deseamos que εn+1(y) converja a cero tan r´apido como
se pueda. Aceptando f arbitrarias no podremos, en general, anular el coeficiente
de h3
(¿porqu´e?). Anulando los de h y h2
obtenemos
εn+1(y) = O(h3
), γ1 + γ2 = 1, γ2α =
1
2
, γ2β =
1
2
(2.45)
cuya soluci´on general es
γ2 arbitrario (2.46)
γ1 = 1 − γ2 (2.47)
α = β =
1
2γ2
(2.48)
Consideremos algunos casos particulares
(a) γ2 = 1, lo que implica γ1 = 0, α = β = 1
2
⇒ ϕ(x, y, h; f) = f(x +
h
2
, y +
h
2
f(x, y)) (2.49)
(b) γ2 = 1
2 , lo que implica γ1 = 1
2 , α = β = 1
⇒ ϕ(x, y, h; f) =
1
2
f(x, y) +
1
2
f(x + h, y + hf(x, y)) (2.50)
Notemos que si definimos
k1 = hf(x, y) (2.51)
k2 = hf(x + h, y + k1) (2.52)
se tiene Segunda f´ormula de
Runge
hϕ =
1
2
(k1 + k2) (2.53)
Runge not´o que este m´etodo puede mejorarse definiendo
k3 = hf(x + h, y + k2) (2.54)
28 2. ECUACIONES DIFERENCIALES
T
E
0
y
xxn xn+1









¨¨
¨¨¨
¨
¢
¢
¢
¢
¢
¢
¢
¢
¢
¢
¢
¢
¢
¢
¢
¢
¢
¢¢








d
d
Runge 2a
Euler
r
r
un(xn+1)r
Figura 4. Segunda f´ormula de Runge
y tomando
hϕ =
1
2
(k1 + k3) (2.55)
que es la segunda f´ormula de Runge (ver figura 4).
(c) (primer orden) γ1 = 1, lo que implica γ2 = 0, se obtiene en consecuencia
ϕ(x, y, h; f) = f(x, y) (Euler) (2.56)
♣
Las f´ormulas de mayor orden involucran un ´algebra m´as complicada, para ello
se suele proponer
hϕ(x, y, h; f) =
p
i=1
γiki (2.57)
con
k1 = hf(x, y) (2.58)
k2 = hf(x + α2h, y + β21k1) (2.59)
...
ki = hf(x + αih, y +
i−1
j=1
βijkj) i = 1, . . . , p (2.60)
Los coeficientes se pueden escoger de modo que los primeros t´erminos en el error
de truncamiento local sean nulos. En consecuencia, por un procedimiento an´alogo
al realizado en el caso de segundo orden se obtienen diversos m´etodos de orden
superior de los que el m´as utilizado es el llamado M´etodo de Runge-KuttaM´etodo cl´asico de
Runge-Kutta
yn+1 = yn +
1
6
(k1 + 2k2 + 2k3 + k4) (2.61)
2.2. M´ETODOS EN DIFERENCIAS DE UN PASO 29
con
k1 = hf(xn, yn) (2.62)
k2 = hf(xn +
h
2
, yn +
k1
2
) (2.63)
k3 = hf(xn +
h
2
, yn +
k2
2
) (2.64)
k4 = hf(xn + h, yn + k3) (2.65)
T
E
0
y
xxn xn+1









¨¨
¨¨¨
¨




¨¨



RK
Euler
r
r
un(xn+1)r
Figura 5. El m´etodo de Runge-Kutta
Se puede demostrar que ´esta es una f´ormula de cuarto orden: εn+1 = O(h5
). El m´etodo cl´asico de
Runge-Kutta generaliza
el m´etodo de SimpsonObservaci´on 2.2.1. El m´etodo RK cl´asico es una generalizaci´on de la regla
de Simpson en el caso que f no sea independiente de y
xn+1
xn
f(x)dx
h
6
(f(xn) + 4f(xn +
h
2
+ f(xn+1)) (2.66)
Ejemplo 2.2.6. Apliquemos el m´etodo cl´asico de RK a la ecuaci´on de prueba
y = λy
k1 = hλyn (2.67)
k2 = hλ(yn +
1
2
hλyn) (2.68)
= hλyn +
1
2
h2
λ2
yn (2.69)
k3 = hλ(yn +
1
2
(hλyn +
1
2
h2
λ2
yn)) (2.70)
= hλyn +
1
2
h2
λ2
yn +
1
4
h3
λ3
yn (2.71)
k4 = hλ(yn + hλyn +
1
2
h2
λ2
yn + 1
1
4
h3
λ3
yn) (2.72)
= hλyn + h2
λ2
yn +
1
2
h3
λ3
yn +
1
4
h4
λ4
yn) (2.73)
30 2. ECUACIONES DIFERENCIALES
de manera que
yn +
1
6
(k1 + 2k2 + 2k3 + k4) = yn
+
1
6
(6hλyn + 3h2
λ2
yn + h3
λ3
yn +
1
4
h4
λ4
yn) (2.74)
lo que permite escribir en definitiva
yn+1 = yn(1 + hλ +
1
2
h2
λ2
+
1
6
h3
λ3
+
1
24
h4
λ4
) (2.75)
vemos as´ı que se aproxima a ehλ
hasta el cuarto orden.
Ejercicio 2.2.7. [Optativo] Con la expresi´on 2.75 se puede dibujar la regi´on
de estabilidad absoluta.
♣ Para estudiar la convergencia del esquema general RK
yn+1 = yn + hϕ(xn, yn, h; f), n ≥ 0 (2.76)
recordemos que el error local es
εn+1(Y ) = Y (xn+1) − Y (xn) − hϕ(xn, Y (xn), h; f), n ≥ 0 (2.77)
conviene definir τn+1(Y ) por la expresi´on
εn+1(y) = hτn+1(Y ) (2.78)
y con esta τ se tiene
Y (xn+1) = Y (xn) + hϕ(xn, Y (xn), h; f) + hτn+1(Y ), n ≥ 0 (2.79)
con lo que resulta
τn+1(Y ) =
Y (xn+1) − Y (xn)
h
− ϕ(xn, Y (xn), h; f) (2.80)
de modo que debe tenerse τn+1(Y ) → 0 cuando h → 0, equivalentemente debe
requerirse que ϕ(x, Y (x), h; f) → Y (x) = f(x, Y (x)) cuando h → 0.
Definiendo
δ(h) = max
x0≤x≤b
−∞y∞
|f(x, y) − ϕ(x, y, h; f)| (2.81)
se tiene que limh→0 δ(h) = 0 se denomina condici´on de consistencia para el m´etodo
2.76 y es suficiente para asegurar la convergencia si se tienen ciertas hip´otesis para
ϕ, a saber: ϕ continua y
|ϕ(x, y, h; f) − ϕ(x, ˜y, h; f)| ≤ L|y − ˜y|, x0 ≤ x ≤ b, −∞  y, ˜y  ∞ (2.82)
(funci´on de Lipschitz en la variable y)
Teorema 2.2.2. Supongamos que el m´etodo 2.76 dado por
yn+1 = yn + hϕ(xn, yn, h; f) (2.83)
satisface la condici´on |ϕ(x, y, h; f) − ϕ(x, ˜y, h; f)| ≤ L|y − ˜y| con x0 ≤ x ≤ b − ∞ 
y, ˜y  ∞, L constante. Entonces la soluci´on aproximada {yn} del problema de
valores iniciales y = f(x, y), y(x0) = y0 satisface
max
x0≤xn≤b
|Y (xn) − yn| ≤ e(b−x0)L
|Y0 − y0| +
e(b−x0)L
− 1
L
τ(h) (2.84)
2.2. M´ETODOS EN DIFERENCIAS DE UN PASO 31
donde τ(h) = maxx0≤xn≤b |τn+1(Y )|. Si se satisface la condici´on de consistencia
δ(h) = max
x0≤x≤b
−∞y∞
|f(x, y) − ϕ(x, y, h; f)| −→ 0 para h → 0 (2.85)
entonces la soluci´on num´erica {yn} converge a Y (x)
Demostraci´on: Restamos (2.79)−(2.76)
Y (xn+1) − yn+1 = Y (xn) − yn + h(ϕ(xn, Y (xn), h; f)
−ϕ(xn, yn, h; f)) + hτn+1(Y ) (2.86)
Luego
|Y (xn+1) − yn+1| ≤ |Y (xn) − yn| + h|ϕ(xn, Y (xn), h; f) − ϕ(xn, yn, h; f)|
+h|τn+1(Y )|
≤ |Y (xn) − yn|(1 + hL) + hτ(h), x0 ≤ xn ≤ b (2.87)
Recursivamente se tiene
|Y (xn+1) − yn+1| ≤ (1 + hL)n
|Y (x0) − y0| + (1 + (1 + hL)
+ . . . + (1 + hL)n−1
)hτ(h)
≤ (1 + hL)n
|Y (x0) − y0| +
(1 + hL)n
− 1
L
τ(h) (2.88)
pero (1+hL)n
≤ enhL
= e(xn−x0)L
≤ e(b−x0)L
pues ex
= 1+x+ x2
2 eξ
con 0 ≤ ξ ≤ x
y x  −1 ⇒ (1 + x)m
≤ emx
.
Luego
|Y (xn) − yn| ≤ e(b−x0)L
|Y (x0) − y0| +
e(b−x0)L
− 1
L
τ(h), x0 ≤ xn ≤ b (2.89)
En muchos casos se puede demostrar que τ(h) → 0 cuando h → 0 por c´alculo
directo obteniendose as´ı la convergencia buscada. Veamos que basta saber que
limh→0 δ(h) = 0,
hτn+1(Y ) = Y (xn+1) − Y (xn) − hϕ(xn, Y (xn), h; f)
= hY (n) +
1
2
h2
Y (ξn) − hϕ(xn, Y (xn), h; f),
con xn  ξn  xn+1 (2.90)
resulta as´ı
h|τn+1(Y )| ≤ hδ(h) +
h2
2
||Y ||∞ (2.91)
obteniendose en definitiva
τ(h) ≤ δ(h) +
1
2
h||Y ||∞ (2.92)
lo que completa la demostraci´on.
Corolario 2.2.3. Si el m´etodo RK dado por yn+1 = yn +hϕ(xn, yn, h; f) tiene
un error de truncamiento εn+1(y) = O(hm+1
) entonces la velocidad de convergencia
de {yn} a y(x) es O(hm
).
32 2. ECUACIONES DIFERENCIALES
Teorema 2.2.4. Si ϕ(x, y, h; f) es continua en (x, y, h) en x0 ≤ x ≤ b, 0 ≤ h ≤
h0, para todo y y es Lipschitz en y, entonces la convergencia es equivalente a tener
ϕ(x, Y (x), 0; f) = f(x, Y (x))
o, equivalentemente
ϕ(x, y, 0; f) = f(x, y)
Ejercicio 2.2.8. Demostrar el teorema 2.2.4
La velocidad de convergencia de yh(x) a Y (x) es O(h4
) en el m´etodo cl´asico
RK pues εn+1(y) = O(h5
). Se puede demostrar, en consecuencia, que
Y (x) − yh(x) = D(x)h4
+ O(h5
) (2.93)
donde D(x) satisface un problema an´alogo de valores iniciales. Asimismo, como
Y (x) − y2h(x) = 16D(x)h4
+ O(h5
) (2.94)
se deduce que
Y (x) = yh(x) +
1
15
(yh(x) − y2h(x)) + O(h5
) (2.95)
donde el t´ermino yh(x) − y2h(x) permite estimar el error.
En general vale el siguiente
Teorema 2.2.5. Si el error de truncamiento
εn+1(Y ) = hϕ(x, Y (x), h; f) − (Y (x + h) − Y (x)) (2.96)
se puede expresar
εn+1(Y ) = hr+1
ψ(x, Y ) + O(hr+2
) (2.97)
y ϕ tiene derivadas segundas continuas, entonces el error satisface
en = hr
D(xn) + O(hr+1
) (2.98)
donde D(x) es soluci´on de
D (x) =
∂f
∂y
(x, Y (x))D(x) + ψ(x, Y (x)) (2.99)
Demostraci´on: Por el orden del m´etodo buscamos para en una expresi´on de la
forma del enunciado. Si reemplazamos la expresi´on en = hr
δn en
en+1 = en + h(ϕ(xn, yn, h; f) − ϕ(xn, Y (xn), h; f)) + εn+1(Y ) (2.100)
obtenemos
δn+1 = δn + h1−r
(ϕ(xn, Y (xn) + hr
δn, h; f) − ϕ(xn, Y (xn), h; f))
+hψ(xn, Y (xn)) + O(h2
) (2.101)
Por la suavidad supuesta para ϕ podemos escribir
ϕ(xn, Y (xn) + hr
δn, h; f) = ϕ(xn, Y (xn), h; f) + ϕy(xn, Y (xn), h; f)hr
δn
+
1
2
ϕyy(xn, Y (xn), h; f)h2r
δ2
n (2.102)
2.3. EJERCICIOS 33
en raz´on de la convergencia este ´ultimo sumando se puede escribir en la forma k1h2r
con ||k1|| acotada. El segundo sumando se puede reescribir as´ı
ϕy(xn, Y (xn), h; f)hr
δn = ϕy(xn, Y (xn), 0; f)hr
δn
+ϕyh(xn, Y (xn), ξ; f)hr+1
δn (2.103)
cuyo ´ultimo sumando se puede escribir en la forma k2hr+1
con ||k2|| acotada.
En definitiva
δn+1 = δn + h(fy(xn, Y (xn))δn + hψ(xn, Y (xn) + hk2 + hr
k1) (2.104)
que es un m´etodo num´erico para
D (x) = fy(x, Y (x))D(x) + ϕ(x, Y (x)) (2.105)
D(0) + e0h−r
(2.106)
lo que permite completar la demostraci´on del teorema. ♣
2.3. Ejercicios
Ejercicio 2.3.1. Dada y = 1 + x2
y2
, con y(0) = 0, calcular y(0.5) mediante
el m´etodo de Euler con extrapolaci´on de repetida de Richardson. Usar aritm´etica
de redondeo de cinco decimales.
Ejercicio 2.3.2. Aplicando el m´etodo de Euler, se obtuvieron los resultados:
1.22726 (con paso h = 0.05), 1.22595 (h = 0.1), 1.22345 (h = 0.2). Calcule un
mejor valor por extrapolaci´on.
Ejercicio 2.3.3. Utilizar el m´etodo de Euler con longitud de paso h sobre el
problema test
y = −y, y(0) = 1 (2.107)
(a) Determinar una expresi´on expl´ıcita para yn
(b) ¿Para qu´e valores de h la sucesi´on {yn}∞
0 es acotada?
(c) Calcular el limh→0 (y(x, h) − e−x
)/h
Ejercicio 2.3.4. Determinar el desarrollo de Taylor para la soluci´on de la
ecuaci´on y = y2
, con y(0) = 1, en el entorno de x = 0. Usar esta aproximaci´on
para calcular y(0.2) e y(1.2) con cuatro decimales. Comparar con la soluci´on exacta
y explicar porqu´e el segundo caso (x = 1.2) no es exitoso.
Ejercicio 2.3.5. La funci´on y(x) se define mediante el problema
y = x2
− y2
, y(0) = 1 (2.108)
Calcular y(0.2) utilizando los siguientes m´etodos:
(a) Euler-Richardson: h = 0.1 y h = 0.2;
(b) M´etodo Runge-Kutta: h = 0.1;
(c) Desarrollo en serie de Taylor hasta el cuarto t´ermino;
(d) M´etodo del trapecio: h = 0.2.
Ejercicio 2.3.6. [Optativo]Se desea realizar una tabla de la funci´on
y(x) =
∞
0
e−u2
(u + x)
du (2.109)
34 2. ECUACIONES DIFERENCIALES
para varios valores de x. Se procede de la siguiente manera: y(x) se calcula para
x = 1 usando alg´un m´etodo para integraci´on num´erica; se calcula y(1) = 0.6051.
Mostrar que y satisface la ecuaci´on diferencial
dy
dx
+ 2xy = −
1
x
+
√
π (2.110)
Se resuelve la ecuaci´on diferencial num´ericamente con el valor inicial y(1) = 0.6051,
y as´ı se pueden calcular m´as valores de la tabla. Determinar y(x) para x = 1.2 y
x = 1.4 mediante el m´etodo de Runge-Kutta y estimar el error en y(1.4).
AP´ENDICE A
Bibliograf´ıa y referencias
A.1. Textos b´asicos
(1) Atkinson, K.E.: An Introduction to Numerical Analysis, 2nd
edition, J.
Wiley  Sons., New York, 1989.
(2) Burden, R.L. y Faires, J.D.: An´alisis Num´erico, 2da
edici´on, Grupo
Editorial Iberoam´erica, M´exico, 1993.
(3) Dahlquist, G., and Bjrck, ˚A.: Numerical Methods, Prentice-Hall, E.
Cliffs, NJ, 1974.
A.2. Bibliograf´ıa complementaria
(1) Aguilera, N.E.: Introducci´on a la computaci´on en Matem´atica usando
Mathematica, Red Ol´ımpica, OMA, Buenos Aires, 1994.
(2) Apostol, T.M.: An´alisis Matem´atico, 2da
edici´on, Revert´e, Barcelona,
1976.
(3) Braun, M.: Differential Equations and Their Applications. An Intro-
duction to Applied Mathematics, 4th
edition, Springer, N.York, 1993.
(4) Davis, Ph.J. y Rabinowitz, Ph.: Methods of Numerical Integration,
2nd
edition, Academic Press, N.York, 1984.
(5) Gear, C.W.: Numerical Initial Value Problems in Ordinary Differential
Equations, Prentice-Hall, E. Cliffs, 1971
(6) Golub, G.H. (Editor): Studies in Numerical Analysis, MAA Studies in
Mathematics 24, Washington, 1984.
(7) Graham, R.L., Knuth, D.E., and Patashnik, O.: Concrete Mathe-
matics, Addison-Wesley, Reading, MA, 1989.
(8) Hurewicz, W.: Lectures on Ordinary Differential Equations, The M.I.T.
Press, Cambridge, MA, 1958.
(9) Knuth, D.E.: The Art of Computer Programming
Vol.1: Fundamental Algorithms
Vol.2: Seminumerical algorithms
Vol.3: Sorting and searching ,
Addison-Wesley, Reading, 1973.
Versi´on espa˜nola: V.1, Revert´e, Barcelona, 1980.
(10) Linz, P.: A Critique of Numerical Analysis, Bulletin American Mathe-
matical Society, 19(2), 407–416, 1988
(11) Maeder, R.: Programming in Mathematica, 2nd
edition, Addison-Wesley,
1991.
(12) Marshall, G.: Soluci´on Num´erica de Ecuaciones Diferenciales, Tomos
1 y 2, Revert´e, Buenos Aires, 1985 y 1986
35
36 A. BIBLIOGRAF´IA Y REFERENCIAS
(13) Press, W.H., Teukolsky, S.A., Vetterlin, W.T., y Flannery,
B.P.: Numerical Recipes in C. The Art of Scientific Computing, 2nd
edi-
tion, Cambridge University Press, Cambridge, 1992.
(14) Rice, J.R.: Numerical Methods, Software, and Analysis, 2nd
edition,
Academic Press, Boston, 1993.
(15) Stoer, J. y Bulirsch, R.: Introduction to Numerical Analysis, Sprin-
ger, N.York, 1980.
(16) Strang, G.: Introduction to Applied Mathematics, Wellesley-Cambridge,
Wellesley, 1986
(17) Wolfram Research: Guide to Standard Mathematica Packages, Ver-
sion 2.2, Technical Report, Wolfram Research, 1993.
(18) Wolfram Research: MathLink Reference Guide, Version 2.2, Technical
Report, Wolfram Research, 1993.
(19) Wolfram, S.: The Mathematica Book, 3rd
edition, Wolfram Media-
Cambridge, Cambridge, UK, 1996.
AP´ENDICE B
Coeficientes indeterminados con el Mathematica
B.1. El m´etodo de Simpson
(* Simpson *)
a0=a;(* Defino los puntos *)
a1=a/2+b/2;
a2=b;(*a=-1;b=1;*)
p0[x_]:=1; (* Defino los polinomios *)
p1[x_]:=(2x-a-b)/(b-a);
p2[x_]:=((2x-a-b)/(b-a))^2;
p3[x_]:=((2x-a-b)/(b-a))^3;
p4[x_]:=((2x-a-b)/(b-a))^4;
(* Integraci’on num’erica *) s0=A p0[a0] + B p0[a1] + C p0[a2]
//Simplify s1=A p1[a0] + B p1[a1] + C p1[a2] //Simplify; s2=A
p2[a0] + B p2[a1] + C p2[a2] //Simplify; A + B + C
(* Integro los polinomios *)
i0=Integrate[p0[x],{x,a,b}]//Simplify
i1=Integrate[p1[x],{x,a,b}]//Simplify;
i2=Integrate[p2[x],{x,a,b}]//Simplify;
-a + b
(* Resuelvo el sistema *)
Solve[{s0==i0,s1==i1,s2==i2},{A,B,C}]//Simplify
2 (-a + b) -a + b -a + b
{{B - ----------, A - ------, C - ------}}
3 6 6
(* Verifico que vale para polinomios de tercer grado *)
(s3=A p3[a0] + B p3[a1] + C p3[a2])/.%15 //Simplify
{0} i3=Integrate[p3[x],{x,a,b}]//Simplify 0 (* Resulta as’{i}
que la siguiente
ecuaci’on ( s3 == i3 ) vale trivialmente *)
(* Calculo del error con el polinomio de cuarto grado *)
(s4=A p4[a0] + B p4[a1] + C p4[a2])/.%15 //Simplify
-a + b
{------}
3
i4=Integrate[p4[x],{x,a,b}]//Simplify
-a + b
------
5
e4=(%20 - %19)//Simplify
2 (a - b)
37
38 B. COEFICIENTES INDETERMINADOS CON EL Mathematica
{---------}
15
(* Calculo del polinomio de Taylor *)
Series[ f[x], {x, (a+b)/2, 4}]
a + b -(a + b) 2
f’’[-----] (-------- + x)
a + b a + b -(a + b) 2 2
f[-----] + f’[-----] (-------- + x) + -------------------------- +
2 2 2 2
(3) a + b -(a + b) 3 (4) a + b -(a + b) 4
f [-----] (-------- + x) f [-----] (-------- + x)
2 2 2 2
--------------------------- + --------------------------- +
6 24
-(a + b) 5
O[-------- + x]
2
(* Resulta asi que el error de truncamiento es
5 (4) a + b
( b - a ) f [-----]
2
------------------------
2880 *)
B.2. El m´etodo de Newton
(* Newton de once puntos *)
a0=a; (* Defino los puntos *)
a1=9a/10+b/10;
a2=8a/10+2b/10;
a3=7a/10+3b/10;
a4=6a/10+4b/10;
a5=5a/10+5b/10;
a6=4a/10+6b/10;
a7=3a/10+7b/10;
a8=2a/10+8b/10;
a9=a/10+9b/10;
a10=b;
p0[x_]:=1; (* Defino los polinomios *)
p1[x_]:=(2x-a-b)/(b-a);
p2[x_]:=((2x-a-b)/(b-a))^2;
p3[x_]:=((2x-a-b)/(b-a))^3;
p4[x_]:=((2x-a-b)/(b-a))^4;
p5[x_]:=((2x-a-b)/(b-a))^5;
p6[x_]:=((2x-a-b)/(b-a))^6;
p7[x_]:=((2x-a-b)/(b-a))^7;
p8[x_]:=((2x-a-b)/(b-a))^8;
p9[x_]:=((2x-a-b)/(b-a))^9;
p10[x_]:=((2x-a-b)/(b-a))^10;
p11[x_]:=((2x-a-b)/(b-a))^11;
p12[x_]:=((2x-a-b)/(b-a))^12;
B.2. EL M´ETODO DE NEWTON 39
(* Integraci’on num’erica *) s0=A0 p0[a0] + A1 p0[a1] + A2
p0[a2] + A3 p0[a3]+
A4 p0[a4] + A5 p0[a5] + A6 p0[a6] + A7 p0[a7]+
A8 p0[a8] + A9 p0[a9] + A10 p0[a10]//Simplify;
s1=A0 p1[a0] + A1 p1[a1] + A2 p1[a2] + A3 p1[a3]+
A4 p1[a4] + A5 p1[a5] + A6 p1[a6] + A7 p1[a7]+
A8 p1[a8] + A9 p1[a9] + A10 p1[a10]//Simplify;
s2=A0 p2[a0] + A1 p2[a1] + A2 p2[a2] + A3 p2[a3]+
A4 p2[a4] + A5 p2[a5] + A6 p2[a6] + A7 p2[a7]+
A8 p2[a8] + A9 p2[a9] + A10 p2[a10]//Simplify;
s3=A0 p3[a0] + A1 p3[a1] + A2 p3[a2] + A3 p3[a3]+
A4 p3[a4] + A5 p3[a5] + A6 p3[a6] + A7 p3[a7]+
A8 p3[a8] + A9 p3[a9] + A10 p3[a10]//Simplify;
s4=A0 p4[a0] + A1 p4[a1] + A2 p4[a2] + A3 p4[a3]+
A4 p4[a4] + A5 p4[a5] + A6 p4[a6] + A7 p4[a7]+
A8 p4[a8] + A9 p4[a9] + A10 p4[a10]//Simplify;
s5=A0 p5[a0] + A1 p5[a1] + A2 p5[a2] + A3 p5[a3]+
A4 p5[a4] + A5 p5[a5] + A6 p5[a6] + A7 p5[a7]+
A8 p5[a8] + A9 p5[a9] + A10 p5[a10]//Simplify;
s6=A0 p6[a0] + A1 p6[a1] + A2 p6[a2] + A3 p6[a3]+
A4 p6[a4] + A5 p6[a5] + A6 p6[a6] + A7 p6[a7]+
A8 p6[a8] + A9 p6[a9] + A10 p6[a10]//Simplify;
s7=A0 p7[a0] + A1 p7[a1] + A2 p7[a2] + A3 p7[a3]+
A4 p7[a4] + A5 p7[a5] + A6 p7[a6] + A7 p7[a7]+
A8 p7[a8] + A9 p7[a9] + A10 p7[a10]//Simplify;
s8=A0 p8[a0] + A1 p8[a1] + A2 p8[a2] + A3 p8[a3]+
A4 p8[a4] + A5 p8[a5] + A6 p8[a6] + A7 p8[a7]+
A8 p8[a8] + A9 p8[a9] + A10 p8[a10]//Simplify;
s9=A0 p9[a0] + A1 p9[a1] + A2 p9[a2] + A3 p9[a3]+
A4 p9[a4] + A5 p9[a5] + A6 p9[a6] + A7 p9[a7]+
A8 p9[a8] + A9 p9[a9] + A10 p9[a10]//Simplify;
s10=A0 p10[a0] + A1 p10[a1] + A2 p10[a2] + A3 p10[a3]+
A4 p10[a4] + A5 p10[a5] + A6 p10[a6] + A7 p10[a7]+
A8 p10[a8] + A9 p10[a9] + A10 p10[a10]//Simplify;
(* Integro los polinomios *)
i0=Integrate[p0[x],{x,a,b}]//Simplify
i1=Integrate[p1[x],{x,a,b}]//Simplify;
i2=Integrate[p2[x],{x,a,b}]//Simplify;
i3=Integrate[p3[x],{x,a,b}]//Simplify;
i4=Integrate[p4[x],{x,a,b}]//Simplify;
i5=Integrate[p5[x],{x,a,b}]//Simplify;
i6=Integrate[p6[x],{x,a,b}]//Simplify;
i7=Integrate[p7[x],{x,a,b}]//Simplify;
i8=Integrate[p8[x],{x,a,b}]//Simplify;
i9=Integrate[p9[x],{x,a,b}]//Simplify;
i10=Integrate[p10[x],{x,a,b}]//Simplify;
-a + b
(* Resuelvo el sistema *)
Solve[{s0==i0,s1==i1,s2==i2
,s3==i3,s4==i4
,s5==i5,s6==i6
,s7==i7,s8==i8
,s9==i9,s10==i10}
,{A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10}]//Simplify
17807 (-a + b) -16067 (a - b)
{{A5 - --------------, A0 - --------------,
40 B. COEFICIENTES INDETERMINADOS CON EL Mathematica
24948 598752
-26575 (a - b) 16175 (a - b)
A1 - --------------, A2 - -------------,
149688 199584
-5675 (a - b) 4825 (a - b)
A3 - -------------, A4 - ------------,
12474 11088
4825 (a - b) -5675 (a - b)
A6 - ------------, A7 - -------------,
11088 12474
16175 (a - b) -26575 (a - b)
A8 - -------------, A9 - --------------,
199584 149688
-16067 (a - b)
A10 - --------------}}
598752
(* Verifico que los pesos suman uno *)
598752/24948
24
598752/149688
4
598752/199584
3
598752/12474
48
598752/11088
54
2 16067 + 2 26575 4 - 2 16175 3 + 2 5675 48 - 2 4825 54 + 17807 24
598752
B.3. El m´etodo de cuadratura de Gauß de tres puntos
(* Gauss de tres puntos *)
a=-1; (* Se trabaja en el [-1,1] *)
b=1;
p0[x_]:=1; (* Definici’on de los polinomios *)
p1[x_]:=(2x-a-b)/(b-a); p2[x_]:=((2x-a-b)/(b-a))^2;
p3[x_]:=((2x-a-b)/(b-a))^3; p4[x_]:=((2x-a-b)/(b-a))^4;
p5[x_]:=((2x-a-b)/(b-a))^5; p6[x_]:=((2x-a-b)/(b-a))^6;
p7[x_]:=((2x-a-b)/(b-a))^7;
(* Las expresiones de Gauss *)
s0=A p0[X] + B p0[Y] + C p0[Z] //Simplify
s1=A p1[X] + B p1[Y] + C p1[Z] //Simplify;
s2=A p2[X] + B p2[Y] + C p2[Z] //Simplify;
s3=A p3[X] + B p3[Y] + C p3[Z] //Simplify;
s4=A p4[X] + B p4[Y] + C p4[Z] //Simplify;
s5=A p5[X] + B p5[Y] + C p5[Z] //Simplify;
s6=A p6[X] + B p6[Y] + C p6[Z] //Simplify;
A + B + C
(* Las integrales *)
i0=Integrate[p0[x],{x,a,b}]//Simplify
i1=Integrate[p1[x],{x,a,b}]//Simplify;
i2=Integrate[p2[x],{x,a,b}]//Simplify;
B.4. LOS COEFICIENTES DE LA CUADRATURA DE GAUSS DE CINCO PUNTOS 41
i3=Integrate[p3[x],{x,a,b}]//Simplify;
i4=Integrate[p4[x],{x,a,b}]//Simplify;
i5=Integrate[p5[x],{x,a,b}]//Simplify;
2
(* El sistema de ecuaciones no lineal *)
Solve[{s0==i0,
s1==i1,
s2==i2,
s3==i3,
s4==i4,
s5==i5},{A,B,C,X,Y,Z}]//Simplify
5 5 8 3 3
{{A - -, B - -, C - -, Z - 0, Y - -Sqrt[-], X - Sqrt[-]},
9 9 9 5 5
5 5 8 3 3
{A - -, B - -, C - -, Z - 0, Y - Sqrt[-], X - -Sqrt[-]},
9 9 9 5 5
5 8 5 3 3
{A - -, B - -, C - -, Z - -Sqrt[-], Y - 0, X - Sqrt[-]},
9 9 9 5 5
5 8 5 3 3
{A - -, B - -, C - -, Z - Sqrt[-], Y - 0, X - -Sqrt[-]},
9 9 9 5 5
8 5 5 3 3
{A - -, B - -, C - -, Z - -Sqrt[-], Y - Sqrt[-], X - 0},
9 9 9 5 5
8 5 5 3 3
{A - -, B - -, C - -, Z - Sqrt[-], Y - -Sqrt[-], X - 0}}
9 9 9 5 5
%//N (* La versi’on num’erica *)
{{A - 0.555556, B - 0.555556, C - 0.888889, Z - 0, Y - -0.774597,
X - 0.774597}, {A - 0.555556, B - 0.555556, C - 0.888889, Z - 0,
Y - 0.774597, X - -0.774597},
{A - 0.555556, B - 0.888889, C - 0.555556, Z - -0.774597, Y - 0,
X - 0.774597}, {A - 0.555556, B - 0.888889, C - 0.555556, Z - 0.774597,
Y - 0, X - -0.774597}, {A - 0.888889, B - 0.555556, C - 0.555556,
Z - -0.774597, Y - 0.774597, X - 0},
{A - 0.888889, B - 0.555556, C - 0.555556, Z - 0.774597, Y - -0.774597,
X - 0}}
B.4. Los coeficientes de la cuadratura de Gauß de cinco puntos
(* Cuadratura de Gauss de cinco puntos *)
42 B. COEFICIENTES INDETERMINADOS CON EL Mathematica
(* Determino las coordenadas de los puntos *)
Roots[LegendreP[5,x]==0,x]
N[%,30]
(* Defino las variables que representan los puntos *)
a0=x/.x-%%[[5]][[2]]
a1=x/.x-%%%[[3]][[2]]
a2=x/.x-%%%%[[1]][[2]]
a3=x/.x-%%%%%[[2]][[2]]
a4=x/.x-%%%%%%[[4]][[2]]
10 10
Sqrt[5 - 2 Sqrt[--]] -Sqrt[5 - 2 Sqrt[--]]
7 7
x == 0 || x == -------------------- || x == --------------------- ||
3 3
10 10
Sqrt[5 + 2 Sqrt[--]] -Sqrt[5 + 2 Sqrt[--]]
7 7
x == -------------------- || x == ---------------------
3 3
x == 0 ||
x == 0.5384693101056830910363144207 ||
x == -0.5384693101056830910363144207 ||
x == 0.906179845938663992797626878299 ||
x == -0.906179845938663992797626878299
-0.906179845938663992797626878299
-0.5384693101056830910363144207
0
0.5384693101056830910363144207
0.906179845938663992797626878299
(* Fijo los extremos del intervalo *)
a=-1;
b=1;
(* Defino los polinomios *)
p0[x_]:=1;
p1[x_]:=(2x-a-b)/(b-a);
p2[x_]:=((2x-a-b)/(b-a))^2;
p3[x_]:=((2x-a-b)/(b-a))^3;
p4[x_]:=((2x-a-b)/(b-a))^4;
p5[x_]:=((2x-a-b)/(b-a))^5;
p6[x_]:=((2x-a-b)/(b-a))^6;
p7[x_]:=((2x-a-b)/(b-a))^7;
p8[x_]:=((2x-a-b)/(b-a))^8;
p9[x_]:=((2x-a-b)/(b-a))^9;
p10[x_]:=((2x-a-b)/(b-a))^10;
p11[x_]:=((2x-a-b)/(b-a))^11;
p12[x_]:=((2x-a-b)/(b-a))^12;
(* Defino las expresiones para los pesos A0,A1,A2,A3,A4 *)
s0=A0 p0[a0]+A1 p0[a1]+A2 p0[a2]+A3 p0[a3]+A4 p0[a4]//Simplify
s1=A0 p1[a0]+A1 p1[a1]+A2 p1[a2]+A3 p1[a3]+A4 p1[a4]//Simplify
B.4. LOS COEFICIENTES DE LA CUADRATURA DE GAUSS DE CINCO PUNTOS 43
s2=A0 p2[a0]+A1 p2[a1]+A2 p2[a2]+A3 p2[a3]+A4 p2[a4]//Simplify;
s3=A0 p3[a0]+A1 p3[a1]+A2 p3[a2]+A3 p3[a3]+A4 p3[a4]//Simplify;
s4=A0 p4[a0]+A1 p4[a1]+A2 p4[a2]+A3 p4[a3]+A4 p4[a4]//Simplify;
s5=A0 p5[a0]+A1 p5[a1]+A2 p5[a2]+A3 p5[a3]+A4 p5[a4]//Simplify;
s6=A0 p6[a0]+A1 p6[a1]+A2 p6[a2]+A3 p6[a3]+A4 p6[a4]//Simplify;
s7=A0 p7[a0]+A1 p7[a1]+A2 p7[a2]+A3 p7[a3]+A4 p7[a4]//Simplify;
s8=A0 p8[a0]+A1 p8[a1]+A2 p8[a2]+A3 p8[a3]+A4 p8[a4]//Simplify;
s9=A0 p9[a0]+A1 p9[a1]+A2 p9[a2]+A3 p9[a3]+A4 p9[a4]//Simplify;
s10=A0 p10[a0]+A1 p10[a1]+A2 p10[a2]+
A3 p10[a3]+A4 p10[a4]//Simplify;
s11=A0 p11[a0]+A1 p11[a1]+A2 p11[a2]+
A3 p11[a3]+A4 p11[a4]//Simplify;
A0 + A1 + A2 + A3 + A4
-0.906179845938663992797626878299 A0
- 0.5384693101056830910363144207 A1
+ 0.5384693101056830910363144207 A3
+ 0.906179845938663992797626878299 A4
(* Calculo las integrales *)
i0=Integrate[p0[x],{x,a,b}]//Simplify
i1=Integrate[p1[x],{x,a,b}]//Simplify;
i2=Integrate[p2[x],{x,a,b}]//Simplify;
i3=Integrate[p3[x],{x,a,b}]//Simplify;
i4=Integrate[p4[x],{x,a,b}]//Simplify;
i5=Integrate[p5[x],{x,a,b}]//Simplify;
i6=Integrate[p6[x],{x,a,b}]//Simplify;
i7=Integrate[p7[x],{x,a,b}]//Simplify;
i8=Integrate[p8[x],{x,a,b}]//Simplify;
i9=Integrate[p9[x],{x,a,b}]//Simplify;
i10=Integrate[p10[x],{x,a,b}]//Simplify;
i11=Integrate[p11[x],{x,a,b}]//Simplify;
2
(* Resoluci’on del sistema de ecuaciones *) Solve[{s0==i0
,s1==i1
,s2==i2
,s3==i3
,s4==i4},{A0,A1,A2,A3,A4}]//Simplify
{{A2 - 0.56888888888888888888888889
, A0 - 0.236926885056189087514264041
, A1 - 0.478628670499366468041291515
, A3 - 0.478628670499366468041291515
, A4 - 0.2369268850561890875142640407}}
(* Calculo de los residuos para los siguientes polinomios *)
s5 - i5 /. %56
-16
{-2.22045 10 }
s6 - i6 /. %56
-16
{4.16334 10 }
s7 - i7 /. %56
-16
{-1.66533 10 }
s8 - i8 /. %56
-16
{3.46945 10 }
s9 - i9 /. %56
44 B. COEFICIENTES INDETERMINADOS CON EL Mathematica
-16
{-1.38778 10 }
s10 - i10 /. %56
{-0.00293181}
s11 - i11 /. %56
-16
{-1.249 10 }
s12=A0 p12[a0]+A1 p12[a1]+A2 p12[a2]+
A3 p12[a3]+A4 p12[a4]//Simplify;
i12=Integrate[p11[x],{x,a,b}]//Simplify;
s12 - i12 /. %56
{0.145853}
En algunos casos se trabaja con mayor precisi´on
(* Cuadratura de Gauss de cinco puntos (operaciones exactas) *)
(* Determino las coordenadas de los puntos *)
Roots[LegendreP[5,x]==0,x]
N[%,50]
(* Defino las variables que representan los puntos *)
a0=x/.x-%%%[[5]][[2]]
a1=x/.x-%%%%[[3]][[2]]
a2=x/.x-%%%%%[[1]][[2]]
a3=x/.x-%%%%%%[[2]][[2]]
a4=x/.x-%%%%%%%[[4]][[2]]
10 10
Sqrt[5 - 2 Sqrt[--]] -Sqrt[5 - 2 Sqrt[--]]
7 7
x == 0 || x == -------------------- || x == --------------------- ||
3 3
10 10
Sqrt[5 + 2 Sqrt[--]] -Sqrt[5 + 2 Sqrt[--]]
7 7
x == -------------------- || x == ---------------------
3 3
x == 0 ||
x == 0.53846931010568309103631442070020880496728660690556 ||
x == -0.53846931010568309103631442070020880496728660690556 ||
x == 0.90617984593866399279762687829939296512565191076253 ||
x == -0.90617984593866399279762687829939296512565191076253
10
-Sqrt[5 + 2 Sqrt[--]]
7
---------------------
3
10
-Sqrt[5 - 2 Sqrt[--]]
7
---------------------
3
0
10
Sqrt[5 - 2 Sqrt[--]]
B.4. LOS COEFICIENTES DE LA CUADRATURA DE GAUSS DE CINCO PUNTOS 45
7
--------------------
3
10
Sqrt[5 + 2 Sqrt[--]]
7
--------------------
3
.
.
.
(* Resoluci’on del sistema de ecuaciones *) Solve[{s0==i0
,s1==i1
,s2==i2
,s3==i3
,s4==i4},{A0,A1,A2,A3,A4}]//Simplify;
N[%,50]
{{A2 - 0.56888888888888888888888888888888888888888888888889,
A0 - 0.23692688505618908751426404071991736264326000221241,
A1 - 0.47862867049936646804129151483563819291229555334314,
A3 - 0.4786286704993664680412915148356381929122955533431,
A4 - 0.23692688505618908751426404071991736264326000221241}}
s5 - i5 /. %61;
N[%,35]
-43
{0. 10 }
s6 - i6 /. %61;
N[%,35]
-42
{0. 10 }
s7 - i7 /. %61;
N[%,35]
-43
{0. 10 }
s8 - i8 /. %61;
N[%,35]
-43
{0. 10 }
s9 - i9 /. %61;
N[%,35]
-43
{0. 10 }
s10 - i10 /. %61;
N[%,35]
{-0.00293181245562197943150324102705055}
s11 - i11 /. %61;
N[%,35]
-43
{0. 10 }
46 B. COEFICIENTES INDETERMINADOS CON EL Mathematica
s12 - i12 /. %61;
N[%,35]
{0.14585257971501357744743988130231516}
s13 - i13 /. %61;
N[%,35]
-44
{0. 10 }
s14 - i14 /. %61;
N[%,35]
{-0.01386690413313408190371321302706202}
AP´ENDICE C
Cuadernos del Mathematica y archivos script de
Matlab
C.1. La funci´on mihumps
(*MIHUMPS*)
f[x_]:= 0.01/((x-0.3)^2+.01) + 0.01/((x-0.9)^2+.04) - 0.06
Plot[f[x],{x,0,1},PlotRange-{{0,1},{0,1}}
,GridLines-Automatic
,AspectRatio-1
,PlotStyle-RGBColor[1.000,0.000,0.000]
,Frame-True]
-Graphics-
La figura representada por el Plot precedente es la 1, la que en el cuaderno
queda insertada a continuaci´on.
0.2 0.4 0.6 0.8 1
0.2
0.4
0.6
0.8
1
Figura 1. La funci´on mihumps
47
48 C. CUADERNOS DEL Mathematica Y ARCHIVOS SCRIPT DE MATLAB
Integrate[f[x],x]
-0.06 x + 0.05 ArcTan[5. (-0.9 + x)] + 0.1 ArcTan[10. (-0.3 + x)]
N[Integrate[f[x],{x,0,1}],30]
0.2985832539549867
f[x]//TeXForm
-0.06 + {{0.01}over {0.04 + {{left( -0.9 + x right) }^2}}} +
{{0.01}over {0.01 + {{left( -0.3 + x right) }^2}}}
%3//TeXForm
-0.06,x + 0.05,arctan (5.,left( -0.9 + x right) ) +
0.1,arctan (10.,left( -0.3 + x right) )
Las funciones f(x) —mihumps— y su integral F(x) =
x
0
f(s) ds son
f(x) = −0.06 +
0.01
0.04 + (−0.9 + x)
2 +
0.01
0.01 + (−0.3 + x)
2 (C.1)
y
F(x) = −0.06 x + 0.05 arctan(5. (−0.9 + x)) + 0.1 arctan(10. (−0.3 + x)) (C.2)
C.2. Extrapolaci´on repetida de Richardson
En el siguiente cuaderno del Mathematica calculamos los errores de trunca-
miento de los distintos pasos de extrapolaci´on.
Extrapolaci’on repetida de Richardson
Table[2^(2j)-1,{j,9}]
{3, 15, 63, 255, 1023, 4095, 16383, 65535, 262143}
I0[h_]=b0+b1 h^2+b2 h^4+b3 h^6+b4 h^8+b5 h^10+b6 h^12+
b7 h^14+b8 h^16
2 4 6 8 10
b0 + b1 h + b2 h + b3 h + b4 h + b5 h +
12 14 16
b6 h + b7 h + b8 h
I1[h_]=I0[h/2]+(I0[h/2]-I0[h])/3//Simplify;
Collect[%,h]
4 6 8 10
b2 h 5 b3 h 21 b4 h 85 b5 h
b0 - ----- - ------- - -------- - --------- -
4 16 64 256
12 14 16
341 b6 h 1365 b7 h 5461 b8 h
---------- - ----------- - -----------
1024 4096 16384
I2[h_]=I1[h/2]+(I1[h/2]-I1[h])/15//Simplify;
Collect[%,h]
6 8 10 12
b3 h 21 b4 h 357 b5 h 5797 b6 h
b0 + ----- + -------- + ---------- + ----------- +
64 1024 16384 262144
C.2. EXTRAPOLACI ´ON REPETIDA DE RICHARDSON 49
14 16
93093 b7 h 1490853 b8 h
------------ + --------------
4194304 67108864
I3[h_]=I2[h/2]+(I2[h/2]-I2[h])/63//Simplify;
Collect[%,h]
8 10 12
b4 h 85 b5 h 5797 b6 h
b0 - ----- - --------- - ----------- -
4096 262144 16777216
14 16
376805 b7 h 24208613 b8 h
------------- - ---------------
1073741824 68719476736
I4[h_]=I3[h/2]+(I3[h/2]-I3[h])/255//Simplify;
Collect[%,h]
10 12 14
b5 h 341 b6 h 93093 b7 h
b0 + ------- + ---------- + ------------ +
1048576 268435456 68719476736
16
24208613 b8 h
---------------
17592186044416
I5[h_]=I4[h/2]+(I4[h/2]-I4[h])/1023//Simplify;
Collect[%,h]
12 14 16
b6 h 1365 b7 h 1490853 b8 h
b0 - ---------- - ------------- - ----------------
1073741824 1099511627776 1125899906842624
% MIRICHAR aplica la extrapolaci’on repetida de Richardson
% al m’etodo trapezoidal (Integraci’on de Romberg)
% C.E.Neuman, 6-5-97
% inicializaci’on
i=1;
a=0;
b=1;
h=(b-a)/10;
% lazo
while 1
x=a:h:b; % partici’on
l=length(x);
pesos=[1 2*ones(1,l-2) 1]; % pesos de Trapezoidal
II(i,1)=(h/2)*sum(pesos.*mihumps(x)); % m’etodo Trapezoidal
%%%
%%% En este algoritmo se recalcula la funci’on de nuevo, se
%%% puede mejorar aprovechando las evaluaciones previas.
%%%
del(i)=2^(2*i)-1; % divisor para la extrapolaci’on
50 C. CUADERNOS DEL Mathematica Y ARCHIVOS SCRIPT DE MATLAB
for j=(i-1):(-1):1, % l’{i}nea de extrapolaciones
k=i-j+1;
II(j,k)=II(j+1,k-1)+(II(j+1,k-1)-II(j,k-1))/del(k-1) ;
end % rof
if i  7, % terminaci’on ( se puede sustituir por una
% que compare los valores obtenidos de I )
break;
end % fi
h=h/2;
i=i+1;
end % elihw
%%% fin de mirichar.m
La salida de mirichar (valores de II) se consigna en las tablas 1 y 2.
Tabla 1. Integraci´on de Romberg para la funci´on mihumps
(ver tabla 1). La integral (con el Mathematica) resulta Q =
0.2985832539549867
0.29851740902665 0.29819609270927 0.29860841977863 0.29858290374753
0.29827642178861 0.29858264933679 0.29858330243552 0.29858325318208
0.29850609244975 0.29858326161685 0.29858325395166 0.29858325395498
0.29856396932507 0.29858325443074 0.29858325395493 0.29858325395499
0.29857843315432 0.29858325398467 0.29858325395499 0.29858325395499
0.29858204877708 0.29858325395684 0.29858325395499 0
0.29858295266190 0.29858325395510 0 0
0.29858317863180 0 0 0
Tabla 2. Integraci´on de Romberg para la funci´on mihumps (conti-
nuaci´on, ver tablas 1 y 1). La integral (con el Mathematica) resulta
Q = 0.2985832539549867
0.29858325455241 0.29858325395743 0.29858325395498 0.29858325395499
0.29858325395801 0.29858325395498 0.29858325395499 0
0.29858325395499 0.29858325395499 0 0
0.29858325395499 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
C.3. M´etodos de Montecarlo
En lo que sigue veremos dos ejemplos en el cuadrado unitario [0, 1]x[0, 1].
Ejemplo C.3.1. Calculamos mediante el m´etodo de Montecarlo el ´area bajo
la funci´on f(x) = 0.5 en el cuadrado unitario. Realizamos mil veces el c´alculo del
´area estimada mediante diez mil puntos seleccionados al azar.
C.3. M´ETODOS DE MONTECARLO 51
% AZAR3.M script de prueba para m’etodo de Montecarlo
% C.E.N., 05-may-97
rand(’seed’,sum(100*clock)); %inicializa los n’umeros aleatorios
scores=[];
for j=1:1000,
% pru=rand(1,1)
NN=10000;%0*pru;
puntos=rand(NN,2);
I=find(puntos(:,2)  0.5); % determina los puntos bajo la curva
[m,n]=size(I);
scores=[scores; m/NN];
end
mime=mean(scores) % calcula la media aritm’etica
mide=std(scores) % calcula la desviaci’on t’{i}pica
scorord=sort(scores);
[m,n]=size(scores);
mimeord=mean(scores(0.1*m:0.9*m)) % media podada 20%
mideord=std(scores(0.1*m:0.9*m)) % desv’{i}o podado 20%
figure;
hist(scores); % histograma de los valores
save azar3;
% Resultados de la corrida de 1000
% azar3
%mime =
% 0.4997
%mide =
% 0.0050
%mimeord =
% 0.4999
%mideord =
% 0.0050
% axis([0.475 0.525 0 300])
% grid
Vemos que el resultado —utilizando los estimadores robustos— es de 0.500±0.005,
intervalo de confianza que contiene el valor exacto.
En la figura 2 dibujamos el histograma que representa la distribuci´on de pun-
tajes obtenidos por la rutina de Montecarlo.
Ejemplo C.3.2. Calulamos la integral de la funci´on ‘humps’ mediante el m´etodo
de Montecarlo
rand(’seed’,sum(100*clock))
scores=[];
for j=1:1000,
% pru=rand(1,1)
NN=10000;%0*pru;
puntos=rand(NN,2);
I=find( puntos(:,2)  0.01*humps(puntos(:,1)) );
[m,n]=size(I);
52 C. CUADERNOS DEL Mathematica Y ARCHIVOS SCRIPT DE MATLAB
0.48 0.485 0.49 0.495 0.5 0.505 0.51 0.515 0.52 0.525
0
50
100
150
200
250
Figura 2. Histograma de distribuci´on de los valores estimados de
la integral del ejemplo C.3.1
scores=[scores; m/NN];
disp(j);
end
mime=mean(scores)
mide=std(scores)
scorord=sort(scores);
[m,n]=size(scores);
mimeord=mean(scores(0.1*m:0.9*m))
mideord=std(scores(0.1*m:0.9*m))
figure;
hist(scores);
save azar4;
% Resultados de la corrida de 100
% azar4
%mime =
% 2.9845e-001
%mide =
% 1.3248e-002
%mimeord =
% 2.9938e-001
%mideord =
% 1.3119e-002
C.4. INTEGRACI ´ON DE SIMPSON ADAPTATIVA 53
% Resultados de quad
% format short e
% quad(’humps’,0,1,1e-5,1)/100
%ans =
% 2.9858e-001
%
%
C.4. Integraci´on de Simpson adaptativa
function [Q,cnt] = miquad(funfcn,a,b,tol)
%MIQUAD Numerical evaluation of an integral, low order method.
% Q = MIQUAD(’F’,A,B) approximates the integral of F(X) from A to B
% to within a relative error of 1e-3. ’F’ is a string
% containing the name of the function. Function F must return a
% vector of output values if given a vector of input values.
% Q = MIQUAD(F,A,B,TOL) integrates to a relative error of TOL.
%
% MIQUAD uses an adaptive recursive Simpson’s rule.
%
% See also QUAD, QUAD8.
% Basada en QUAD.M
% C.B. Moler, 3-22-87.
% Copyright (c) 1984-94 by The MathWorks, Inc.
% C.E. Neuman, 4-29-97
% [Q,cnt] = miquad(F,a,b,tol) also returns a
% function evaluation count.
if nargin  4, tol = 1.e-3; end
c = (a + b)/2;
% Top level initialization
x = [a b c a:(b-a)/10:b];
% set up function call
args = ’(x)’;
y = eval([funfcn,args]);
fa = y(1);
fb = y(2);
fc = y(3);
lev = 1;
% Adaptive, recursive Simpson’s quadrature
if any(imag(y))
Q0 = 1e30;
else
Q0 = inf;
end
[Q,cnt] = eval([’miquadst(funfcn,a,b,tol,lev,fa,fc,fb,Q0)’]);
cnt = cnt + 3;
Analisis numerico de_integrales_y_ecuaciones_diferenciales_(c._e._neuman)
Analisis numerico de_integrales_y_ecuaciones_diferenciales_(c._e._neuman)
Analisis numerico de_integrales_y_ecuaciones_diferenciales_(c._e._neuman)
Analisis numerico de_integrales_y_ecuaciones_diferenciales_(c._e._neuman)
Analisis numerico de_integrales_y_ecuaciones_diferenciales_(c._e._neuman)
Analisis numerico de_integrales_y_ecuaciones_diferenciales_(c._e._neuman)
Analisis numerico de_integrales_y_ecuaciones_diferenciales_(c._e._neuman)
Analisis numerico de_integrales_y_ecuaciones_diferenciales_(c._e._neuman)
Analisis numerico de_integrales_y_ecuaciones_diferenciales_(c._e._neuman)
Analisis numerico de_integrales_y_ecuaciones_diferenciales_(c._e._neuman)
Analisis numerico de_integrales_y_ecuaciones_diferenciales_(c._e._neuman)
Analisis numerico de_integrales_y_ecuaciones_diferenciales_(c._e._neuman)
Analisis numerico de_integrales_y_ecuaciones_diferenciales_(c._e._neuman)
Analisis numerico de_integrales_y_ecuaciones_diferenciales_(c._e._neuman)
Analisis numerico de_integrales_y_ecuaciones_diferenciales_(c._e._neuman)
Analisis numerico de_integrales_y_ecuaciones_diferenciales_(c._e._neuman)
Analisis numerico de_integrales_y_ecuaciones_diferenciales_(c._e._neuman)
Analisis numerico de_integrales_y_ecuaciones_diferenciales_(c._e._neuman)
Analisis numerico de_integrales_y_ecuaciones_diferenciales_(c._e._neuman)
Analisis numerico de_integrales_y_ecuaciones_diferenciales_(c._e._neuman)
Analisis numerico de_integrales_y_ecuaciones_diferenciales_(c._e._neuman)
Analisis numerico de_integrales_y_ecuaciones_diferenciales_(c._e._neuman)
Analisis numerico de_integrales_y_ecuaciones_diferenciales_(c._e._neuman)
Analisis numerico de_integrales_y_ecuaciones_diferenciales_(c._e._neuman)
Analisis numerico de_integrales_y_ecuaciones_diferenciales_(c._e._neuman)
Analisis numerico de_integrales_y_ecuaciones_diferenciales_(c._e._neuman)
Analisis numerico de_integrales_y_ecuaciones_diferenciales_(c._e._neuman)
Analisis numerico de_integrales_y_ecuaciones_diferenciales_(c._e._neuman)
Analisis numerico de_integrales_y_ecuaciones_diferenciales_(c._e._neuman)
Analisis numerico de_integrales_y_ecuaciones_diferenciales_(c._e._neuman)
Analisis numerico de_integrales_y_ecuaciones_diferenciales_(c._e._neuman)
Analisis numerico de_integrales_y_ecuaciones_diferenciales_(c._e._neuman)
Analisis numerico de_integrales_y_ecuaciones_diferenciales_(c._e._neuman)
Analisis numerico de_integrales_y_ecuaciones_diferenciales_(c._e._neuman)

Más contenido relacionado

La actualidad más candente

Solución de Sistemas de Ecuaciones Lineales Analisis numerico
    Solución de Sistemas de Ecuaciones Lineales   Analisis numerico    Solución de Sistemas de Ecuaciones Lineales   Analisis numerico
Solución de Sistemas de Ecuaciones Lineales Analisis numericolmpd124
 
Rubrica y listas de cotejo matematicas 5ºbloque
Rubrica y listas de cotejo matematicas 5ºbloqueRubrica y listas de cotejo matematicas 5ºbloque
Rubrica y listas de cotejo matematicas 5ºbloqueDiana Viveros
 
“método de euler y runge kutta”
“método de euler y runge kutta”“método de euler y runge kutta”
“método de euler y runge kutta”Astorgo
 
Solución de ecuaciones diferenciales (1)
Solución de ecuaciones diferenciales (1)Solución de ecuaciones diferenciales (1)
Solución de ecuaciones diferenciales (1)Johana Martinez
 
3.2.5.1 metodo de jacobi
3.2.5.1 metodo de jacobi3.2.5.1 metodo de jacobi
3.2.5.1 metodo de jacobiRoger Burgos
 
Ecuaciones lineales
Ecuaciones linealesEcuaciones lineales
Ecuaciones linealesJesusS14
 
Metodos jacobi y gauss seidel
Metodos jacobi y gauss seidelMetodos jacobi y gauss seidel
Metodos jacobi y gauss seidelCesar Mendoza
 
Aritmetica y Geometría
Aritmetica y GeometríaAritmetica y Geometría
Aritmetica y Geometríamacalamos
 
Isoclinas, campos de dirección y métodos de euler
Isoclinas, campos de dirección y métodos de eulerIsoclinas, campos de dirección y métodos de euler
Isoclinas, campos de dirección y métodos de eulerCentro de Multimedios
 
Método de gauss seidel
Método de gauss seidelMétodo de gauss seidel
Método de gauss seidelmariacadena
 
Trabajo ec diferenciales en ingenieria
Trabajo ec diferenciales en ingenieriaTrabajo ec diferenciales en ingenieria
Trabajo ec diferenciales en ingenieriaNilton jara chalco
 
2.metodo iterativo
2.metodo iterativo2.metodo iterativo
2.metodo iterativorjvillon
 
Método de jacobi
Método de jacobiMétodo de jacobi
Método de jacobiTensor
 

La actualidad más candente (20)

Froilan Ramos Métodos de Eliminación Gaussiana
Froilan Ramos Métodos de Eliminación GaussianaFroilan Ramos Métodos de Eliminación Gaussiana
Froilan Ramos Métodos de Eliminación Gaussiana
 
El metodo doolittle
El metodo doolittleEl metodo doolittle
El metodo doolittle
 
Trabajo Range-Kutta
Trabajo Range-KuttaTrabajo Range-Kutta
Trabajo Range-Kutta
 
Linealizacion (1)
Linealizacion (1)Linealizacion (1)
Linealizacion (1)
 
Solución de Sistemas de Ecuaciones Lineales Analisis numerico
    Solución de Sistemas de Ecuaciones Lineales   Analisis numerico    Solución de Sistemas de Ecuaciones Lineales   Analisis numerico
Solución de Sistemas de Ecuaciones Lineales Analisis numerico
 
Rubrica y listas de cotejo matematicas 5ºbloque
Rubrica y listas de cotejo matematicas 5ºbloqueRubrica y listas de cotejo matematicas 5ºbloque
Rubrica y listas de cotejo matematicas 5ºbloque
 
“método de euler y runge kutta”
“método de euler y runge kutta”“método de euler y runge kutta”
“método de euler y runge kutta”
 
Solución de ecuaciones diferenciales (1)
Solución de ecuaciones diferenciales (1)Solución de ecuaciones diferenciales (1)
Solución de ecuaciones diferenciales (1)
 
3.2.5.1 metodo de jacobi
3.2.5.1 metodo de jacobi3.2.5.1 metodo de jacobi
3.2.5.1 metodo de jacobi
 
Ecuaciones lineales
Ecuaciones linealesEcuaciones lineales
Ecuaciones lineales
 
Metodos jacobi y gauss seidel
Metodos jacobi y gauss seidelMetodos jacobi y gauss seidel
Metodos jacobi y gauss seidel
 
Euler y runge kutta
Euler y runge kuttaEuler y runge kutta
Euler y runge kutta
 
2. reg.lin.multiple
2. reg.lin.multiple2. reg.lin.multiple
2. reg.lin.multiple
 
Aritmetica y Geometría
Aritmetica y GeometríaAritmetica y Geometría
Aritmetica y Geometría
 
Isoclinas, campos de dirección y métodos de euler
Isoclinas, campos de dirección y métodos de eulerIsoclinas, campos de dirección y métodos de euler
Isoclinas, campos de dirección y métodos de euler
 
Método de gauss seidel
Método de gauss seidelMétodo de gauss seidel
Método de gauss seidel
 
5.1.2
5.1.25.1.2
5.1.2
 
Trabajo ec diferenciales en ingenieria
Trabajo ec diferenciales en ingenieriaTrabajo ec diferenciales en ingenieria
Trabajo ec diferenciales en ingenieria
 
2.metodo iterativo
2.metodo iterativo2.metodo iterativo
2.metodo iterativo
 
Método de jacobi
Método de jacobiMétodo de jacobi
Método de jacobi
 

Similar a Analisis numerico de_integrales_y_ecuaciones_diferenciales_(c._e._neuman)

Métodos numéricos para ecuaciones diferenciales ordinarias
Métodos numéricos para ecuaciones diferenciales ordinariasMétodos numéricos para ecuaciones diferenciales ordinarias
Métodos numéricos para ecuaciones diferenciales ordinariasJaime Martínez Verdú
 
Métodos de eliminación gaussiana
Métodos de eliminación gaussianaMétodos de eliminación gaussiana
Métodos de eliminación gaussianawilmerleon67
 
Ecuaciones y sist de ecuaciones no lineales
Ecuaciones y sist de ecuaciones no linealesEcuaciones y sist de ecuaciones no lineales
Ecuaciones y sist de ecuaciones no linealesRonny Malpica
 
ALFARO_Cours_00606.pdf
ALFARO_Cours_00606.pdfALFARO_Cours_00606.pdf
ALFARO_Cours_00606.pdfMatiasMerchan1
 
ANALISIS NUMERICO UNIDAD III
ANALISIS NUMERICO UNIDAD IIIANALISIS NUMERICO UNIDAD III
ANALISIS NUMERICO UNIDAD IIIivangobbo94
 
Calculo integrall
Calculo integrallCalculo integrall
Calculo integrallcesariblog
 
Resumen integracion numerica_por_el_metodo_de_los_trapecios
Resumen integracion numerica_por_el_metodo_de_los_trapeciosResumen integracion numerica_por_el_metodo_de_los_trapecios
Resumen integracion numerica_por_el_metodo_de_los_trapeciosFabiana Carnicelli
 
Guia de integración indefinida
Guia de integración indefinida  Guia de integración indefinida
Guia de integración indefinida Hebet Cueva
 
Guia de integración indefinida 2016 ii
Guia de integración indefinida   2016   iiGuia de integración indefinida   2016   ii
Guia de integración indefinida 2016 iiHebet Cueva
 
Definici+¦n de antiderivada radhames canigiani
Definici+¦n de antiderivada radhames canigianiDefinici+¦n de antiderivada radhames canigiani
Definici+¦n de antiderivada radhames canigianicanigiani83
 
Metodos de eliminacion gaussiana
Metodos de eliminacion gaussianaMetodos de eliminacion gaussiana
Metodos de eliminacion gaussianawilfredguedez
 
Técnicas de programación no lineal mixta para ingeniería de sistemas de procesos
Técnicas de programación no lineal mixta para ingeniería de sistemas de procesosTécnicas de programación no lineal mixta para ingeniería de sistemas de procesos
Técnicas de programación no lineal mixta para ingeniería de sistemas de procesosAcademia de Ingeniería de México
 

Similar a Analisis numerico de_integrales_y_ecuaciones_diferenciales_(c._e._neuman) (20)

Tesis matematica
Tesis matematicaTesis matematica
Tesis matematica
 
Algebra lineal
Algebra linealAlgebra lineal
Algebra lineal
 
Métodos numéricos para ecuaciones diferenciales ordinarias
Métodos numéricos para ecuaciones diferenciales ordinariasMétodos numéricos para ecuaciones diferenciales ordinarias
Métodos numéricos para ecuaciones diferenciales ordinarias
 
Métodos de eliminación gaussiana
Métodos de eliminación gaussianaMétodos de eliminación gaussiana
Métodos de eliminación gaussiana
 
Python
PythonPython
Python
 
Ecuaciones y sist de ecuaciones no lineales
Ecuaciones y sist de ecuaciones no linealesEcuaciones y sist de ecuaciones no lineales
Ecuaciones y sist de ecuaciones no lineales
 
40 diapositivas
40 diapositivas40 diapositivas
40 diapositivas
 
Alfaro cours 2006
Alfaro cours 2006Alfaro cours 2006
Alfaro cours 2006
 
ALFARO_Cours_00606.pdf
ALFARO_Cours_00606.pdfALFARO_Cours_00606.pdf
ALFARO_Cours_00606.pdf
 
ANALISIS NUMERICO UNIDAD III
ANALISIS NUMERICO UNIDAD IIIANALISIS NUMERICO UNIDAD III
ANALISIS NUMERICO UNIDAD III
 
Calculo integrall
Calculo integrallCalculo integrall
Calculo integrall
 
Resumen integracion numerica_por_el_metodo_de_los_trapecios
Resumen integracion numerica_por_el_metodo_de_los_trapeciosResumen integracion numerica_por_el_metodo_de_los_trapecios
Resumen integracion numerica_por_el_metodo_de_los_trapecios
 
edparciales.pdf
edparciales.pdfedparciales.pdf
edparciales.pdf
 
Guia de integración indefinida
Guia de integración indefinida  Guia de integración indefinida
Guia de integración indefinida
 
Guia de integración indefinida 2016 ii
Guia de integración indefinida   2016   iiGuia de integración indefinida   2016   ii
Guia de integración indefinida 2016 ii
 
Definici+¦n de antiderivada radhames canigiani
Definici+¦n de antiderivada radhames canigianiDefinici+¦n de antiderivada radhames canigiani
Definici+¦n de antiderivada radhames canigiani
 
Metodos de eliminacion gaussiana
Metodos de eliminacion gaussianaMetodos de eliminacion gaussiana
Metodos de eliminacion gaussiana
 
Deambular
DeambularDeambular
Deambular
 
Técnicas de programación no lineal mixta para ingeniería de sistemas de procesos
Técnicas de programación no lineal mixta para ingeniería de sistemas de procesosTécnicas de programación no lineal mixta para ingeniería de sistemas de procesos
Técnicas de programación no lineal mixta para ingeniería de sistemas de procesos
 
tema6.
tema6.tema6.
tema6.
 

Analisis numerico de_integrales_y_ecuaciones_diferenciales_(c._e._neuman)

  • 2. Temas de An´alisis Num´erico y Programaci´on Vol´umenes: I : Cardona, A., y Neuman, C.E.: Temas de Programaci´on I, 1996, (se- gunda edici´on en preparaci´on, 1997) II : Neuman, C.E. (editor): Matem´atica asistida por computadora, 1996 III : Neuman, C.E.: An´alisis Num´erico de Integrales y Ecuaciones Diferen- ciales, 1997 IV : Neuman, C.E.: Algoritmos Geom´etricos y Gr´aficos en 3D. Laboratorios de Matem´atica, segunda edici´on, 1999. V : Neuman, C.E., Vilchez, A.G.: Algoritmos Geom´etricos y Gr´aficos en 3D. Laboratorios de Matem´atica, tercera edici´on (en preparaci´on), 2001.
  • 3. ii Temas de An´alisis Num´erico y Programaci´on Volumen VI An´alisis Num´erico de Integrales y Ecuaciones Diferenciales ¶ Segunda edici´on Carlos E. Neuman Departamento de Matem´atica (FIQ) Universidad Nacional del Litoral Santa Fe 2001 ∞ ¶ Trabajo realizado con fondos provenientes de la Universidad Nacional del Litoral (UNL), a trav´es de la programaci´on Curso de Acci´on para la Investigaci´on y el Desarrollo (CAI+D), Secretar´ıa de Ciencia y T´ecnica de la UNL
  • 4. An´alisis Num´erico de Integrales y Ecuaciones Diferenciales Carlos E. Neuman Departamento de Matem´atica, FIQ, UNL, Santiago del Estero 2829, 3000 Santa Fe, Argentina E-mail address: ceneuman@fiqus.unl.edu.ar URL: http://www.intec.unl.edu.ar/CN/CNBook3.pdf
  • 5. Key words and phrases. Integraci´on num´erica, Resoluci´on num´erica de ecuaciones diferenciales, M´etodos de un paso, Integraci´on adaptativa Trabajo realizado con fondos provenientes de la Universidad Nacional del Litoral (UNL), a trav´es de la programaci´on Curso de Acci´on para la Investigaci´on y el Desarrollo (CAI+D), Secretar´ıa de Ciencia y T´ecnica de la UNL. Resumen. En este texto se tratan temas de integraci´on num´erica de funciones y de ecuaciones diferenciales, teoremas de existencia y unicidad de soluciones, convergencia, estabilidad y consistencia de soluciones aproximadas de ecua- ciones diferenciales y algunos complementos te´oricos. Se presentan numerosos ejemplos y ejercicios y dos laboratorios de integraci´on adaptativa.
  • 6. ´Indice General Prefacio xiii Prefacio a la segunda edici´on xvii ´Indice de Tablas 1 ´Indice de Figuras 3 Cap´ıtulo 1. Integraci´on 1 1.1. Introducci´on 1 1.2. La integral de Riemann–Stieltjes 3 1.3. La f´ormula de suma de Euler 4 1.4. M´etodos b´asicos de integraci´on num´erica 7 1.5. M´etodos de extrapolaci´on 11 1.6. Cuadratura de Gauß 12 1.7. M´etodos de Montecarlo 13 1.8. M´etodos adaptativos 16 1.9. Ejercicios 17 Cap´ıtulo 2. Ecuaciones diferenciales 21 2.1. Introducci´on 21 2.2. M´etodos en diferencias de un paso 23 2.3. Ejercicios 33 Ap´endice A. Bibliograf´ıa y referencias 35 A.1. Textos b´asicos 35 A.2. Bibliograf´ıa complementaria 35 Ap´endice B. Coeficientes indeterminados con el Mathematica 37 B.1. El m´etodo de Simpson 37 B.2. El m´etodo de Newton 38 B.3. El m´etodo de cuadratura de Gauß de tres puntos 40 B.4. Los coeficientes de la cuadratura de Gauß de cinco puntos 41 Ap´endice C. Cuadernos del Mathematica y archivos script de Matlab 47 C.1. La funci´on mihumps 47 C.2. Extrapolaci´on repetida de Richardson 48 C.3. M´etodos de Montecarlo 50 C.4. Integraci´on de Simpson adaptativa 53 C.5. El m´etodo cl´asico de Runge-Kutta 55 Ap´endice D. La integral de Riemann–Stieltjes 59 vii
  • 7. viii ´INDICE GENERAL D.1. Funciones de variaci´on acotada 59 D.2. La integral 61 D.3. F´ormula de la suma de Euler 65 D.4. Pero, ¿Hay funciones integrables? 65 D.5. Ejercicios 66 Ap´endice E. Polinomios y n´umeros de Bernoulli 67 E.1. Polinomios de Bernoulli con el Mathematica 67 E.2. N´umeros de Bernoulli 73 E.3. Integraci´on por partes 74 Ap´endice F. Laboratorio de Matem´atica: Integraci´on Adaptativa 75 F.1. Objetivos 75 F.2. Antes del laboratorio 75 F.3. Laboratorio 76 F.4. Aplicaciones y desarrollos avanzados 77 F.5. Referencias 77 Ap´endice G. Laboratorio de Matem´atica: Soluci´on adaptativa de ODEs 79 G.1. Objetivos 79 G.2. Antes del laboratorio 79 G.3. Laboratorio 79 G.4. Aplicaciones y desarrollos avanzados 79 G.5. Referencias 80 Ap´endice H. Existencia y unicidad de soluciones de ODEs 81 H.1. Referencias 85
  • 9.
  • 10. ´INDICE GENERAL xi Our ancestors were eager to understand the worlds but had not quite stumbled upon the method. They imagined a small, quaint, tidy universe in which the dominant forces were gods like Anu, Ea, and Shamash. In that universe humans played an important if not central role. We were intimately bound up with the rest of nature. The treatment of tooth- ache with second-rate beer was tied to the deepest cosmological mysteries. Today we have discovered a powerful and elegant way to understand the uni- verse, a method called science; it has revealed to us a universe so ancient and so vast that human affairs seem at first sight to be of little consequence. Sagan, C.: Cosmos, Ballantine, New York, 1992.
  • 11.
  • 12. Prefacio Este texto surgi´o de la necesidad de presentar una visi´on unificada de los m´etodos elementales de integraci´on num´erica de funciones y de algunos de los que son ´utiles para las ecuaciones diferenciales ordinarias. ♣ Los p´arrafos que se colocan entre tr´eboles pueden ser omitidos en las primeras lecturas puesto que no son esenciales para la continuidad del texto. ♣ Seguimos en t´erminos generales las ideas planteadas en Linz∗ (1988). Para este autor el t´ermino matem´atica computacional esta asociado con el espectro amplio de actividades relacionadas con la soluci´on aproximada de problemas cient´ıficos expresados en t´erminos de modelos matem´aticos, que, en su forma t´ıpica, est´an constituidos por ecuaciones diferenciales e integrales de las que, en general, no se conoce soluci´on en forma cerrada. Para resolverlos las ecuaciones son convertidas, mediante discretizaci´on, en un conjunto finito de ecuaciones m´as simples que puedan ser resueltas por m´etodos algebraicos. Se puede distinguir la metodolog´ıa num´erica, que estudia m´etodos para dis- cretizar los operadores diferenciales e integrales y c´omo resolver los sistemas finitos resultantes, del an´alisis num´erico que involucra el estudio riguroso de los algoritmos creados por la metodolog´ıa. La meta primaria del an´alisis es describir la relaci´on entre la soluci´on exacta de la ecuaci´on original, y la aproximada obtenida a partir de la versi´on discreta. El an´alisis num´erico ha resultado muy ´util para complementar el proceso de creaci´on de m´etodos num´ericos generado por las aplicaciones ingenieriles. Por ejem- plo las t´ecnicas de relajaci´on o de elementos finitos fueron creadas por ingenieros basados en la intuici´on f´ısica. El an´alisis num´erico posterior ha resultado crucial para la consolidaci´on de estos m´etodos, la extensi´on de su aplicabilidad, y el estudio de sus propiedades de convergencia o estabilidad. En muchos casos a partir de objetivos del An´alisis Num´erico se han obtenido nuevos resultados en An´alisis Funcional, en cuyos t´erminos suelen plantearse los problemas. Seg´un resume Linz (1988): En art´ıculos publicados en revistas como el SIAM Journal on Numerical Analysis o Numerische Mathematik se encuentran habitual- mente t´erminos como espacios de Hilbert, clausura compacta, y convergencia d´ebil. Estos conceptos le resultan muy ´utiles al te´orico y han facilitado el establecimiento de una teor´ıa abarcativa y coherente de la soluci´on aproximada de las ecuaciones de operadores. ♣ Ilustraremos esto con el ejemplo de la ecuaci´on del operador lineal Lx = y (0.1) ∗ Las referencias se enumeran en el ap´endice A, p´agina 35 xiii
  • 13. xiv PREFACIO donde L: X → Y es un operador lineal entre los espacios normados X e Y . El miembro derecho, y, es un dato y la ecuaci´on debe ser resuelta para la inc´ognita x. Suponemos que L tiene una inversa acotada en Y . Un ejemplo muy simple de esto es la ecuaci´on d dt x(t) = y(t) = f(t, x(t)) (0.2) con la condici´on inicial x(t0) = x0 (0.3) En el proceso de discretizaci´on la ecuaci´on (0.1) es reemplazada por una suce- si´on param´etrica de problemas Lnxn = yn (0.4) donde Ln es un operador en ciertos espacios n–dimensionales Xn e Yn. El s´ımbolo n se denomina par´ametro de discretizaci´on y mide el grado en el que el operador discreto Ln representa al operador L. Como Ln es efectivamente una matriz de n×n, es posible, en principio, resolver (0.4) en forma algebraica y obtener la soluci´on aproximada xn. El objetivo fundamental del an´alisis posterior es conocer la relaci´on entre la soluci´on verdadera x y su aproximaci´on xn. En particular, desearemos demostrar la convergencia. Esto significa que, cuando se incrementa n, la soluci´on aproximada deber´a acercarse m´as y m´as a la soluci´on verdadera, en el sentido que lim n→∞ x − xn = 0 (0.5) Usualmente, el primer paso del an´alisis es definir el error de consistencia rn(x) = Lx − Lnx (0.6) De (0.1) y (0.4) se obtiene directamente que Ln(x − xn) = y − yn − rn(x) (0.7) y obtenemos una cota para el error de la soluci´on aproximada x − xn ≤ L−1 n { y − yn + rn } (0.8) En la mayor´ıa de los casos es relativamente elemental mostrar que lim n→∞ y − yn = 0 (0.9) y que, bajo condiciones bien definidas lim n→∞ rn = 0 (0.10) Se necesita una condici´on adicional, la condici´on de estabilidad lim n→∞ L−1 n ≤ K < ∞ (0.11) Si reemplazamos en la ecuaci´on (0.8), obtenemos el teorema central del an´alisis num´erico: estabilidad y consistencia implican convergencia. Se tiene un gran n´umero de problemas no resueltos por causa de las dificultades t´ecnicas de las que el problema principal es verificar la condici´on de estabilidad (0.11). Hay otras cuestiones, por ejemplo, cu´an dificil es resolver (0.4) o cu´an velozmente converge xn a x, pero, normalmente estas son menos complejas que la estabilidad.
  • 14. PREFACIO xv Supongamos ahora que hemos determinado que nuestro m´etodo num´erico es estable y convergente. ¿Qu´e nos dice esto? Nos expresa que, en alg´un sentido asint´otico, el m´etodo funciona. A menudo podemos decir m´as. En muchos casos el error de aproximaci´on puede ser acotado en forma m´as expl´ıcita como x − xn ≤ n−p L−1 n η(x) (0.12) donde η es un funcional de la soluci´on desconocida x El exponente p se denomina orden de convergencia y nos da informaci´on respecto de cu´an exacto es el m´etodo. Para un dado nivel de esfuerzo computacional, un m´etodo con un orden de conver- gencia mayor tender´a a dar mejores resultados que uno con un orden menor. La cota que nos da la expresi´on 0.12 tiene una utilidad limitada puesto que depende de la inc´ognita x. Se puede sortear esa dificultad realizando un an´alisis a posteriori que utiliza la soluci´on calculada xn en lugar de la x. A partir de las ecuaciones 0.1 y 0.4 se puede obtener x − xn ≤ n−p L−1 ρn (0.13) donde ρn es el residuo de la soluci´on calculada ρn(xn) = Lxn − y (0.14) Es posible obtener cotas buenas para ρn , en cambio es m´as dif´ıcil obtener cotas realistas para L−1 lo que se convierte en el elemento clave del que depende el an´alisis a posteriori. ♣ Los problemas b´asicos de la metodolog´ıa num´erica no son el establecimiento del m´etodo de discretizaci´on, sino el manejo de los detalles involucrados en la re- presentaci´on de dominios, de los propios m´etodos de discretizaci´on, de los m´etodos de operaci´on con los sistemas de ecuaciones, de las matrices ralas, y de los m´etodos para resolver los sistemas de ecuaciones con dimensiones muy altas. En el desarro- llo de m´etodos para resolver estos problemas suele incluirse —cuando se trata de utilizar la metodolog´ıa en las aplicaciones— una dosis relativamente alta de lo que puede denominarse pragm´atica num´erica la que, por tratarse de algo naturalmente impreciso, siempre puede fallar, pero que no deber´ıa ser totalmente ignorada por causa de ello. Los beneficios de la metodolog´ıa num´erica son tan considerables que se la utiliza a´un en los casos en que no puede justificarsela rigurosamente. La idea fuerza no es rechazar los puntos de vista pragm´aticos sino desarrollar los m´as efectivos. En el primer cap´ıtulo se estudian algunos aspectos relevantes del c´alculo de inte- grales. Se desarrollan los m´etodos cl´asicos, los de extrapolaci´on y los de Montecarlo. Debido a que las extensiones a integrales m´ultiples son relativamente directas, so- lamente se trata el problema de vol´umenes e hipervol´umenes utilizando el m´etodo de Montecarlo por la simple raz´on que, en muchos casos, es el ´unico aplicable. En el segundo cap´ıtulo se introduce el problema de hallar soluciones aproximadas para problemas de valores iniciales de ecuaciones diferenciales ordinarias. Asimismo se deducen algunos m´etodos elementales de los del tipo de ‘un paso’. En los ap´endices se presentan ejemplos realizados con Matlab y Mathematica, se desarrolla una breve introducci´on a la teor´ıa de la integral y se realizan c´alculos para obtener los polino- mios de Bernoulli, que resultan necesarios para la interpretaci´on de los coeficientes en el desarrollo asint´otico del error en los m´etodos trapezoidal y Simpson.
  • 15. xvi PREFACIO En el ´ultimo de los ap´endices se incluye un Laboratorio de Matem´atica en el tema de la cuadratura adaptativa. He elegido este por la simplicidad del algorit- mo recursivo. Sin embargo, cualquiera de los restantes temas del texto, por su importancia matem´atica, su riqueza y su atractivo, merece la elaboraci´on de un Laboratorio propio. El objetivo de estos laboratorios es aspirar a la recreaci´on viva de conceptos y temas que enriquecen el portafolios del pregraduado en Matem´atica. Los libros citados en la secci´on de bibliograf´ıa y el conjunto de referencias en ellos citados facilitan al lector interesado el estudio de cualquiera de los temas en que desee especializarse. Este texto, que se basa en su totalidad en ellos, y que comparte la selecci´on de temas de inter´es que tratan, no aspira a colocarse en un plano de igualdad, sino, humildemente, enfatizar algunos aspectos y no otros. Debo agradecer a los sucesivos grupos de alumnos que han enriquecido el curso de C´alculo Num´erico con filosas preguntas y soluciones ingeniosas a los problemas propuestos. Asimismo a mis colegas por la discusi´on de temas y el desarrollo de m´etodos aptos para la ense˜nanza. En cambio, de los errores que pudiera contener, me hago ´unico responsable. Carlos E. Neuman Santa Fe, 29 de abril de 1997
  • 16. Prefacio a la segunda edici´on Esta nueva edici´on se desarrolla con varias correcciones y agregados con el fin de adaptar el texto a los cursos de C´alculo Num´erico I y II en la modalidad ‘a distancia’. Carlos E. Neuman Santa Fe, 12 de noviembre de 2001 xvii
  • 17.
  • 18. ´Indice de Tablas 1 Extrapolaci´on de Richardson (M´etodo de Romberg) 12 1 Integraci´on de Romberg para la funci´on mihumps (ver tabla 1). La integral (con el Mathematica) resulta Q = 0.2985832539549867 50 2 Integraci´on de Romberg para la funci´on mihumps (continuaci´on, ver tablas 1 y 1). La integral (con el Mathematica) resulta Q = 0.2985832539549867 50 1
  • 19.
  • 20. ´Indice de Figuras 1 Campo de direcciones de f(x, y) = −xy 21 2 El rect´angulo S est´a contenido en el R 22 3 Primer m´etodo de Runge 26 4 Segunda f´ormula de Runge 28 5 El m´etodo de Runge-Kutta 29 1 La funci´on mihumps 47 2 Histograma de distribuci´on de los valores estimados de la integral del ejemplo C.3.1 52 3 Integraci´on por Runge-Kutta cl´asico de x = −tx en [0, 7] 57 1 El polinomio de Bernoulli B1(x) 69 2 El polinomio de Bernoulli B2(x) 70 3 El polinomio de Bernoulli B6(x) 71 4 El polinomio de Bernoulli B10(x) 72 5 El polinomio de Bernoulli B40(x) 73 1 Puntos de evaluaci´on de quad para la funci´on f(x) en [0, 2] 76 3
  • 21.
  • 22. CAP´ıTULO 1 Integraci´on 1.1. Introducci´on El objetivo del presente cap´ıtulo es estudiar m´etodos num´ericos para calcular integrales definidas de la forma b a f(x) dx (1.1) Los m´etodos m´as simples —que se originan en la propia definici´on de la integral de Riemann,— se establecen como sigue. Se elige una partici´on regular de paso h en el intervalo [a, b] de modo de obtener N subintervalos (es decir que Nh = (b − a). Se toma un valor conveniente de la funci´on f en cada subintervalo y se calcula la suma h N i=1 fi (1.2) donde fi es el valor elegido de la funci´on f en el intervalo [xi−1, xi]. En el caso de escoger fi = f(xi−1) se obtiene una “regla del rect´angulo” b a f(x) dx h N i=1 f(xi−1) (1.3) si, en cambio, se toma fi = f(xi) se obtiene otra regla del rect´angulo b a f(x) dx h N i=1 f(xi) (1.4) en realidad ‘la’ regla del rect´angulo es m´as precisa si se elige fi = f((xi−1 + xi)/2), en este caso se obtiene la regla del rect´angulo R(h) (o ‘midpoint’) b a f(x) dx R(h) = h N i=1 f( xi−1 + xi 2 ) (1.5) con fi = (f(xi−1) + f(xi))/2, en cambio, se obtiene la regla del trapecio T(h) b a f(x) dx T(h) = h N i=1 f(xi−1) + f(xi) 2 (1.6) es decir En algunos textos este m´etodo se denomina trapezoidal compuesto, pero la distinci´on es poco relevante T(h) = h( f(a) 2 + N−1 i=1 f(xi) + f(b) 2 ) (1.7) 1
  • 23. 2 1. INTEGRACI ´ON y, si el n´umero N de subintervalos es par, se pueden agrupar los subintervalos de a dos contiguos y, en cada par utilizar f2i+1 = (f(x2i) + 4f(x2i+1) + f(x2i+2))/6, con lo que se obtiene la “regla de Simpson” S(h) b a f(x) dx S(h) = 2h 6 N 2 −1 j=0 (f(x2j) + 4f(x2j+1) + f(x2j+2)) (1.8) es decirLa regla de Simpson es exacta para polinomios de orden cuatro S(h) = 2h 6 (f(a) + 4f(x1) + 2f(x2) + · · · + 4f(xN−1) + f(xN )) (1.9) En todos estos casos se tiene la expresi´on b a f(x) dx A N i=0 cif(xi) (1.10) dondeEl operador ‘.*’ facilita la integraci´on num´erica [Rect´angulo]A = 2h y c = (0, 1, 0, 1, 0, 1, . . . , 0, 1, 0) [Trapezoidal]A = h/2 y c = (1, 2, 2, . . . , 2, 1) [Simpson] A = 2h/6 y c = (1, 4, 2, 4, . . . , 2, 4, 1) Observaci´on 1.1.1. Las expresiones anteriores sugieren un m´etodo muy simple para programar estos m´etodos elementales en Matlab De la inspecci´on de estos m´etodos surgen varias ideas interesantes (1) Se tiene una ´ıntima relaci´on entre integrales y sumas y las primeras se aproximan por las segundas. (2) Es necesario desarrollar m´etodos para estudiar los errores de aproximaci´on de estas reglas de integraci´on (es simple establecerlas pero no es tan claro c´omo estimar los respectivos errores) (3) Se deber´ıan explorar m´etodos aplicables a particiones que no sean regu- lares Para la primera utilizaremos una teor´ıa de la integral que permite unificar las metodolog´ıas para tratar con integrales y sumas. Citamos textualmente a Tom Apostol en la introducci´on al cap´ıtulo 7 (p´ag. 169) de su texto (Apostol, 1976)La integral de Riemann- Stieltjes generaliza la in- tegral de Riemann . . . se estudia el proceso de integraci´on con cierto detalle. En rea- lidad consideramos un concepto m´as general que el de Riemann: a saber, la integral de Riemann-Stieltjes, que involucra dos funciones f y α. El s´ımbolo que utilizamos para designar tales integrales es b a f(x)dα(x), o alguno similar, y la integral de Riemann se obtiene como caso particular cuando α(x) = x. Cuando α tiene derivada con- tinua, la definici´on es tal que la integral de Stieltjes b a f(x)dα(x) se convierte en la intgral de Riemann b a f(x)α (x) dx. Sin embargo, la integral de Stieltjes tiene sentido en el caso en que α no es diferen- ciable e incluso cuando no es continua. De hecho, es al tratar con funciones discontinuas α cuando se hace patente la importancia de la integral de Stieltjes. Eligiendo adecuadamente una funci´on disconti- nua α, una suma finita o infinita puede expresarse como una integral de Stieltjes, y la sumaci´on y la integral de Riemann ordinaria son casos especiales de este proceso m´as general. Los problemas f´ısicos que consideran la distribuci´on de masas que son en parte discretas
  • 24. 1.2. LA INTEGRAL DE RIEMANN–STIELTJES 3 y en parte continuas pueden ser abordados utilizando la integral de Stieltjes. En la teor´ıa matem´atica de la Probabilidad esta integral es un instrumento muy ´util que hace posible la consideraci´on simult´anea de variables aleatorias continuas y discretas. En muchos casos se utilizan integrales para calcular sumas que pueden ser complicadas de obtener por otros m´etodos, en raz´on de ello las interrelaciones entre unas y otras es mucho mayor de lo que puede suponerse en una primera aproximaci´on. En las secciones 1.4 y 1.6 estudiamos herramientas para obtener diversos m´etodos de integraci´on y para estimar los errores de las aproximaciones conseguidas. El es- quema b´asico es aproximar la integral por una suma del tipo La integral aproximada es un promedio pesado de los valores de la funci´on N i=1 wif(xi) (1.11) sobre una partici´on del intervalo de integraci´on, y elegir en forma conveniente los pesos wi y los puntos xi. Cuando aceptamos que las particiones no sean regulares surge naturalmente la idea de refinar la partici´on en los subintervalos donde los errores sean muy grandes y la idea opuesta de agrupar intervalos donde los errores sean excesivamente pe- que˜nos. Esto nos lleva a los denominados m´etodos adaptativos de integraci´on que estudiaremos en la secci´on 1.8 1.2. La integral de Riemann–Stieltjes 1.2.1. Definici´on y propiedades. Definici´on 1.2.1. Sea P = {x0, x1, . . . , xn} una partici´on del intervalo [a, b] y sea, para cada k, ξk un punto del intervalo [xk−1, xk]. Una suma de la forma S(P, f, g) = n k=1 f(ξk)∆gk (1.12) (donde ∆gk = g(xk) − g(xk−1)) se llama suma de Riemann-Stieltjes de f respecto de g. Diremos que f es integrable respecto de g en [a, b] si existe un n´umero I que satisface la siguiente propiedad: para cada ε > 0, existe una partici´on Pε de [a, b] tal que, para cada partici´on P m´as fina que Pε y para cada elecci´on de los puntos ξk del intervalo [xk−1, xk], k = 1, . . . , n, se tiene |S(P, f, g) − I| < ε (1.13) Observaci´on 1.2.1. Si un tal n´umero I existe, entonces es ´unico y se representa por la expresi´on b a f(x)dg(x) (1.14) Ejemplo 1.2.1. Si g(x) = x entonces la integral se reduce a una integral de Riemann Ejemplo 1.2.2. Si g(x) es de clase C1 en [a, b] entonces la integral resulta b a f(x)g (x) dx (1.15) Nota: Este resultado se demuestra en el teorema D.2.5 en la p´agina 63
  • 25. 4 1. INTEGRACI ´ON Ejemplo 1.2.3. Si f es continua y g(x) = x entonces la integral resulta i∈Z a<i≤b f(i) (1.16) y si g(x) = x entonces i∈Z a≤i<b f(i) (1.17) Nota: Este resultado se demuestra en el teorema D.2.7 en la p´agina 65. Notar la diferencia entre los l´ımites de suma. 1.2.2. Integraci´on por partes. Teorema 1.2.2. [F´ormula de integraci´on por partes] Si f es integrable respecto de g en el intervalo [a, b], en el sentido de Riemann-Stieltjes, entonces g es integrable respecto de f en el intervalo [a, b], en el sentido de Riemann-Stieltjes, y se tiene b a f(x)dg(x) + b a g(x)df(x) = f(b)g(b) − f(a)g(a) (1.18) Demostraci´on: Ver el teorema D.2.4 en la p´agina 62 En el ap´endice D en p´agina 59 se desarrollan aspectos elementales de la teor´ıa de integraci´on de Riemann-Stieltjes siguiendo el texto de Apostol (1976) 1.3. La f´ormula de suma de Euler Sea {x0, x1, . . . , xn}, donde x0 = a, x1 = a + h, . . . , xn = a + nh = b, una partici´on regular del intervalo [a, b]. La suma trapezoidal para la integral b a f(x) dx (1.19) se denota T(h) y resulta ser T(h) = h 1 2 f0 + f1 + f2 + f3 + . . . + fn−1 + 1 2 fn (1.20) o bien T(h) = h 1 2 f0 + n−1 i=1 fi + 1 2 fn (1.21) Desear´ıamos demostrar el siguiente teorema Teorema 1.3.1. Sea T(h) la suma trapezoidal 1.21. Entonces T(h) = b a f(x) dx + h2 12 (f (b) − f (a)) (1.22) − h4 720 (f(3) (b) − f(3) (a)) (1.23) + h6 30240 (f(5) (b) − f(5) (a)) (1.24) + . . . + c2rh2r (f(2r−1) (b) − f(2r−1) (a)) + O(h2r+2 ) (1.25)
  • 26. 1.3. LA F ´ORMULA DE SUMA DE EULER 5 Donde los coeficientes {c2r} tienen la funci´on generatriz 1 + c2h2 + c4h4 + c6h6 + . . . = h 2 eh + 1 eh − 1 (1.26) (para la interpretaci´on detallada de los coeficientes ver el ap´endice E en la p´agina 67) 1.3.1. El s´ımbolo ‘O’. La notaci´on ‘O grande’ es ´util para representar y calcular en forma exacta con magnitudes aproximadas. En general la notaci´on O(f(n)) se usa —si f(n) es una funci´on definida sobre los n´umeros naturales— con el fin de representar un n´umero xn con el significado de que existe una constante positiva M tal que el n´umero xn representado por O(f(n)) satisface la condici´on |xn| ≤ M|f(n)|, ∀n ≥ n0 (1.27) No damos expl´ıcitamente —en general— las constantes M y n0, las que suelen ser distintas en cada aparici´on de O Ejemplo 1.3.1. Sabemos que n i=1 i2 = 1 3 n(n + 1 2 )(n + 1) = 1 3 n3 + 1 2 n2 + 1 6 n (1.28) en consecuencia n i=1 i2 = O(n3 ) (1.29) n i=1 i2 = 1 3 n3 + O(n2 ) (1.30) La ecuaci´on 1.30 es m´as fuerte que la ecuaci´on 1.29 (Justificar la validez de estas ecuaciones y la relaci´on entre ambas). Las siguientes son operaciones v´alidas con la notaci´on ‘O’ f(n) = O(f(n)) (1.31) cO(f(n)) = O(f(n)), si c es una constante (1.32) O(f(n)) + O(f(n)) = O(f(n)) (1.33) O(O(f(n))) = O(f(n)) (1.34) O(f(n))O(g(n)) = O(f(n)g(n)) (1.35) O(f(n)g(n)) = f(n)O(g(n)) (1.36) Nota 1.3.1. La notaci´on ‘ O ’ suele extenderse a la variable real x. Por ejemplo se escribe ex = 1 + x + 1 2! x2 + 1 3! x3 + O(x4 ) (1.37) Una cierta dosis de observaci´on permite resolver la siguiente paradoja. Ejercicio 1.3.2. ¿Qu´e est´a m´al en el siguiente razonamiento? “Como n = O(n), 2n = O(n), . . . , se tiene 1≤k≤n kn = 1≤k≤n O(n) = 0(n2 )” (1.38) Notar que es f´acil demostrar que 1≤k≤n kn = O(n3 ).
  • 27. 6 1. INTEGRACI ´ON Ejercicio 1.3.3. Demostrar que si se permite a x tomar valores arbitraria- mente grandes, entonces, para toda potencia m, ex = O(xm ) Este tipo de desarrollos en potencias de un ope- rador suele utilizarse en los cursos elementales de C´alculo para la f´ormula del polinomio de Tay- lor en dos variables in- dependientes 1.3.2. lgebra de operadores. Si D representa el operador d/dx se tiene f(x + h) = f(x) + hf (x) + h2 2! f (x) + h3 3! f (x) + . . . (1.39) = 1 + hD + (hD)2 2! + (hD)3 3! + . . . f(x) (1.40) = ehD f(x) (1.41) donde el operador ehD debe entenderse definido por la serie, para la que es f´acil verificar que es normalmente convergente. En consecuencia f(x + 2h) = ehD f(x + h) = e2hD f(x) (1.42) y as´ı sucesivamente. Utilizamos esta representaci´on de la traslaci´on en la siguiente f´ormula T(h) = h 1 2 f0 + f1 + f2 + . . . + fn−1 + 1 2 fn (1.43) = h 1 2 + ehD + e2hD + . . . + e(n−1)hD + 1 2 enhD f(x0) (1.44) = h  − 1 2 + n−1 j=0 ejhD + 1 2 enhD   f(x0) (1.45) luego, por la f´ormula de la suma geom´etrica, T(h) = h − 1 2 + enhD − 1 ehD − 1 + 1 2 enhD f(x0) (1.46) = h 1 ehD − 1 + 1 2 enhD − 1 f(x0) (1.47) = h 2 ehD + 1 ehD − 1 enhD − 1 f(x0) (1.48) pero t 2 et + 1 et − 1 = ∞ j=0 c2jt2j (1.49) para la que, con el Mathematica, se obtiene directamente: Series[(h/2)(Exp[h]+1)/(Exp[h]-1),{h,0,21}] 2 4 6 8 10 h h h h h 1 + -- - --- + ----- - ------- + -------- - 12 720 30240 1209600 47900160 12 14 16 691 h h 3617 h ------------- + ----------- - ----------------- + 1307674368000 74724249600 10670622842880000 18 20 43867 h 174611 h 22
  • 28. 1.4. M´ETODOS B´ASICOS DE INTEGRACI ´ON NUM´ERICA 7 ------------------- - --------------------- + O[h] 5109094217170944000 802857662698291200000 Resulta entonces T(h) =  1 + ∞ j=1 c2j(hD)2j   enhD − 1 D f(x0) (1.50) = enhD − 1 D f(x0) + ∞ j=1 c2jh2j D2j−1 enhD − 1 f(x0) (1.51) = b a f(x) dx + ∞ j=1 c2jh2j f(2j−1) (b) − f(2j−1) (a) (1.52) lo que justifica el enunciado del teorema 1.3.1 1.3.3. La f´ormula de Euler. En el ap´endice E (p´agina 67) demostramos una f´ormula de suma de Euler que enunciamos a continuaci´on con modificaciones. Teorema 1.3.2. Supongamos que f es una funci´on suave, de clase C∞ en el intervalo [a, b]. Sea n ≥ 1, h = (b − a)/n, xj = a + jh, para j = 0, 1, . . . , n. Sea, adem´as, {x} = x − x . Entonces se tiene b a f(x) dx = h f(a) 2 + f(x1) + . . . + f(xn−1) + f(a) 2 +h b a B1 x − a h f (x) dx (1.53) La demostraci´on est´a presentada en el ap´endice. Se tiene la siguiente f´ormula de integraci´on por partes (ver 74), 1 m! b a Bm({(x − a)/h})f(m) (x) dx = 1 (m + 1)! (Bm+1(1)f(m) (b) − Bm+1(0)f(m) (a) − 1 (m + 1)! b a Bm+1({(x − a)/h})f(m+1) (x) dx (1.54) Utilizandola directamente se puede generalizar la f´ormula 1.53 para obtener por inducci´on el teorema 1.3.1 de la p´agina 4 1.4. M´etodos b´asicos de integraci´on num´erica En las secciones 4.3 y 4.4 del texto de Burden y Faires (1996) se deducen y des- arrollan los m´etodos b´asicos simples y compuestos para la determinaci´on num´erica de la integral b a f(x) dx (1.55) La deducci´on de los mismos se basa en la aproximaci´on de la funci´on f en el intervalo (o, en el caso de los m´etodos compuestos, en subintervalos de) [a, b]. La lectura de las secciones citadas es instructiva puesto que suministra una metodolog´ıa alternativa para la obtenci´on de las expresiones de los distintos m´etodos respecto
  • 29. 8 1. INTEGRACI ´ON de la que desarrollaremos a continuaci´on, que se denomina “m´etodo de coeficientes indeterminados” 1.4.1. El m´etodo de coeficientes indeterminados. Para deducir los m´etodos b´asicos de integraci´on num´erica mediante este m´etodo reemplazamos la integral por una suma finita b a f(x) dx N i=1 wif(xi) (1.56) donde los N puntos a ≤ xi ≤ b se eligen en forma conveniente (lo que depender´a de la aplicaci´on particular) y los coeficientes wi (que son pesos en un sentido general) se consideran indeterminados al principio y resultan ser las variables que debemos determinar. Para ello se reemplaza en la expresi´on una familia conveniente de po- linomios de grado creciente y se utilizan las ecuaciones resultantes para determinar los wi y, eventualmente, estimar los errores de aproximaci´on del m´etodo. En una secci´on posterior (ver 1.6 en la p´agina 12) se generalizar´a este m´etodo para el caso en que se utilizan las ecuaciones para determinar tanto los wi como los xi.El m´etodo de coeficien- tes indeterminados es una alternativa frente a los m´etodos basados en la aproximaci´on median- te polinomios No se pierde generalidad si se considera que el intervalo de integraci´on es [a, b] = [−1, 1], o bien [a, b] = [−h, h] por ello realizaremos las cuentas en alguno de estos intervalos particulares puesto que as´ı las expresiones suelen simplificarse. 1.4.2. El m´etodo trapezoidal. Si utilizamos el producto Mathematica para obtener los coeficientes las entradas y salidas podr´ıan ser (* Trapezoidal *) a0=a;a1=b; (* Defino los puntos *) p0[x_]:=1; (* Defino los polinomios *) p1[x_]:=(2x-a-b)/(b-a); p2[x_]:=((2x-a-b)/(b-a))^2; s0=A p0[a0] + B p0[a1]//Simplify (* Integraci’on num’erica *) s1=A p1[a0] + B p1[a1]//Simplify; A + B i0=Integrate[p0[x],{x,a,b}]//Simplify (* Integro los polinomios *) i1=Integrate[p1[x],{x,a,b}]//Simplify; -a + b Solve[{s0==i0,s1==i1},{A,B}]//Simplify (* Resuelvo el sistema *) -a + b -a + b {{A -> ------, B -> ------}} 2 2 Se tiene, adem´as, que el error ε1 para un paso h = b − a se puede escribir (utilizando la f´ormula de interpolaci´on lineal o utilizando el error para el polinomio p2(x) del cuaderno de Mathematica precedente) como ε1(f) = − (b − a)3 12 f (η), η ∈ [a, b] (1.57)
  • 30. 1.4. M´ETODOS B´ASICOS DE INTEGRACI ´ON NUM´ERICA 9 (Justificar), an´alogamente el εn correspondiente al paso h = (b − a)/n resulta εn(f) = n j=1 − h3 12 f (ηj) = − h3 n 12 1 n n j=1 f (ηj) (1.58) y, por la suavidad de f (∈ C∞ [a, b]) se tiene que ∃η ∈ [a, b]: f (η) = 1 n n j=1 f (ηj) (1.59) en definitiva εn(f) = − (b − a)h2 12 f (η) η ∈ [a, b] (1.60) Si utilizamos la f´ormula del teorema 1.3.1 podemos escribir εn(f) = − B2h2 2! (f (b) − f (a)) + O(h4 ) (1.61) − h2 12 f (ξ)(b − a) + O(h4 ), ξ ∈ [a, b] (1.62) lo que nos da un resultado del mismo orden. A partir de la expresi´on 1.58 se puede seguir otra l´ınea deductiva: tomamos l´ımite, lim n→∞ εn(f) h2 = lim n→∞  − h 12 n j=1 f (ηj)   (1.63) = − 1 12 lim n→∞   n j=1 f (ηj)h   (1.64) pero, en esta expresi´on, xj−1 ≤ ηj ≤ xj, j = 1, . . . , n con lo que la f´ormula 1.64 es una suma de Riemann, en consecuencia lim n→∞ εn(f) h2 = lim n→∞ − 1 12 b a f (x) dx = − 1 12 (f (b) − f (a)) (1.65) es decir que εn(f) εn(f) ≡ − h2 12 (f (b) − f (a)) (1.66) εn(f) es una aproximaci´on al error asint´otico lo que podemos establecer en la si- guiente definici´on: Definici´on 1.4.1. Sean εn(f) y εn(f), el error exacto y una estimaci´on del error respectivamente. Decimos que εn(f) es una estimaci´on asint´otica del error εn(f) si lim n→∞ εn(f) εn(f) = 1 (1.67)
  • 31. 10 1. INTEGRACI ´ON Utilizando εn(f) es posible dar un m´etodo trapezoidal corregido TC h (f) TC h (f) = Th(f) + εn(f) (1.68) es decir TC h (f) = h f0 2 + f1 + f2 + . . . + fn−1 + fn 2 − h2 12 (f (b) − f (a)) (1.69) Ejercicio 1.4.1. Estudiar el comportamiento num´erico del m´etodo trapezoidal corregido TC h (f) 1.4.3. El m´etodo de Simpson. Utilizamos el producto Mathematica para determinar los coeficientes del m´etodo de Simpson (ver Ap´endice B, p´agina 37) Obtenemos S b − a 2 = b − a 6 f(a) + 4f( a + b 2 ) + f(b) (1.70) y un error de truncamiento (b − a)5 2880 f(4) ( a + b 2 ) (1.71) lo que equivale a εt = b−a 2 5 90 f(4) ( a + b 2 ) (1.72) En forma an´aloga al caso de m´etodo trapezoidal y utilizando las expresiones precedentes se tiene que ε2(f) = − 4 b−a 2 5 15 f(4) (η) 24 , η ∈ [a, b] (1.73) = − b − a 2 5 1 90 f(4) (η), η ∈ [a, b] (1.74) y εn(f) = − h5 n 2 90 2 n n 2 j=1 f(4) (ηj) = − h4 (b − a) 180 f(4) (η), η ∈ [a, b] (1.75) y la f´ormula asint´otica εn(f) = − h4 180 (f(3) (b) − f(3) (a)) (1.76) (Esta ´ultima tambi´en se obtiene a partir del desarrollo asint´otico de Euler) 1.4.4. M´etodos de Newton. En la secci´on precedente hemos obtenido la f´ormula del m´etodo de Simpson. La misma metodolog´ıa se puede utilizar para cualquier elecci´on de los puntos de la partici´on del intervalo de integraci´on. Por ejemplo, si desearamos calcular los que corresponden a una partici´on regular de once puntos, nuevamente utilizamos el producto Mathematica para obtener los co- eficientes (ver ap´endice B en p´agina 37). Estos m´etodos llevan el nombre de m´etodos de Newton, y en algunos textos tambi´en el de f´ormulas de Newton-Cotes.
  • 32. 1.5. M´ETODOS DE EXTRAPOLACI ´ON 11 1.5. M´etodos de extrapolaci´on En esta secci´on utilizaremos la expresi´on que calculamos para el error en el m´etodo trapezoidal para ejemplificar el uso de los m´etodos de extrapolaci´on repe- tida de Richardson. Supongamos que b0 = I(0) es la integral que deseamos calcular y que, para el paso h se tiene I(h) = b0 + b1h2 + b2h4 + b3h6 + . . . (1.77) (f´ormula que sabemos v´alida para el mencionado m´etodo trapezoidal). El error de truncamiento es I(h) − b0 = n−1 i=1 bih2i + O(h2n ) (1.78) de modo que, con 1.77 y I( h 2 ) = b0 + b1 h2 4 + b2 h4 16 + b3 h6 64 + . . . (1.79) se obtiene efectuando ‘4 por (1.79) − (1.77)’ 4I( h 2 ) − I(h) = 3b0 − 3 4 b2h4 − 15 16 b3h6 + . . . (1.80) y, dividiendo por el coeficiente de b0 I(1) (h) = I(0) ( h 2 ) + I(0) (h 2 ) − I(0) (h) 3 = b0 − 1 4 b2h4 − 5 16 b3h6 + . . . (1.81) (ver la secci´on C.2 en el ap´endice, donde se deducen estas expresiones con el Mat- hematica). El error de truncamiento es I(1) (h) − b0 = − 1 4 b2h4 − 5 16 b3h6 + . . . (1.82) Si repetimos este c´alculo (ver C.2) se obtiene I(0) (h) = I(h) (1.83) I(1) (h) = I(0) ( h 2 ) + I(0) (h 2 ) − I(0) (h) 22 − 1 (1.84) I(2) (h) = I(1) ( h 2 ) + I(1) (h 2 ) − I(1) (h) 24 − 1 (1.85) ... (1.86) I(j+1) (h) = I(j) ( h 2 ) + I(j) (h 2 ) − I(j) (h) 22j+2 − 1 (1.87) y, en general, I(j) (h) = b0 + O(h2j+2 ) (1.88) El esquema resultante es que cada elemento de la segunda columna se obtiene con los dos inmediatos a su izquierda, cada vez que se calcula una aproximaci´on con paso m´as fino se puede calcular una antidiagonal de la tabla, y, por ´ultimo, el criterio de detenci´on es que dos valores en la misma columna difieran en menos que un valor de tolerancia preestablecido.
  • 33. 12 1. INTEGRACI ´ON Tabla 1. Extrapolaci´on de Richardson (M´etodo de Romberg) I(0) (h) I(1) (h) I(2) (h) I(3) (h) I(4) (h) . . . I(0) (h 2 ) I(1) (h 2 ) I(2) (h 2 ) I(3) (h 2 ) . . . I(0) (h 4 ) I(1) (h 4 ) I(2) (h 4 ) . . . I(0) (h 8 ) I(1) (h 8 ) . . . I(0) ( h 16 ) . . . ... 1.6. Cuadratura de Gauß La expresi´on aproximada N i=1 wif(xi) (1.89) para la integral b a f(x) dx es mucho m´as ´util si no se escogen de antemano los puntos xi. El problema de hallar los puntos y los pesos de modo que la expresi´on sea exacta para polinomios del mayor grado posible es resoluble y conduce a los m´etodos de integraci´on de Gauß. En el ap´endice B (p´agina 37) incluimos un cuaderno del Mathematica que calcula los coeficientes para un m´etodo de Gauß de tres puntos (se realiza en el intervalo [−1, 1], pero un simple cambio de variables permite extenderlo a cualquier intervalo [a, b]) Es conveniente, si embargo, atacar el problema de cuadratura en un contexto un poco m´as general. Sea v una funci´on de peso positiva en el intervalo [−1, 1], si x0, x1, . . . , xm se eligen como los ceros del polinomio pm+1 de grado m+1 en la familia de polinomios ortogonales asociada a v(x), entonces la f´ormula 1 −1 f(x)v(x) dx w0f0 + w1f1 + . . . + wmfm (1.90) es exacta para todos los polinomios de orden 2m + 2 siempre que los coeficientesLa inclusi´on de la fun- ci´on peso v facilita con- siderar distintas familias de polinomios ortogona- les satisfagan wi = 1 −1 δi(x)v(x) dx (1.91) donde δi(x) es el polinomio de grado m (orden m + 1) tal que δi(xj) = 0 j = i 1 j = i j = 0, 1, 2, . . . , m (1.92) Para verificar esta afirmaci´on tomemos un polinomio f de orden 2m + 2, existen entonces polinomios q y r de orden m + 1 tales que f = qpm+1 + r (1.93)
  • 34. 1.7. M´ETODOS DE MONTECARLO 13 Por lo tanto, debido a la ortogonalidad de la familia {pi} 1 −1 f(x)v(x) dx = 1 −1 q(x)pm+1(x)v(x) dx + 1 −1 r(x)v(x) dx = 1 −1 r(x)v(x) dx (1.94) Asimismo, dado que xi es un cero de pm+1, i = 0, 1, . . . , m, se tiene m i=0 wifi = m i=0 wiq(xi)pm+1(xi) + m i=0 wir(xi) = m i=0 wir(xi) (1.95) pero, tambi´en se tiene 1 −1 r(x)v(x) dx = m i=0 wir(xi) (1.96) porque los coeficientes wi fueron elegidos de modo que la f´ormula sea exacta para todos los polinomios de grado m o menor (orden m + 1) Observaci´on 1.6.1. Aplicando la f´ormula 1.90 al caso f(x) = (δi(x))2 se tiene (fj = 0 para j = i) 1 −1 (δi(x))2 v(x) dx = wi (1.97) por lo que los coeficientes wi en las f´ormulas de cuadratura de Gauß son positivos. Observaci´on 1.6.2. Para obtener los coeficientes se toman los xi como los ceros de los polinomios del orden deseado y se utiliza un calculador simb´olico como el Mathematica para obtener los coeficientes y para estimar el error de trunca- miento local. En diversos manuales de f´ormulas matem´aticas figuran los puntos y coeficientes de Gauß para distintas familias de polinomios y distintos ´ordenes. El an´alisis del error puede desarrollarse en forma an´aloga a los casos conside- rados previamente, por ello dejamos los detalles para el lector interesado. 1.7. M´etodos de Montecarlo En esta secci´on consideramos un m´etodo conceptualmente distinto, respecto de los anteriormente presentados, para obtener aproximaciones a las integrales b a f(x) dx (1.98) Suponemos que se posee una definici´on de la funci´on f, por ejemplo en un m-file de Matlab function y = mifun(x) % MIFUN define mi funci’on [mx,nx]=size(x) if (mx == 1) & (nx == 1) y = 2 * x; else disp(’error’); end % if o, tambi´en, si la funci´on est´a dada por N puntos en un tabla mif de N × 2 donde mix=mif(:,1) y miy=mif(:,2), se la calcula, por ejemplo, mediante y=spline(mix,miy,x) ´o bien y=interp1(mix,miy,x) seg´un se desee.
  • 35. 14 1. INTEGRACI ´ON Para la funci´on f se determinan Mf = sup a≤x≤b f(x) (1.99) y mf = inf a≤x≤b f(x) (1.100) (en realidad basta que se tomen cotas superior e inferior respectivamente). El m´etodo se aplica entonces a la funci´on f(x) = f(x) − mf que resulta no negativa y con su gr´afico contenido en el rect´angulo R = [a, b] × [0, Mf − mf], y consiste en lo siguiente. Se hallan P puntos al azar en el rect´angulo R y se determina el n´umeroLa funci´on rand permi- te obtener puntos al azar en un dominio Pf de los que se encuentran en el ´area que deseamos aproximar. A continuaci´on se calcula la estimaci´on del ´area mediante la expresi´on (b − a) (Mf − mf) Pf P + mf (1.101) En la secci´on C.3 incluimos ejemplos de integrales de Montecarlo. Este m´etodo no suele ser utilizado para el caso de ´areas puesto que existen buenos m´etodos de cuadratura (como los ya estudiados), sin embargo, el caso de los vol´umenes o hipervol´umenes es distinto. Supongamos que se desea conocer el volumen de la intersecci´on de 5 cuerpos que se cortan en el espacio Eucl´ıdeo tridi- mensional, y que adem´as, se desea distinguir la parte de la intersecci´on que perte- nece a un sexto cuerpo de aquella que no est´a contenida en el mismo. El intento de obtener la integral por m´etodos cl´asicos o num´ericos puede ser de una complejidad excesiva a´un para casos de cuerpos definidos por ecuaciones muy simples. El uso del m´etodo de Montecarlo permite superar estas dificultades. 1.7.1. Determinaci´on de un volumen. En esta secci´on calcularemos el vo- lumen del s´olido que resulta de la intersecci´on, en el primer octante, de los cilindros x2 + z2 = 1 (1.102) y y2 + (z − 1 2 )2 = 1 (1.103) En primer t´ermino atacamos el problema con Matlab, a continuaci´on desarro- llamos un cuaderno del Mathematica en el que obtenemos una soluci´on similar para ‘verificar’. % MONTEK volumen por m’etodo de Montecarlo % C.E.Neuman, 11-may-97 rand(’seed’,sum(100*clock)); % inicializa el generador de n’umeros al azar scores=[]; % en esta variable se acumulan los resultados NN=20; % da el numero de cubitos por lado N=NN^4; % da el numero total de puntos h=1/NN; % da el paso (dimension del cubito) for indice=1:10, X=zeros(N,3); for i=1:NN, % construcci’on de los puntos al azar
  • 36. 1.7. M´ETODOS DE MONTECARLO 15 im1=i-1; % en cada cubito for j=1:NN, jm1=j-1; for k=1:NN, km1=k-1; ps = rand(NN,3); ini=im1*NN*NN*NN+jm1*NN*NN+km1*NN+1; fin=ini-1+NN; X(ini:fin,:) = [ps(:,1)+i-1 ps(:,2)+j-1 ps(:,3)+k-1]*h; end % rof end % rof disp(i); end % rof x=X(:,1); y=X(:,2); % asignaci’on de coordenadas al azar z=X(:,3); %%% la siguiente variable calcula los valores de las funciones %%% de corte para las variables: TEST=[y.*y+4*(z-0.5).*(z-0.5) x.*x+z.*z]; %%% en I se seleccionan los ’{i}ndices correspondientes a puntos %%% contenidos en el volumen que se desea medir (intersecci’on %%% de los dos cuerpos definidos por las expresiones de TEST) I=find( (TEST(:,1)<=1) & (TEST(:,2)<=1) ); [mI,nI]=size(I); scores=[scores; mI/N]; % acumulaci’on del resultado disp(indice); end % rof mime=mean(scores) mide=std(scores) scorord=sort(scores); [m,n]=size(scores); mimeord=mean(scores(0.1*m:0.9*m)) mideord=std(scores(0.1*m:0.9*m)) figure; hist(scores); % Salidas del programa precedente %mime = % 0.6352 %mide = % 3.8221e-004 %mimeord = % 0.6352 %mideord = % 4.0451e-004 %scores = % 0.6349 % 0.6347 % 0.6356 % 0.6356 % 0.6347 % 0.6356
  • 37. 16 1. INTEGRACI ´ON % 0.6350 % 0.6356 % 0.6356 % 0.6352 Esta regularidad se ve confirmada por el siguiente cuaderno del Mathematica (* M’etodo de Montecarlo para integrales triples C’alculo num’erico de la integral *) (* Determino el l’{i}mite de separaci’on *) Solve[4(1-x^2)==(1+Sqrt[1-y^2])^2,y] 2 2 {{y -> -Sqrt[-4 + 4 x - 4 Sqrt[1 - x ]]}, 2 2 {y -> Sqrt[-4 + 4 x - 4 Sqrt[1 - x ]]}, 2 2 {y -> -Sqrt[-4 + 4 x + 4 Sqrt[1 - x ]]}, 2 2 {y -> Sqrt[-4 + 4 x + 4 Sqrt[1 - x ]]}} (* Defino el l’{i}mite de integraci’on *) f[x_]:=Sqrt[-4+4x x+4Sqrt[1-x x]] (* Determino el punto de separaci’on *) Solve[f[x]==1,x] -Sqrt[3] -Sqrt[3] Sqrt[3] {{x -> --------}, {x -> --------}, {x -> -------}, 2 2 2 Sqrt[3] {x -> -------}} 2 (* Defino el punto de separaci’on *) c=Sqrt[3]/2 Sqrt[3] ------- 2 (* Defino los extremos de integraci’on *) geu[x_,y_]:=(1/2)(1+Sqrt[1-y y]) ged[x_,y_]:=(1/2)(1-Sqrt[1-y y]) fcu[x_,y_]:=Sqrt[1-x x] (* Calculo las integrales en forma num’erica *) I1=NIntegrate[1,{x,0,c},{y,f[x],1},{z,ged[x,y],geu[x,y]}] I2=NIntegrate[1,{x,0,c},{y,0,f[x]},{z,ged[x,y],fcu[x,y]}] I3=NIntegrate[1,{x,c,1},{y,0,f[x]},{z,ged[x,y],fcu[x,y]}] I1+I2+I3 0.244751 0.358503 0.0320788 0.635332 (* valor de la integral *) 1.8. M´etodos adaptativos En el ´ultimo ap´endice (F, p´agina 75) se propone un laboratorio de Matem´atica orientado a estudiar algoritmos adaptativos para la integraci´on num´erica. En la secci´on C.4, en la p´agina 53, se incluye —para ilustraci´on— el c´odigo de una funci´on de Matlab, adaptada de la denominada quad, que implementa un algoritmo adaptativo recursivo de bajo orden basado en el m´etodo de Simpson. La
  • 38. 1.9. EJERCICIOS 17 funci´on miquad es en realidad un driver que llama a la verdadera funci´on recursiva que se denomina miquadst la que realiza cada paso de la recursi´on. 1.8.1. Comparaci´on entre NIntegrate y quad. Calculamos el ´area bajo la curva normal, que puede encontrarse en cualquier tabla estad´ıstica, utilizando las funciones NIntegrate del Mathematica y quad de Matlab. La primera da (los resultados de medici´on de tiempos se expresan en segundos) (* Calculo con el Mathematica *) f[x_]:=(1/Sqrt[2Pi]) E^(-x^2/2);//Timing {0. Second, Null} NIntegrate[f[x],{x,0,1}]//Timing {0.11 Second, 0.341345} N[NIntegrate[f[x],{x,0,1}],15]//Timing {0.11 Second, 0.341344746068543} Para la segunda es necesario definir en un m-archivo la funci´on que se desea integrar: function y=nintquad(x) % NINTQUAD Densidad normal %%% C.E.Neuman, 10 de mayo de 1997 y=(1/sqrt(2*pi))*exp(-x.^2/2); % fin de nintquad La salida y la medici´on del tiempo empleado con Matlab es Salidas de la integraci’on adaptativa con Matlab t=cputime; Q=quad1(’nintquad’,0,1); cputime-t, Q ans = 0.06 Q = 0.34134540613909 t=cputime; Q=quad1(’nintquad’,0,1,1e-5); cputime-t, Q ans = 0.11 Q = 0.34134474647804 t=cputime; Q=quad1(’nintquad’,0,1,1e-7); cputime-t, Q ans = 0.6 Q = 0.34134474607765 t=cputime; Q=quad1(’nintquad’,0,1,1e-9); cputime-t, Q ans = 2.47 Q = 0.34134474606860 Observamos que, en esta medici´on, —la que, al margen, no es muy precisa,— parece que la primera metodolog´ıa es m´as eficiente que la segunda. 1.9. Ejercicios Ejercicio 1.9.1. Utilizar el m´etodo de Romberg para calcular la integral 4 0 f(x) dx (1.104)
  • 39. 18 1. INTEGRACI ´ON donde f(x) est´a definida por la siguiente tabla: x 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 f(x) −4271 −2522 −499 1795 4358 7187 10279 13633 17247 ¿Son necesarios todos los valores? Ejercicio 1.9.2. Probar que la f´ormula 1 −1 f(x) dx 1 9 5f − 3 5 + 8f(0) + 5f 3 5 (1.105) es exacta para polinomios de quinto grado, y aplicarlo al c´alculo de 1 0 sin x 1 + x dx (1.106) Ejercicio 1.9.3. (a) Deducir una f´ormula de integraci´on de Gauß de dos puntos para integrales de la forma 1 −1 f(x)(1 + x2 ) dx (1.107) que sea exacta cuando f(x) es un polinomio de grado 3. (b) Aplicar la f´ormula a f(x) = x4 . Usar el resultado para obtener una aproximaci´on del resto. Ejercicio 1.9.4. Supongamos que una integral numericamente aproximada se representa mediante el s´ımbolo In donde n es el n´umero de subdivisiones del inter- valo de integraci´on. Si se calculan los valores de In para alg´un m´etodo num´erico, analizar en forma emp´ırica la velocidad de convergencia de In a I (el valor de la integral calculada exactamente) mediante los cocientes Rn = I2n − In I4n − I2n (1.108) Dar ejemplos y explicar los resultados. Ejercicio 1.9.5. [Optativo] Considerar el conjunto S1 de funciones definidas en el intervalo [a, b] de la siguiente forma. Sea n > 0, h = (b−a)/n, tj = a+jh, para j = 0, 1, . . . , n. Sea f(x) definida por la propiedad de ser lineal en cada subintervalo [tj−1, tj], para j = 1, . . . , n. Mostrar que este conjunto de funciones f, para todo n ≥ 1, es denso en el conjunto C[a, b] de funciones continuas en el intervalo [a, b]. Ejercicio 1.9.6. Obtener f´ormulas de integraci´on de Gauß para I = 1 0 xf(x) dx n j=1 wjf(xj) (1.109) con funci´on peso w(x) = x Ejercicio 1.9.7. Considerar la siguiente tabla de integrales aproximadas In obtenidas mediante la regla de Simpson. Predecir el orden de convergencia de la sucesi´on de In a la integral I:
  • 40. 1.9. EJERCICIOS 19 n In 2 0.28451779686 4 0.28559254576 8 0.28570248748 16 0.28571317731 32 0.28571418363 64 0.28571427643 Es decir que, si I − In c/np , entonces, ¿cu´anto vale p? El resultado ¿resulta ser una forma v´alida para el error de estos datos? Predecir un valor de c y del error en I64. ¿Qu´e valor de n es necesario alcanzar para que el error en In sea menor que 10−11 ? Ejercicio 1.9.8. Denotamos IT n a la regla trapezoidal para aproximar la inte- gral b a f(x) dx, y, analogamente, IM n para la f´ormula de ‘midpoint’. Los respectivos errores asint´oticos —en el caso en que f sea suficientemente regular en [a, b],— son I − IT n = − h2 12 [f (b) − f (a)] + O(h4 ) (1.110) y I − IM n = h2 24 [f (b) − f (a)] + O(h4 ) (1.111) Utilizar estos resultados para obtener un nuevo m´etodo num´erico, In, con orden de convergencia mayor, combinando IT n y IM n . ¿Cu´ales son los pesos de la nueva f´ormula In?
  • 41.
  • 42. CAP´ıTULO 2 Ecuaciones diferenciales 2.1. Introducci´on Decimos que la ecuaci´on diferencial ordinaria y = f(x, y) (2.1) en una funci´on inc´ognita y, con f(x, y) funci´on continua en un dominio D del plano, tiene una soluci´on y(x) en un intervalo x0 ≤ x ≤ x1, si y(x) es una fuci´on diferenciable, (x, y(x)) est´a en el dominio D para cada x del intervalo [x0, x1] y, adem´as, y (x) = f(x, y(x)) en [x0, x1]. Desde el punto de vista geom´etrico podemos considerar que la ecuaci´on y = f(x, y) define un campo continuo de direcciones sobre D. Y que las funciones soluci´on son tangentes a esas direcciones (en cada punto del dominio). El campo de direcciones permite estimar gr´aficamente las trayectorias T E 0 y x1 2 3 1 2 3 d e e f f e e g g i i f f i i d e e f f e e g g i i f f i i r r r r r r r r Figura 1. Campo de direcciones de f(x, y) = −xy Ejemplo 2.1.1. Sea la ecuaci´on diferencial y = −xy, entonces y /y = −x y es posible integrar ambos miembros obteniendo log y = −x2 /2 + C , expresi´on de la que tomando la exponencial de ambos miembros se deduce la soluci´on general y(x) = Ce−x2 /2 (2.2) de la ecuaci´on diferencial. En la figura 1 esquematizamos el campo de direcciones definido por f(x, y) = −xy. (En cada punto (x, y) dibujamos un peque˜no segmento en la direcci´on de la recta por el punto con pendiente −xy.) Una soluci´on ε-aproximada difiere casi uniformemente de la soluci´on en menos de ε 21
  • 43. 22 2. ECUACIONES DIFERENCIALES Definici´on 2.1.1. Sea f(x, y) una funci´on continua definida en el dominio D. Una funci´on y(x), definida en el intervalo [x1, x2], es una soluci´on (aproximada) de y = f(x, y) con error menor que ε si (i) (x, y(x)) ∈ D, x1 ≤ x ≤ x2 (ii) y(x) es continua en [x1, x2] (iii) y(x) tiene derivada continua a trozos en [x1, x2] que puede no estar defi- nida en un n´umero finito de puntos del intervalo [x1, x2], llam´emoslos ξ1, ξ2, . . ., ξn (iv) |y (x) − f(x, y(x))| ≤ ε, x1 ≤ x ≤ x2, x = ξi, i = 1, 2, . . . , n. Una vez definidas las soluciones aproximadas de una ecuaci´on diferencial de- seamos demostrar un resultado de existencia de las mismas que, adem´as, resulta constructivo, puesto que nos da un m´etodo para obtener la aproximaci´on Teorema 2.1.1. Sea (x0, y0) un punto del dominio D (de la definici´on 2.1.1) y supongamos que el rect´angulo R = {|x − x0| ≤ a, |y − y0| ≤ b} est´a contenido en D. Sea |f(x, y)| ≤ M, (x, y) ∈ R. Entonces, si h = min(a, b/M), puede construirse una soluci´on aproximada y(x) de y = f(x, y) en el intervalo |x − x0| ≤ h, tal que y(x0) = y0, donde el error ε puede ser un n´umero positivo arbitrariamente peque˜no. Notar que h es independiente de ε. S R α O P Qh E' Mh c T(x0, y0) (x0 + h, y0) 5 5 5 5 5 5 5 5 5 5 ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ 333s (x1, y1) 4 4 4 4 222 Figura 2. El rect´angulo S est´a contenido en el R Demostraci´on: El rect´angulo S = {|x − x0| ≤ h, |y − y0| ≤ Mh} est´a contenido en R por la definici´on de h (ver la figura 2). Supongamos dado el ε del teorema. Como f(x, y) es continua en S, resulta uniformemente continua en S; es decir que, dado ε > 0 (que lo tomamos como el del teorema) existe δ > 0 tal que si |˜x−x| ≤ δ y |˜y − y| ≤ δ con (˜x, ˜y) ∈ S y (x, y) ∈ S, entonces |f(˜x, ˜y) − f(x, y)| ≤ ε (2.3) Sea x1, . . . , xn−1 un conjunto de puntos tales que: x0 < x1 < x2 < · · · < xn−1 < xn = x0 + h, y xi − xi−1 ≤ min(δ, δ/M), i = 1, . . . , n (2.4)
  • 44. 2.2. M´ETODOS EN DIFERENCIAS DE UN PASO 23 Construiremos la soluci´on aproximada en el intervalo x0 ≤ x ≤ x0 + h; un proceso similar permite definirla en el intervalo x0 − h ≤ x ≤ x0. La soluci´on aproximada ser´a una poligonal construida de la siguiente manera: desde (x0, y0) se dibuja un segmento hacia la derecha con pendiente f(x0, y0), este corta la recta x = x1 en un punto (x1, y1). Desde (x1, y1) se dibuja un segmento hacia la derecha con pendiente f(x1, y1), que corta la recta x = x2 en y2; etc. El punto (x1, y1) debe pertenecer al tri´angulo OQP de la figura 2 porque el ´angulo α se toma de modo que tan α = M, y |f(x0, y0)| ≤ M. Por motivos an´alogos (x2, y2) tambi´en est´a en OQP; etc. En consecuencia el proceso puede continuarse hasta xn = x0 + h, porque la ´unica raz´on por la que podr´ıa detenerse ser´ıa que f(xk, yk) no estuviese definida, caso en el que se tendr´ıa |yk −y0| > Mh lo que ser´ıa contrario a la construcci´on. Podemos definir y(x) por las f´ormulas recursivas y(x) = yi−1 + (x − xi−1)f(xi−1, y(xi−1)) (2.5) donde yi−1 = y(xi−1), xi−1 ≤ x ≤ xi, i = 1, . . . , n (2.6) Por su definici´on y(x) es admisible, continua, y tiene derivada continua a trozos y (x) = f(xi−1, y(xi−1), xi−1 < x < xi, i = 1, . . . , n (2.7) que no est´a definida solamente en los puntos xi, i = 1, . . . , n − 1. Adem´as, si xi−1 < x < xi |y (x) − f(x, y(x))| = |f(xi−1, yi−1) − f(x, y(x))| (2.8) Pero, por 2.4 |x − xi−1| < min(δ, δ/M), y, por 2.5 |y − yi−1| ≤ M|x − xi−1| ≤ M δ M = δ (2.9) En consecuencia, por 2.3 |f(xi−1, yi−1) − f(x, y(x))| ≤ ε (2.10) y |y (x) − f(x, y(x))| ≤ ε, x = xi, i = 1, 2, . . . , n − 1 (2.11) Resulta as´ı que y(x) satisface todas las condiciones de la definici´on previa y la construcci´on requerida por el teorema ha sido completada.(ver ap´endice H) Este m´etodo de construir una soluci´on aproximada se conoce como m´etodo de Euler. Es innecesario mejorar el valor del h del teorema porque, en general, se puede demostrar que y(x) est´a definida en un intervalo mayor que |x − x0| ≤ h. 2.2. M´etodos en diferencias de un paso 2.2.1. M´etodos de Euler y retroEuler. El m´etodo de Euler para la reso- luci´on aproximada de la ecuaci´on diferencial y = f(x, y) y(x0) = y0 (2.12) se puede formular as´ı: M´etodo de Euler yn+1 = yn + hf(xn, yn), n ≥ 0 (2.13) donde h es de ahora en adelante el paso del m´etodo en estudio.
  • 45. 24 2. ECUACIONES DIFERENCIALES En cada paso se cambia de miembro de la familia de soluciones de la ecuaci´on diferencial, de manera que la precisi´on del m´etodo deber´a depender de la estabi- lidad de las ecuaciones. Si las ecuaciones son estables, los errores en los primeros pasos tendr´an peque˜no efecto posterior. Definimos provisoriamente la noci´on de estabilidad de un m´etodo num´erico en funci´on de su comportamiento para resolver la ecuaci´on diferencial y = λy con λ un n´umero complejo. La regi´on de estabilidad absoluta es entonces el subconjunto de puntos hλ del plano complejo con h ≥ 0 para los que una perturbaci´on en un ´unico valor yn produce una sucesi´on de cambios en los siguientes valores que no crecen de paso a paso.Estabilidad del m´etodo de Euler Ejemplo 2.2.1. Para el m´etodo de Euler se tiene yn+1 = yn + λhyn = (1 + λh)yn (2.14) de modo que este m´etodo es absolutamente estable en la regi´on |1 + λh| ≤ 1 que es el c´ırculo unitario del plano complejo centrado en el punto (−1, 0). Ejemplo 2.2.2. El m´etodo de Euler aplicado a la ecuaci´on del ejemplo 2.1.1 resulta ser yn+1 = yn − hxnyn = (1 − hxn)yn (2.15) El m´etodo de Euler puede obtenerse tambi´en del siguiente razonamiento. Se reemplaza la derivada y en la ecuaci´on y (x) = f(x, y) (2.16) por un cociente de incrementos en (xn, yn) para obtener yn+1 − yn h = f(xn, yn) (2.17) resultando el m´etodo al despejar la ecuaci´on para yn+1. Si, en cambio, se utiliza el mismo cociente, pero en (xn+1, yn+1), se obtiene yn+1 − yn h = f(xn+1, yn+1) (2.18) lo que conduce al m´etodo denominado “retroEuler” (backward Euler)M´etodo de retroEuler yn+1 = yn + hf(xn+1, yn+1) (2.19) que tiene la caracter´ıstica especial de ser impl´ıcito y requiere la soluci´on de una ecuaci´on en cada paso. Ejemplo 2.2.3. Para el m´etodo retroEuler se tiene yn+1 = yn + λhyn+1 (2.20) es decir que luego de despejar yn+1 yn+1 = 1 1 − λh yn (2.21) de modo que este m´etodo es absolutamente estable en la regi´on |1/(1 − λh)| ≤ 1 v´alida en el semiplano de partes reales no positivas del plano complejo. Estabilidad del m´etodo retroEuler
  • 46. 2.2. M´ETODOS EN DIFERENCIAS DE UN PASO 25 Ejemplo 2.2.4. El m´etodo retroEuler aplicado a la ecuaci´on del ejemplo 2.1.1 resulta ser yn+1 = yn − hxn+1yn+1 (2.22) es decir yn+1 = 1 (1 + hxn+1) yn (2.23) 2.2.2. M´etodos de Runge–Kutta. Nuestro siguiente objetivo es generalizar el m´etodo de Euler utilizando los desarrollos en polinomios de Taylor pero limitando lo m´as posible el c´alculo de derivadas de las funciones involucradas. Recordemos que en este m´etodo se puede escribir yh(x) = y(x) + hD(x) + O(h2 ) (2.24) y que para el paso mitad yh/2(x) = y(x) + (h/2)D(x) + O(h2 ) (2.25) (¿porqu´e?) y que aplicando la extrapolaci´on (de Richardson) para eliminar D(x) y(x) = 2yh/2(x) − yh(x) + O(h2 ) (2.26) Apliqu´emosla a un paso de longitud h, se tiene yh(xn + h) = yn + hf(xn, yn) (2.27) y para medio paso yh/2(xn + (h/2)) = yn + (h/2)f(xn, yn) (2.28) en consecuencia yh/2(xn + h) = yn + (h/2)f(xn, yn) +(h/2)f(xn + (h/2), yn + (h/2)f(xn, yn)) (2.29) luego, aplicando la extrapolaci´on, y(xn+1) = 2yn + hf(xn, yn) + hf(xn + (h/2), yn + (h/2)f(xn, yn)) −yn − hf(xn, yn) + O(h2 ) (2.30) y simplificando yn+1 = yn + hf(xn + (h/2), yn + (h/2)f(xn, yn)) (2.31) En definitiva, podemos escribir yn+1 = yn + hϕ(xn, yn, h; f) (2.32) con Primera f´ormula de Rungeϕ(x, y, h; f) = f(x + (h/2), y + (h/2)f(x, y)) (2.33) ¿En qu´e consiste esta primera f´ormula de Runge en forma gr´afica? En la figura 3 representamos el efecto de aplicar la primera f´ormula de Runge en el paso de xn a xn+1. Notemos que para el m´etodo de Euler se puede definir en forma an´aloga ϕ(x, y, h; f) = f(x, y). Ejercicio 2.2.5. ¿Es posible expresar en esta notaci´on el m´etodo de retroEu- ler?
  • 47. 26 2. ECUACIONES DIFERENCIALES T E 0 y xxn xn+1 ¨¨ ¨¨¨ ¨ Runge 10 Eulerr r un(xn+1)r Figura 3. Primer m´etodo de Runge Para estudiar la estabilidad aplicamos la f´ormula a la ecuaci´on y = λy. Se tiene yn+1 = yn + hλ(yn + (h/2)λyn) = yn(1 + hλ + 1 2 h2 λ2 ) raz´on por la cual debe tenerse que |1 + hλ + 1 2 h2 λ2 | ≤ 1. Estabilidad de la primera f´ormula de Runge Este primer m´etodo de Runge es generalizaci´on del de Euler. Aunque existen otras posibles generalizaciones, por ejemplo utilizando series de potencias, el pro- blema es que hay que derivar la funci´on f. La idea de Runge fue dar f´ormulas que se originan en tomar combinaciones de valores de f(x, y) en puntos adecuadamente elegidos para obtener, sin derivaciones, expresiones cuyos desarrollos coincidan en sus primeros t´erminos con la serie de potencias desarrollada en el entorno del punto. Esas f´ormulas fueron mejoradas por Heun y por Kutta. Llamaremos m´etodo de Runge-Kutta (RK) a yn+1 = yn + hϕ(xn, yn, h; f), n ≥ 0 (RK) (2.34) y en lo que sigue determinaremos diversas elecciones para ϕ. Es natural esperar que ϕ(x, y(x), h; f) y (x) = f(x, y(x)) si h es peque˜no. El error de truncamiento local es en este m´etodo εn+1(y) = y(xn+1) − y(xn) − hϕ(xn, y(xn), h; f), n ≥ 0 (2.35) ♣ Ilustremos la deducci´on de distintas ϕ en el caso de segundo orden de aproxima- ci´on. La propuesta es ϕ(x, y, h; f) = γ1f(x, y) + γ2f(x + αh, y + βhf(x, y)) (2.36) donde deben determinarse las constantes γ1, γ2, α, y β. Para ello desarrollemos el error de truncamiento local en ´este m´etodo εn+1(y) = Y (xn+1) − Y (xn) − hϕ(xn, Y (xn), h; f), n ≥ 0 (2.37) en potencias de h εn+1(y) = hYn + h2 2 Yn + h3 6 Yn + O(h4 ) − hϕ(xn, Yn, h; f) (2.38)
  • 48. 2.2. M´ETODOS EN DIFERENCIAS DE UN PASO 27 donde (la notaci´on fx significa ∂f/∂x y analogamente para las derivadas parciales de orden superior) y = f (2.39) y = fx + fyy = fx + fyf (2.40) y = fxx + fxyf + (fyx + fyyf)f + fy(fx + fyf) (2.41) = fxx + 2fxyf + fyyf2 + fyfx + f2 y f (2.42) y ϕ(x, y, h; f) = γ1f(x, y) + γ2(f(x, y) + h(αfx + βffy) +h2 ( 1 2 α2 fxx + αβfxyf + 1 2 β2 fyyf2 )) + O(h3 ) (2.43) Sustituyendo y agrupando t´erminos en potencias de h se obtiene εn+1 = h(1 − γ1 − γ2)f + h2 (( 1 2 − γ2α)fx + ( 1 2 − γ2β)ffy) +h3 (( 1 6 − 1 2 γ2α2 )fxx + ( 1 3 − γ2αβ)ffxy + ( 1 6 − 1 2 γ2β2 )f2 fyy + 1 6 fyfx + 1 6 f2 y f) + O(h3 ) (2.44) todo evaluado en (xn, Yn). Deseamos que εn+1(y) converja a cero tan r´apido como se pueda. Aceptando f arbitrarias no podremos, en general, anular el coeficiente de h3 (¿porqu´e?). Anulando los de h y h2 obtenemos εn+1(y) = O(h3 ), γ1 + γ2 = 1, γ2α = 1 2 , γ2β = 1 2 (2.45) cuya soluci´on general es γ2 arbitrario (2.46) γ1 = 1 − γ2 (2.47) α = β = 1 2γ2 (2.48) Consideremos algunos casos particulares (a) γ2 = 1, lo que implica γ1 = 0, α = β = 1 2 ⇒ ϕ(x, y, h; f) = f(x + h 2 , y + h 2 f(x, y)) (2.49) (b) γ2 = 1 2 , lo que implica γ1 = 1 2 , α = β = 1 ⇒ ϕ(x, y, h; f) = 1 2 f(x, y) + 1 2 f(x + h, y + hf(x, y)) (2.50) Notemos que si definimos k1 = hf(x, y) (2.51) k2 = hf(x + h, y + k1) (2.52) se tiene Segunda f´ormula de Runge hϕ = 1 2 (k1 + k2) (2.53) Runge not´o que este m´etodo puede mejorarse definiendo k3 = hf(x + h, y + k2) (2.54)
  • 49. 28 2. ECUACIONES DIFERENCIALES T E 0 y xxn xn+1 ¨¨ ¨¨¨ ¨ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢¢ d d Runge 2a Euler r r un(xn+1)r Figura 4. Segunda f´ormula de Runge y tomando hϕ = 1 2 (k1 + k3) (2.55) que es la segunda f´ormula de Runge (ver figura 4). (c) (primer orden) γ1 = 1, lo que implica γ2 = 0, se obtiene en consecuencia ϕ(x, y, h; f) = f(x, y) (Euler) (2.56) ♣ Las f´ormulas de mayor orden involucran un ´algebra m´as complicada, para ello se suele proponer hϕ(x, y, h; f) = p i=1 γiki (2.57) con k1 = hf(x, y) (2.58) k2 = hf(x + α2h, y + β21k1) (2.59) ... ki = hf(x + αih, y + i−1 j=1 βijkj) i = 1, . . . , p (2.60) Los coeficientes se pueden escoger de modo que los primeros t´erminos en el error de truncamiento local sean nulos. En consecuencia, por un procedimiento an´alogo al realizado en el caso de segundo orden se obtienen diversos m´etodos de orden superior de los que el m´as utilizado es el llamado M´etodo de Runge-KuttaM´etodo cl´asico de Runge-Kutta yn+1 = yn + 1 6 (k1 + 2k2 + 2k3 + k4) (2.61)
  • 50. 2.2. M´ETODOS EN DIFERENCIAS DE UN PASO 29 con k1 = hf(xn, yn) (2.62) k2 = hf(xn + h 2 , yn + k1 2 ) (2.63) k3 = hf(xn + h 2 , yn + k2 2 ) (2.64) k4 = hf(xn + h, yn + k3) (2.65) T E 0 y xxn xn+1 ¨¨ ¨¨¨ ¨ ¨¨ RK Euler r r un(xn+1)r Figura 5. El m´etodo de Runge-Kutta Se puede demostrar que ´esta es una f´ormula de cuarto orden: εn+1 = O(h5 ). El m´etodo cl´asico de Runge-Kutta generaliza el m´etodo de SimpsonObservaci´on 2.2.1. El m´etodo RK cl´asico es una generalizaci´on de la regla de Simpson en el caso que f no sea independiente de y xn+1 xn f(x)dx h 6 (f(xn) + 4f(xn + h 2 + f(xn+1)) (2.66) Ejemplo 2.2.6. Apliquemos el m´etodo cl´asico de RK a la ecuaci´on de prueba y = λy k1 = hλyn (2.67) k2 = hλ(yn + 1 2 hλyn) (2.68) = hλyn + 1 2 h2 λ2 yn (2.69) k3 = hλ(yn + 1 2 (hλyn + 1 2 h2 λ2 yn)) (2.70) = hλyn + 1 2 h2 λ2 yn + 1 4 h3 λ3 yn (2.71) k4 = hλ(yn + hλyn + 1 2 h2 λ2 yn + 1 1 4 h3 λ3 yn) (2.72) = hλyn + h2 λ2 yn + 1 2 h3 λ3 yn + 1 4 h4 λ4 yn) (2.73)
  • 51. 30 2. ECUACIONES DIFERENCIALES de manera que yn + 1 6 (k1 + 2k2 + 2k3 + k4) = yn + 1 6 (6hλyn + 3h2 λ2 yn + h3 λ3 yn + 1 4 h4 λ4 yn) (2.74) lo que permite escribir en definitiva yn+1 = yn(1 + hλ + 1 2 h2 λ2 + 1 6 h3 λ3 + 1 24 h4 λ4 ) (2.75) vemos as´ı que se aproxima a ehλ hasta el cuarto orden. Ejercicio 2.2.7. [Optativo] Con la expresi´on 2.75 se puede dibujar la regi´on de estabilidad absoluta. ♣ Para estudiar la convergencia del esquema general RK yn+1 = yn + hϕ(xn, yn, h; f), n ≥ 0 (2.76) recordemos que el error local es εn+1(Y ) = Y (xn+1) − Y (xn) − hϕ(xn, Y (xn), h; f), n ≥ 0 (2.77) conviene definir τn+1(Y ) por la expresi´on εn+1(y) = hτn+1(Y ) (2.78) y con esta τ se tiene Y (xn+1) = Y (xn) + hϕ(xn, Y (xn), h; f) + hτn+1(Y ), n ≥ 0 (2.79) con lo que resulta τn+1(Y ) = Y (xn+1) − Y (xn) h − ϕ(xn, Y (xn), h; f) (2.80) de modo que debe tenerse τn+1(Y ) → 0 cuando h → 0, equivalentemente debe requerirse que ϕ(x, Y (x), h; f) → Y (x) = f(x, Y (x)) cuando h → 0. Definiendo δ(h) = max x0≤x≤b −∞y∞ |f(x, y) − ϕ(x, y, h; f)| (2.81) se tiene que limh→0 δ(h) = 0 se denomina condici´on de consistencia para el m´etodo 2.76 y es suficiente para asegurar la convergencia si se tienen ciertas hip´otesis para ϕ, a saber: ϕ continua y |ϕ(x, y, h; f) − ϕ(x, ˜y, h; f)| ≤ L|y − ˜y|, x0 ≤ x ≤ b, −∞ y, ˜y ∞ (2.82) (funci´on de Lipschitz en la variable y) Teorema 2.2.2. Supongamos que el m´etodo 2.76 dado por yn+1 = yn + hϕ(xn, yn, h; f) (2.83) satisface la condici´on |ϕ(x, y, h; f) − ϕ(x, ˜y, h; f)| ≤ L|y − ˜y| con x0 ≤ x ≤ b − ∞ y, ˜y ∞, L constante. Entonces la soluci´on aproximada {yn} del problema de valores iniciales y = f(x, y), y(x0) = y0 satisface max x0≤xn≤b |Y (xn) − yn| ≤ e(b−x0)L |Y0 − y0| + e(b−x0)L − 1 L τ(h) (2.84)
  • 52. 2.2. M´ETODOS EN DIFERENCIAS DE UN PASO 31 donde τ(h) = maxx0≤xn≤b |τn+1(Y )|. Si se satisface la condici´on de consistencia δ(h) = max x0≤x≤b −∞y∞ |f(x, y) − ϕ(x, y, h; f)| −→ 0 para h → 0 (2.85) entonces la soluci´on num´erica {yn} converge a Y (x) Demostraci´on: Restamos (2.79)−(2.76) Y (xn+1) − yn+1 = Y (xn) − yn + h(ϕ(xn, Y (xn), h; f) −ϕ(xn, yn, h; f)) + hτn+1(Y ) (2.86) Luego |Y (xn+1) − yn+1| ≤ |Y (xn) − yn| + h|ϕ(xn, Y (xn), h; f) − ϕ(xn, yn, h; f)| +h|τn+1(Y )| ≤ |Y (xn) − yn|(1 + hL) + hτ(h), x0 ≤ xn ≤ b (2.87) Recursivamente se tiene |Y (xn+1) − yn+1| ≤ (1 + hL)n |Y (x0) − y0| + (1 + (1 + hL) + . . . + (1 + hL)n−1 )hτ(h) ≤ (1 + hL)n |Y (x0) − y0| + (1 + hL)n − 1 L τ(h) (2.88) pero (1+hL)n ≤ enhL = e(xn−x0)L ≤ e(b−x0)L pues ex = 1+x+ x2 2 eξ con 0 ≤ ξ ≤ x y x −1 ⇒ (1 + x)m ≤ emx . Luego |Y (xn) − yn| ≤ e(b−x0)L |Y (x0) − y0| + e(b−x0)L − 1 L τ(h), x0 ≤ xn ≤ b (2.89) En muchos casos se puede demostrar que τ(h) → 0 cuando h → 0 por c´alculo directo obteniendose as´ı la convergencia buscada. Veamos que basta saber que limh→0 δ(h) = 0, hτn+1(Y ) = Y (xn+1) − Y (xn) − hϕ(xn, Y (xn), h; f) = hY (n) + 1 2 h2 Y (ξn) − hϕ(xn, Y (xn), h; f), con xn ξn xn+1 (2.90) resulta as´ı h|τn+1(Y )| ≤ hδ(h) + h2 2 ||Y ||∞ (2.91) obteniendose en definitiva τ(h) ≤ δ(h) + 1 2 h||Y ||∞ (2.92) lo que completa la demostraci´on. Corolario 2.2.3. Si el m´etodo RK dado por yn+1 = yn +hϕ(xn, yn, h; f) tiene un error de truncamiento εn+1(y) = O(hm+1 ) entonces la velocidad de convergencia de {yn} a y(x) es O(hm ).
  • 53. 32 2. ECUACIONES DIFERENCIALES Teorema 2.2.4. Si ϕ(x, y, h; f) es continua en (x, y, h) en x0 ≤ x ≤ b, 0 ≤ h ≤ h0, para todo y y es Lipschitz en y, entonces la convergencia es equivalente a tener ϕ(x, Y (x), 0; f) = f(x, Y (x)) o, equivalentemente ϕ(x, y, 0; f) = f(x, y) Ejercicio 2.2.8. Demostrar el teorema 2.2.4 La velocidad de convergencia de yh(x) a Y (x) es O(h4 ) en el m´etodo cl´asico RK pues εn+1(y) = O(h5 ). Se puede demostrar, en consecuencia, que Y (x) − yh(x) = D(x)h4 + O(h5 ) (2.93) donde D(x) satisface un problema an´alogo de valores iniciales. Asimismo, como Y (x) − y2h(x) = 16D(x)h4 + O(h5 ) (2.94) se deduce que Y (x) = yh(x) + 1 15 (yh(x) − y2h(x)) + O(h5 ) (2.95) donde el t´ermino yh(x) − y2h(x) permite estimar el error. En general vale el siguiente Teorema 2.2.5. Si el error de truncamiento εn+1(Y ) = hϕ(x, Y (x), h; f) − (Y (x + h) − Y (x)) (2.96) se puede expresar εn+1(Y ) = hr+1 ψ(x, Y ) + O(hr+2 ) (2.97) y ϕ tiene derivadas segundas continuas, entonces el error satisface en = hr D(xn) + O(hr+1 ) (2.98) donde D(x) es soluci´on de D (x) = ∂f ∂y (x, Y (x))D(x) + ψ(x, Y (x)) (2.99) Demostraci´on: Por el orden del m´etodo buscamos para en una expresi´on de la forma del enunciado. Si reemplazamos la expresi´on en = hr δn en en+1 = en + h(ϕ(xn, yn, h; f) − ϕ(xn, Y (xn), h; f)) + εn+1(Y ) (2.100) obtenemos δn+1 = δn + h1−r (ϕ(xn, Y (xn) + hr δn, h; f) − ϕ(xn, Y (xn), h; f)) +hψ(xn, Y (xn)) + O(h2 ) (2.101) Por la suavidad supuesta para ϕ podemos escribir ϕ(xn, Y (xn) + hr δn, h; f) = ϕ(xn, Y (xn), h; f) + ϕy(xn, Y (xn), h; f)hr δn + 1 2 ϕyy(xn, Y (xn), h; f)h2r δ2 n (2.102)
  • 54. 2.3. EJERCICIOS 33 en raz´on de la convergencia este ´ultimo sumando se puede escribir en la forma k1h2r con ||k1|| acotada. El segundo sumando se puede reescribir as´ı ϕy(xn, Y (xn), h; f)hr δn = ϕy(xn, Y (xn), 0; f)hr δn +ϕyh(xn, Y (xn), ξ; f)hr+1 δn (2.103) cuyo ´ultimo sumando se puede escribir en la forma k2hr+1 con ||k2|| acotada. En definitiva δn+1 = δn + h(fy(xn, Y (xn))δn + hψ(xn, Y (xn) + hk2 + hr k1) (2.104) que es un m´etodo num´erico para D (x) = fy(x, Y (x))D(x) + ϕ(x, Y (x)) (2.105) D(0) + e0h−r (2.106) lo que permite completar la demostraci´on del teorema. ♣ 2.3. Ejercicios Ejercicio 2.3.1. Dada y = 1 + x2 y2 , con y(0) = 0, calcular y(0.5) mediante el m´etodo de Euler con extrapolaci´on de repetida de Richardson. Usar aritm´etica de redondeo de cinco decimales. Ejercicio 2.3.2. Aplicando el m´etodo de Euler, se obtuvieron los resultados: 1.22726 (con paso h = 0.05), 1.22595 (h = 0.1), 1.22345 (h = 0.2). Calcule un mejor valor por extrapolaci´on. Ejercicio 2.3.3. Utilizar el m´etodo de Euler con longitud de paso h sobre el problema test y = −y, y(0) = 1 (2.107) (a) Determinar una expresi´on expl´ıcita para yn (b) ¿Para qu´e valores de h la sucesi´on {yn}∞ 0 es acotada? (c) Calcular el limh→0 (y(x, h) − e−x )/h Ejercicio 2.3.4. Determinar el desarrollo de Taylor para la soluci´on de la ecuaci´on y = y2 , con y(0) = 1, en el entorno de x = 0. Usar esta aproximaci´on para calcular y(0.2) e y(1.2) con cuatro decimales. Comparar con la soluci´on exacta y explicar porqu´e el segundo caso (x = 1.2) no es exitoso. Ejercicio 2.3.5. La funci´on y(x) se define mediante el problema y = x2 − y2 , y(0) = 1 (2.108) Calcular y(0.2) utilizando los siguientes m´etodos: (a) Euler-Richardson: h = 0.1 y h = 0.2; (b) M´etodo Runge-Kutta: h = 0.1; (c) Desarrollo en serie de Taylor hasta el cuarto t´ermino; (d) M´etodo del trapecio: h = 0.2. Ejercicio 2.3.6. [Optativo]Se desea realizar una tabla de la funci´on y(x) = ∞ 0 e−u2 (u + x) du (2.109)
  • 55. 34 2. ECUACIONES DIFERENCIALES para varios valores de x. Se procede de la siguiente manera: y(x) se calcula para x = 1 usando alg´un m´etodo para integraci´on num´erica; se calcula y(1) = 0.6051. Mostrar que y satisface la ecuaci´on diferencial dy dx + 2xy = − 1 x + √ π (2.110) Se resuelve la ecuaci´on diferencial num´ericamente con el valor inicial y(1) = 0.6051, y as´ı se pueden calcular m´as valores de la tabla. Determinar y(x) para x = 1.2 y x = 1.4 mediante el m´etodo de Runge-Kutta y estimar el error en y(1.4).
  • 56. AP´ENDICE A Bibliograf´ıa y referencias A.1. Textos b´asicos (1) Atkinson, K.E.: An Introduction to Numerical Analysis, 2nd edition, J. Wiley Sons., New York, 1989. (2) Burden, R.L. y Faires, J.D.: An´alisis Num´erico, 2da edici´on, Grupo Editorial Iberoam´erica, M´exico, 1993. (3) Dahlquist, G., and Bjrck, ˚A.: Numerical Methods, Prentice-Hall, E. Cliffs, NJ, 1974. A.2. Bibliograf´ıa complementaria (1) Aguilera, N.E.: Introducci´on a la computaci´on en Matem´atica usando Mathematica, Red Ol´ımpica, OMA, Buenos Aires, 1994. (2) Apostol, T.M.: An´alisis Matem´atico, 2da edici´on, Revert´e, Barcelona, 1976. (3) Braun, M.: Differential Equations and Their Applications. An Intro- duction to Applied Mathematics, 4th edition, Springer, N.York, 1993. (4) Davis, Ph.J. y Rabinowitz, Ph.: Methods of Numerical Integration, 2nd edition, Academic Press, N.York, 1984. (5) Gear, C.W.: Numerical Initial Value Problems in Ordinary Differential Equations, Prentice-Hall, E. Cliffs, 1971 (6) Golub, G.H. (Editor): Studies in Numerical Analysis, MAA Studies in Mathematics 24, Washington, 1984. (7) Graham, R.L., Knuth, D.E., and Patashnik, O.: Concrete Mathe- matics, Addison-Wesley, Reading, MA, 1989. (8) Hurewicz, W.: Lectures on Ordinary Differential Equations, The M.I.T. Press, Cambridge, MA, 1958. (9) Knuth, D.E.: The Art of Computer Programming Vol.1: Fundamental Algorithms Vol.2: Seminumerical algorithms Vol.3: Sorting and searching , Addison-Wesley, Reading, 1973. Versi´on espa˜nola: V.1, Revert´e, Barcelona, 1980. (10) Linz, P.: A Critique of Numerical Analysis, Bulletin American Mathe- matical Society, 19(2), 407–416, 1988 (11) Maeder, R.: Programming in Mathematica, 2nd edition, Addison-Wesley, 1991. (12) Marshall, G.: Soluci´on Num´erica de Ecuaciones Diferenciales, Tomos 1 y 2, Revert´e, Buenos Aires, 1985 y 1986 35
  • 57. 36 A. BIBLIOGRAF´IA Y REFERENCIAS (13) Press, W.H., Teukolsky, S.A., Vetterlin, W.T., y Flannery, B.P.: Numerical Recipes in C. The Art of Scientific Computing, 2nd edi- tion, Cambridge University Press, Cambridge, 1992. (14) Rice, J.R.: Numerical Methods, Software, and Analysis, 2nd edition, Academic Press, Boston, 1993. (15) Stoer, J. y Bulirsch, R.: Introduction to Numerical Analysis, Sprin- ger, N.York, 1980. (16) Strang, G.: Introduction to Applied Mathematics, Wellesley-Cambridge, Wellesley, 1986 (17) Wolfram Research: Guide to Standard Mathematica Packages, Ver- sion 2.2, Technical Report, Wolfram Research, 1993. (18) Wolfram Research: MathLink Reference Guide, Version 2.2, Technical Report, Wolfram Research, 1993. (19) Wolfram, S.: The Mathematica Book, 3rd edition, Wolfram Media- Cambridge, Cambridge, UK, 1996.
  • 58. AP´ENDICE B Coeficientes indeterminados con el Mathematica B.1. El m´etodo de Simpson (* Simpson *) a0=a;(* Defino los puntos *) a1=a/2+b/2; a2=b;(*a=-1;b=1;*) p0[x_]:=1; (* Defino los polinomios *) p1[x_]:=(2x-a-b)/(b-a); p2[x_]:=((2x-a-b)/(b-a))^2; p3[x_]:=((2x-a-b)/(b-a))^3; p4[x_]:=((2x-a-b)/(b-a))^4; (* Integraci’on num’erica *) s0=A p0[a0] + B p0[a1] + C p0[a2] //Simplify s1=A p1[a0] + B p1[a1] + C p1[a2] //Simplify; s2=A p2[a0] + B p2[a1] + C p2[a2] //Simplify; A + B + C (* Integro los polinomios *) i0=Integrate[p0[x],{x,a,b}]//Simplify i1=Integrate[p1[x],{x,a,b}]//Simplify; i2=Integrate[p2[x],{x,a,b}]//Simplify; -a + b (* Resuelvo el sistema *) Solve[{s0==i0,s1==i1,s2==i2},{A,B,C}]//Simplify 2 (-a + b) -a + b -a + b {{B - ----------, A - ------, C - ------}} 3 6 6 (* Verifico que vale para polinomios de tercer grado *) (s3=A p3[a0] + B p3[a1] + C p3[a2])/.%15 //Simplify {0} i3=Integrate[p3[x],{x,a,b}]//Simplify 0 (* Resulta as’{i} que la siguiente ecuaci’on ( s3 == i3 ) vale trivialmente *) (* Calculo del error con el polinomio de cuarto grado *) (s4=A p4[a0] + B p4[a1] + C p4[a2])/.%15 //Simplify -a + b {------} 3 i4=Integrate[p4[x],{x,a,b}]//Simplify -a + b ------ 5 e4=(%20 - %19)//Simplify 2 (a - b) 37
  • 59. 38 B. COEFICIENTES INDETERMINADOS CON EL Mathematica {---------} 15 (* Calculo del polinomio de Taylor *) Series[ f[x], {x, (a+b)/2, 4}] a + b -(a + b) 2 f’’[-----] (-------- + x) a + b a + b -(a + b) 2 2 f[-----] + f’[-----] (-------- + x) + -------------------------- + 2 2 2 2 (3) a + b -(a + b) 3 (4) a + b -(a + b) 4 f [-----] (-------- + x) f [-----] (-------- + x) 2 2 2 2 --------------------------- + --------------------------- + 6 24 -(a + b) 5 O[-------- + x] 2 (* Resulta asi que el error de truncamiento es 5 (4) a + b ( b - a ) f [-----] 2 ------------------------ 2880 *) B.2. El m´etodo de Newton (* Newton de once puntos *) a0=a; (* Defino los puntos *) a1=9a/10+b/10; a2=8a/10+2b/10; a3=7a/10+3b/10; a4=6a/10+4b/10; a5=5a/10+5b/10; a6=4a/10+6b/10; a7=3a/10+7b/10; a8=2a/10+8b/10; a9=a/10+9b/10; a10=b; p0[x_]:=1; (* Defino los polinomios *) p1[x_]:=(2x-a-b)/(b-a); p2[x_]:=((2x-a-b)/(b-a))^2; p3[x_]:=((2x-a-b)/(b-a))^3; p4[x_]:=((2x-a-b)/(b-a))^4; p5[x_]:=((2x-a-b)/(b-a))^5; p6[x_]:=((2x-a-b)/(b-a))^6; p7[x_]:=((2x-a-b)/(b-a))^7; p8[x_]:=((2x-a-b)/(b-a))^8; p9[x_]:=((2x-a-b)/(b-a))^9; p10[x_]:=((2x-a-b)/(b-a))^10; p11[x_]:=((2x-a-b)/(b-a))^11; p12[x_]:=((2x-a-b)/(b-a))^12;
  • 60. B.2. EL M´ETODO DE NEWTON 39 (* Integraci’on num’erica *) s0=A0 p0[a0] + A1 p0[a1] + A2 p0[a2] + A3 p0[a3]+ A4 p0[a4] + A5 p0[a5] + A6 p0[a6] + A7 p0[a7]+ A8 p0[a8] + A9 p0[a9] + A10 p0[a10]//Simplify; s1=A0 p1[a0] + A1 p1[a1] + A2 p1[a2] + A3 p1[a3]+ A4 p1[a4] + A5 p1[a5] + A6 p1[a6] + A7 p1[a7]+ A8 p1[a8] + A9 p1[a9] + A10 p1[a10]//Simplify; s2=A0 p2[a0] + A1 p2[a1] + A2 p2[a2] + A3 p2[a3]+ A4 p2[a4] + A5 p2[a5] + A6 p2[a6] + A7 p2[a7]+ A8 p2[a8] + A9 p2[a9] + A10 p2[a10]//Simplify; s3=A0 p3[a0] + A1 p3[a1] + A2 p3[a2] + A3 p3[a3]+ A4 p3[a4] + A5 p3[a5] + A6 p3[a6] + A7 p3[a7]+ A8 p3[a8] + A9 p3[a9] + A10 p3[a10]//Simplify; s4=A0 p4[a0] + A1 p4[a1] + A2 p4[a2] + A3 p4[a3]+ A4 p4[a4] + A5 p4[a5] + A6 p4[a6] + A7 p4[a7]+ A8 p4[a8] + A9 p4[a9] + A10 p4[a10]//Simplify; s5=A0 p5[a0] + A1 p5[a1] + A2 p5[a2] + A3 p5[a3]+ A4 p5[a4] + A5 p5[a5] + A6 p5[a6] + A7 p5[a7]+ A8 p5[a8] + A9 p5[a9] + A10 p5[a10]//Simplify; s6=A0 p6[a0] + A1 p6[a1] + A2 p6[a2] + A3 p6[a3]+ A4 p6[a4] + A5 p6[a5] + A6 p6[a6] + A7 p6[a7]+ A8 p6[a8] + A9 p6[a9] + A10 p6[a10]//Simplify; s7=A0 p7[a0] + A1 p7[a1] + A2 p7[a2] + A3 p7[a3]+ A4 p7[a4] + A5 p7[a5] + A6 p7[a6] + A7 p7[a7]+ A8 p7[a8] + A9 p7[a9] + A10 p7[a10]//Simplify; s8=A0 p8[a0] + A1 p8[a1] + A2 p8[a2] + A3 p8[a3]+ A4 p8[a4] + A5 p8[a5] + A6 p8[a6] + A7 p8[a7]+ A8 p8[a8] + A9 p8[a9] + A10 p8[a10]//Simplify; s9=A0 p9[a0] + A1 p9[a1] + A2 p9[a2] + A3 p9[a3]+ A4 p9[a4] + A5 p9[a5] + A6 p9[a6] + A7 p9[a7]+ A8 p9[a8] + A9 p9[a9] + A10 p9[a10]//Simplify; s10=A0 p10[a0] + A1 p10[a1] + A2 p10[a2] + A3 p10[a3]+ A4 p10[a4] + A5 p10[a5] + A6 p10[a6] + A7 p10[a7]+ A8 p10[a8] + A9 p10[a9] + A10 p10[a10]//Simplify; (* Integro los polinomios *) i0=Integrate[p0[x],{x,a,b}]//Simplify i1=Integrate[p1[x],{x,a,b}]//Simplify; i2=Integrate[p2[x],{x,a,b}]//Simplify; i3=Integrate[p3[x],{x,a,b}]//Simplify; i4=Integrate[p4[x],{x,a,b}]//Simplify; i5=Integrate[p5[x],{x,a,b}]//Simplify; i6=Integrate[p6[x],{x,a,b}]//Simplify; i7=Integrate[p7[x],{x,a,b}]//Simplify; i8=Integrate[p8[x],{x,a,b}]//Simplify; i9=Integrate[p9[x],{x,a,b}]//Simplify; i10=Integrate[p10[x],{x,a,b}]//Simplify; -a + b (* Resuelvo el sistema *) Solve[{s0==i0,s1==i1,s2==i2 ,s3==i3,s4==i4 ,s5==i5,s6==i6 ,s7==i7,s8==i8 ,s9==i9,s10==i10} ,{A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10}]//Simplify 17807 (-a + b) -16067 (a - b) {{A5 - --------------, A0 - --------------,
  • 61. 40 B. COEFICIENTES INDETERMINADOS CON EL Mathematica 24948 598752 -26575 (a - b) 16175 (a - b) A1 - --------------, A2 - -------------, 149688 199584 -5675 (a - b) 4825 (a - b) A3 - -------------, A4 - ------------, 12474 11088 4825 (a - b) -5675 (a - b) A6 - ------------, A7 - -------------, 11088 12474 16175 (a - b) -26575 (a - b) A8 - -------------, A9 - --------------, 199584 149688 -16067 (a - b) A10 - --------------}} 598752 (* Verifico que los pesos suman uno *) 598752/24948 24 598752/149688 4 598752/199584 3 598752/12474 48 598752/11088 54 2 16067 + 2 26575 4 - 2 16175 3 + 2 5675 48 - 2 4825 54 + 17807 24 598752 B.3. El m´etodo de cuadratura de Gauß de tres puntos (* Gauss de tres puntos *) a=-1; (* Se trabaja en el [-1,1] *) b=1; p0[x_]:=1; (* Definici’on de los polinomios *) p1[x_]:=(2x-a-b)/(b-a); p2[x_]:=((2x-a-b)/(b-a))^2; p3[x_]:=((2x-a-b)/(b-a))^3; p4[x_]:=((2x-a-b)/(b-a))^4; p5[x_]:=((2x-a-b)/(b-a))^5; p6[x_]:=((2x-a-b)/(b-a))^6; p7[x_]:=((2x-a-b)/(b-a))^7; (* Las expresiones de Gauss *) s0=A p0[X] + B p0[Y] + C p0[Z] //Simplify s1=A p1[X] + B p1[Y] + C p1[Z] //Simplify; s2=A p2[X] + B p2[Y] + C p2[Z] //Simplify; s3=A p3[X] + B p3[Y] + C p3[Z] //Simplify; s4=A p4[X] + B p4[Y] + C p4[Z] //Simplify; s5=A p5[X] + B p5[Y] + C p5[Z] //Simplify; s6=A p6[X] + B p6[Y] + C p6[Z] //Simplify; A + B + C (* Las integrales *) i0=Integrate[p0[x],{x,a,b}]//Simplify i1=Integrate[p1[x],{x,a,b}]//Simplify; i2=Integrate[p2[x],{x,a,b}]//Simplify;
  • 62. B.4. LOS COEFICIENTES DE LA CUADRATURA DE GAUSS DE CINCO PUNTOS 41 i3=Integrate[p3[x],{x,a,b}]//Simplify; i4=Integrate[p4[x],{x,a,b}]//Simplify; i5=Integrate[p5[x],{x,a,b}]//Simplify; 2 (* El sistema de ecuaciones no lineal *) Solve[{s0==i0, s1==i1, s2==i2, s3==i3, s4==i4, s5==i5},{A,B,C,X,Y,Z}]//Simplify 5 5 8 3 3 {{A - -, B - -, C - -, Z - 0, Y - -Sqrt[-], X - Sqrt[-]}, 9 9 9 5 5 5 5 8 3 3 {A - -, B - -, C - -, Z - 0, Y - Sqrt[-], X - -Sqrt[-]}, 9 9 9 5 5 5 8 5 3 3 {A - -, B - -, C - -, Z - -Sqrt[-], Y - 0, X - Sqrt[-]}, 9 9 9 5 5 5 8 5 3 3 {A - -, B - -, C - -, Z - Sqrt[-], Y - 0, X - -Sqrt[-]}, 9 9 9 5 5 8 5 5 3 3 {A - -, B - -, C - -, Z - -Sqrt[-], Y - Sqrt[-], X - 0}, 9 9 9 5 5 8 5 5 3 3 {A - -, B - -, C - -, Z - Sqrt[-], Y - -Sqrt[-], X - 0}} 9 9 9 5 5 %//N (* La versi’on num’erica *) {{A - 0.555556, B - 0.555556, C - 0.888889, Z - 0, Y - -0.774597, X - 0.774597}, {A - 0.555556, B - 0.555556, C - 0.888889, Z - 0, Y - 0.774597, X - -0.774597}, {A - 0.555556, B - 0.888889, C - 0.555556, Z - -0.774597, Y - 0, X - 0.774597}, {A - 0.555556, B - 0.888889, C - 0.555556, Z - 0.774597, Y - 0, X - -0.774597}, {A - 0.888889, B - 0.555556, C - 0.555556, Z - -0.774597, Y - 0.774597, X - 0}, {A - 0.888889, B - 0.555556, C - 0.555556, Z - 0.774597, Y - -0.774597, X - 0}} B.4. Los coeficientes de la cuadratura de Gauß de cinco puntos (* Cuadratura de Gauss de cinco puntos *)
  • 63. 42 B. COEFICIENTES INDETERMINADOS CON EL Mathematica (* Determino las coordenadas de los puntos *) Roots[LegendreP[5,x]==0,x] N[%,30] (* Defino las variables que representan los puntos *) a0=x/.x-%%[[5]][[2]] a1=x/.x-%%%[[3]][[2]] a2=x/.x-%%%%[[1]][[2]] a3=x/.x-%%%%%[[2]][[2]] a4=x/.x-%%%%%%[[4]][[2]] 10 10 Sqrt[5 - 2 Sqrt[--]] -Sqrt[5 - 2 Sqrt[--]] 7 7 x == 0 || x == -------------------- || x == --------------------- || 3 3 10 10 Sqrt[5 + 2 Sqrt[--]] -Sqrt[5 + 2 Sqrt[--]] 7 7 x == -------------------- || x == --------------------- 3 3 x == 0 || x == 0.5384693101056830910363144207 || x == -0.5384693101056830910363144207 || x == 0.906179845938663992797626878299 || x == -0.906179845938663992797626878299 -0.906179845938663992797626878299 -0.5384693101056830910363144207 0 0.5384693101056830910363144207 0.906179845938663992797626878299 (* Fijo los extremos del intervalo *) a=-1; b=1; (* Defino los polinomios *) p0[x_]:=1; p1[x_]:=(2x-a-b)/(b-a); p2[x_]:=((2x-a-b)/(b-a))^2; p3[x_]:=((2x-a-b)/(b-a))^3; p4[x_]:=((2x-a-b)/(b-a))^4; p5[x_]:=((2x-a-b)/(b-a))^5; p6[x_]:=((2x-a-b)/(b-a))^6; p7[x_]:=((2x-a-b)/(b-a))^7; p8[x_]:=((2x-a-b)/(b-a))^8; p9[x_]:=((2x-a-b)/(b-a))^9; p10[x_]:=((2x-a-b)/(b-a))^10; p11[x_]:=((2x-a-b)/(b-a))^11; p12[x_]:=((2x-a-b)/(b-a))^12; (* Defino las expresiones para los pesos A0,A1,A2,A3,A4 *) s0=A0 p0[a0]+A1 p0[a1]+A2 p0[a2]+A3 p0[a3]+A4 p0[a4]//Simplify s1=A0 p1[a0]+A1 p1[a1]+A2 p1[a2]+A3 p1[a3]+A4 p1[a4]//Simplify
  • 64. B.4. LOS COEFICIENTES DE LA CUADRATURA DE GAUSS DE CINCO PUNTOS 43 s2=A0 p2[a0]+A1 p2[a1]+A2 p2[a2]+A3 p2[a3]+A4 p2[a4]//Simplify; s3=A0 p3[a0]+A1 p3[a1]+A2 p3[a2]+A3 p3[a3]+A4 p3[a4]//Simplify; s4=A0 p4[a0]+A1 p4[a1]+A2 p4[a2]+A3 p4[a3]+A4 p4[a4]//Simplify; s5=A0 p5[a0]+A1 p5[a1]+A2 p5[a2]+A3 p5[a3]+A4 p5[a4]//Simplify; s6=A0 p6[a0]+A1 p6[a1]+A2 p6[a2]+A3 p6[a3]+A4 p6[a4]//Simplify; s7=A0 p7[a0]+A1 p7[a1]+A2 p7[a2]+A3 p7[a3]+A4 p7[a4]//Simplify; s8=A0 p8[a0]+A1 p8[a1]+A2 p8[a2]+A3 p8[a3]+A4 p8[a4]//Simplify; s9=A0 p9[a0]+A1 p9[a1]+A2 p9[a2]+A3 p9[a3]+A4 p9[a4]//Simplify; s10=A0 p10[a0]+A1 p10[a1]+A2 p10[a2]+ A3 p10[a3]+A4 p10[a4]//Simplify; s11=A0 p11[a0]+A1 p11[a1]+A2 p11[a2]+ A3 p11[a3]+A4 p11[a4]//Simplify; A0 + A1 + A2 + A3 + A4 -0.906179845938663992797626878299 A0 - 0.5384693101056830910363144207 A1 + 0.5384693101056830910363144207 A3 + 0.906179845938663992797626878299 A4 (* Calculo las integrales *) i0=Integrate[p0[x],{x,a,b}]//Simplify i1=Integrate[p1[x],{x,a,b}]//Simplify; i2=Integrate[p2[x],{x,a,b}]//Simplify; i3=Integrate[p3[x],{x,a,b}]//Simplify; i4=Integrate[p4[x],{x,a,b}]//Simplify; i5=Integrate[p5[x],{x,a,b}]//Simplify; i6=Integrate[p6[x],{x,a,b}]//Simplify; i7=Integrate[p7[x],{x,a,b}]//Simplify; i8=Integrate[p8[x],{x,a,b}]//Simplify; i9=Integrate[p9[x],{x,a,b}]//Simplify; i10=Integrate[p10[x],{x,a,b}]//Simplify; i11=Integrate[p11[x],{x,a,b}]//Simplify; 2 (* Resoluci’on del sistema de ecuaciones *) Solve[{s0==i0 ,s1==i1 ,s2==i2 ,s3==i3 ,s4==i4},{A0,A1,A2,A3,A4}]//Simplify {{A2 - 0.56888888888888888888888889 , A0 - 0.236926885056189087514264041 , A1 - 0.478628670499366468041291515 , A3 - 0.478628670499366468041291515 , A4 - 0.2369268850561890875142640407}} (* Calculo de los residuos para los siguientes polinomios *) s5 - i5 /. %56 -16 {-2.22045 10 } s6 - i6 /. %56 -16 {4.16334 10 } s7 - i7 /. %56 -16 {-1.66533 10 } s8 - i8 /. %56 -16 {3.46945 10 } s9 - i9 /. %56
  • 65. 44 B. COEFICIENTES INDETERMINADOS CON EL Mathematica -16 {-1.38778 10 } s10 - i10 /. %56 {-0.00293181} s11 - i11 /. %56 -16 {-1.249 10 } s12=A0 p12[a0]+A1 p12[a1]+A2 p12[a2]+ A3 p12[a3]+A4 p12[a4]//Simplify; i12=Integrate[p11[x],{x,a,b}]//Simplify; s12 - i12 /. %56 {0.145853} En algunos casos se trabaja con mayor precisi´on (* Cuadratura de Gauss de cinco puntos (operaciones exactas) *) (* Determino las coordenadas de los puntos *) Roots[LegendreP[5,x]==0,x] N[%,50] (* Defino las variables que representan los puntos *) a0=x/.x-%%%[[5]][[2]] a1=x/.x-%%%%[[3]][[2]] a2=x/.x-%%%%%[[1]][[2]] a3=x/.x-%%%%%%[[2]][[2]] a4=x/.x-%%%%%%%[[4]][[2]] 10 10 Sqrt[5 - 2 Sqrt[--]] -Sqrt[5 - 2 Sqrt[--]] 7 7 x == 0 || x == -------------------- || x == --------------------- || 3 3 10 10 Sqrt[5 + 2 Sqrt[--]] -Sqrt[5 + 2 Sqrt[--]] 7 7 x == -------------------- || x == --------------------- 3 3 x == 0 || x == 0.53846931010568309103631442070020880496728660690556 || x == -0.53846931010568309103631442070020880496728660690556 || x == 0.90617984593866399279762687829939296512565191076253 || x == -0.90617984593866399279762687829939296512565191076253 10 -Sqrt[5 + 2 Sqrt[--]] 7 --------------------- 3 10 -Sqrt[5 - 2 Sqrt[--]] 7 --------------------- 3 0 10 Sqrt[5 - 2 Sqrt[--]]
  • 66. B.4. LOS COEFICIENTES DE LA CUADRATURA DE GAUSS DE CINCO PUNTOS 45 7 -------------------- 3 10 Sqrt[5 + 2 Sqrt[--]] 7 -------------------- 3 . . . (* Resoluci’on del sistema de ecuaciones *) Solve[{s0==i0 ,s1==i1 ,s2==i2 ,s3==i3 ,s4==i4},{A0,A1,A2,A3,A4}]//Simplify; N[%,50] {{A2 - 0.56888888888888888888888888888888888888888888888889, A0 - 0.23692688505618908751426404071991736264326000221241, A1 - 0.47862867049936646804129151483563819291229555334314, A3 - 0.4786286704993664680412915148356381929122955533431, A4 - 0.23692688505618908751426404071991736264326000221241}} s5 - i5 /. %61; N[%,35] -43 {0. 10 } s6 - i6 /. %61; N[%,35] -42 {0. 10 } s7 - i7 /. %61; N[%,35] -43 {0. 10 } s8 - i8 /. %61; N[%,35] -43 {0. 10 } s9 - i9 /. %61; N[%,35] -43 {0. 10 } s10 - i10 /. %61; N[%,35] {-0.00293181245562197943150324102705055} s11 - i11 /. %61; N[%,35] -43 {0. 10 }
  • 67. 46 B. COEFICIENTES INDETERMINADOS CON EL Mathematica s12 - i12 /. %61; N[%,35] {0.14585257971501357744743988130231516} s13 - i13 /. %61; N[%,35] -44 {0. 10 } s14 - i14 /. %61; N[%,35] {-0.01386690413313408190371321302706202}
  • 68. AP´ENDICE C Cuadernos del Mathematica y archivos script de Matlab C.1. La funci´on mihumps (*MIHUMPS*) f[x_]:= 0.01/((x-0.3)^2+.01) + 0.01/((x-0.9)^2+.04) - 0.06 Plot[f[x],{x,0,1},PlotRange-{{0,1},{0,1}} ,GridLines-Automatic ,AspectRatio-1 ,PlotStyle-RGBColor[1.000,0.000,0.000] ,Frame-True] -Graphics- La figura representada por el Plot precedente es la 1, la que en el cuaderno queda insertada a continuaci´on. 0.2 0.4 0.6 0.8 1 0.2 0.4 0.6 0.8 1 Figura 1. La funci´on mihumps 47
  • 69. 48 C. CUADERNOS DEL Mathematica Y ARCHIVOS SCRIPT DE MATLAB Integrate[f[x],x] -0.06 x + 0.05 ArcTan[5. (-0.9 + x)] + 0.1 ArcTan[10. (-0.3 + x)] N[Integrate[f[x],{x,0,1}],30] 0.2985832539549867 f[x]//TeXForm -0.06 + {{0.01}over {0.04 + {{left( -0.9 + x right) }^2}}} + {{0.01}over {0.01 + {{left( -0.3 + x right) }^2}}} %3//TeXForm -0.06,x + 0.05,arctan (5.,left( -0.9 + x right) ) + 0.1,arctan (10.,left( -0.3 + x right) ) Las funciones f(x) —mihumps— y su integral F(x) = x 0 f(s) ds son f(x) = −0.06 + 0.01 0.04 + (−0.9 + x) 2 + 0.01 0.01 + (−0.3 + x) 2 (C.1) y F(x) = −0.06 x + 0.05 arctan(5. (−0.9 + x)) + 0.1 arctan(10. (−0.3 + x)) (C.2) C.2. Extrapolaci´on repetida de Richardson En el siguiente cuaderno del Mathematica calculamos los errores de trunca- miento de los distintos pasos de extrapolaci´on. Extrapolaci’on repetida de Richardson Table[2^(2j)-1,{j,9}] {3, 15, 63, 255, 1023, 4095, 16383, 65535, 262143} I0[h_]=b0+b1 h^2+b2 h^4+b3 h^6+b4 h^8+b5 h^10+b6 h^12+ b7 h^14+b8 h^16 2 4 6 8 10 b0 + b1 h + b2 h + b3 h + b4 h + b5 h + 12 14 16 b6 h + b7 h + b8 h I1[h_]=I0[h/2]+(I0[h/2]-I0[h])/3//Simplify; Collect[%,h] 4 6 8 10 b2 h 5 b3 h 21 b4 h 85 b5 h b0 - ----- - ------- - -------- - --------- - 4 16 64 256 12 14 16 341 b6 h 1365 b7 h 5461 b8 h ---------- - ----------- - ----------- 1024 4096 16384 I2[h_]=I1[h/2]+(I1[h/2]-I1[h])/15//Simplify; Collect[%,h] 6 8 10 12 b3 h 21 b4 h 357 b5 h 5797 b6 h b0 + ----- + -------- + ---------- + ----------- + 64 1024 16384 262144
  • 70. C.2. EXTRAPOLACI ´ON REPETIDA DE RICHARDSON 49 14 16 93093 b7 h 1490853 b8 h ------------ + -------------- 4194304 67108864 I3[h_]=I2[h/2]+(I2[h/2]-I2[h])/63//Simplify; Collect[%,h] 8 10 12 b4 h 85 b5 h 5797 b6 h b0 - ----- - --------- - ----------- - 4096 262144 16777216 14 16 376805 b7 h 24208613 b8 h ------------- - --------------- 1073741824 68719476736 I4[h_]=I3[h/2]+(I3[h/2]-I3[h])/255//Simplify; Collect[%,h] 10 12 14 b5 h 341 b6 h 93093 b7 h b0 + ------- + ---------- + ------------ + 1048576 268435456 68719476736 16 24208613 b8 h --------------- 17592186044416 I5[h_]=I4[h/2]+(I4[h/2]-I4[h])/1023//Simplify; Collect[%,h] 12 14 16 b6 h 1365 b7 h 1490853 b8 h b0 - ---------- - ------------- - ---------------- 1073741824 1099511627776 1125899906842624 % MIRICHAR aplica la extrapolaci’on repetida de Richardson % al m’etodo trapezoidal (Integraci’on de Romberg) % C.E.Neuman, 6-5-97 % inicializaci’on i=1; a=0; b=1; h=(b-a)/10; % lazo while 1 x=a:h:b; % partici’on l=length(x); pesos=[1 2*ones(1,l-2) 1]; % pesos de Trapezoidal II(i,1)=(h/2)*sum(pesos.*mihumps(x)); % m’etodo Trapezoidal %%% %%% En este algoritmo se recalcula la funci’on de nuevo, se %%% puede mejorar aprovechando las evaluaciones previas. %%% del(i)=2^(2*i)-1; % divisor para la extrapolaci’on
  • 71. 50 C. CUADERNOS DEL Mathematica Y ARCHIVOS SCRIPT DE MATLAB for j=(i-1):(-1):1, % l’{i}nea de extrapolaciones k=i-j+1; II(j,k)=II(j+1,k-1)+(II(j+1,k-1)-II(j,k-1))/del(k-1) ; end % rof if i 7, % terminaci’on ( se puede sustituir por una % que compare los valores obtenidos de I ) break; end % fi h=h/2; i=i+1; end % elihw %%% fin de mirichar.m La salida de mirichar (valores de II) se consigna en las tablas 1 y 2. Tabla 1. Integraci´on de Romberg para la funci´on mihumps (ver tabla 1). La integral (con el Mathematica) resulta Q = 0.2985832539549867 0.29851740902665 0.29819609270927 0.29860841977863 0.29858290374753 0.29827642178861 0.29858264933679 0.29858330243552 0.29858325318208 0.29850609244975 0.29858326161685 0.29858325395166 0.29858325395498 0.29856396932507 0.29858325443074 0.29858325395493 0.29858325395499 0.29857843315432 0.29858325398467 0.29858325395499 0.29858325395499 0.29858204877708 0.29858325395684 0.29858325395499 0 0.29858295266190 0.29858325395510 0 0 0.29858317863180 0 0 0 Tabla 2. Integraci´on de Romberg para la funci´on mihumps (conti- nuaci´on, ver tablas 1 y 1). La integral (con el Mathematica) resulta Q = 0.2985832539549867 0.29858325455241 0.29858325395743 0.29858325395498 0.29858325395499 0.29858325395801 0.29858325395498 0.29858325395499 0 0.29858325395499 0.29858325395499 0 0 0.29858325395499 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 C.3. M´etodos de Montecarlo En lo que sigue veremos dos ejemplos en el cuadrado unitario [0, 1]x[0, 1]. Ejemplo C.3.1. Calculamos mediante el m´etodo de Montecarlo el ´area bajo la funci´on f(x) = 0.5 en el cuadrado unitario. Realizamos mil veces el c´alculo del ´area estimada mediante diez mil puntos seleccionados al azar.
  • 72. C.3. M´ETODOS DE MONTECARLO 51 % AZAR3.M script de prueba para m’etodo de Montecarlo % C.E.N., 05-may-97 rand(’seed’,sum(100*clock)); %inicializa los n’umeros aleatorios scores=[]; for j=1:1000, % pru=rand(1,1) NN=10000;%0*pru; puntos=rand(NN,2); I=find(puntos(:,2) 0.5); % determina los puntos bajo la curva [m,n]=size(I); scores=[scores; m/NN]; end mime=mean(scores) % calcula la media aritm’etica mide=std(scores) % calcula la desviaci’on t’{i}pica scorord=sort(scores); [m,n]=size(scores); mimeord=mean(scores(0.1*m:0.9*m)) % media podada 20% mideord=std(scores(0.1*m:0.9*m)) % desv’{i}o podado 20% figure; hist(scores); % histograma de los valores save azar3; % Resultados de la corrida de 1000 % azar3 %mime = % 0.4997 %mide = % 0.0050 %mimeord = % 0.4999 %mideord = % 0.0050 % axis([0.475 0.525 0 300]) % grid Vemos que el resultado —utilizando los estimadores robustos— es de 0.500±0.005, intervalo de confianza que contiene el valor exacto. En la figura 2 dibujamos el histograma que representa la distribuci´on de pun- tajes obtenidos por la rutina de Montecarlo. Ejemplo C.3.2. Calulamos la integral de la funci´on ‘humps’ mediante el m´etodo de Montecarlo rand(’seed’,sum(100*clock)) scores=[]; for j=1:1000, % pru=rand(1,1) NN=10000;%0*pru; puntos=rand(NN,2); I=find( puntos(:,2) 0.01*humps(puntos(:,1)) ); [m,n]=size(I);
  • 73. 52 C. CUADERNOS DEL Mathematica Y ARCHIVOS SCRIPT DE MATLAB 0.48 0.485 0.49 0.495 0.5 0.505 0.51 0.515 0.52 0.525 0 50 100 150 200 250 Figura 2. Histograma de distribuci´on de los valores estimados de la integral del ejemplo C.3.1 scores=[scores; m/NN]; disp(j); end mime=mean(scores) mide=std(scores) scorord=sort(scores); [m,n]=size(scores); mimeord=mean(scores(0.1*m:0.9*m)) mideord=std(scores(0.1*m:0.9*m)) figure; hist(scores); save azar4; % Resultados de la corrida de 100 % azar4 %mime = % 2.9845e-001 %mide = % 1.3248e-002 %mimeord = % 2.9938e-001 %mideord = % 1.3119e-002
  • 74. C.4. INTEGRACI ´ON DE SIMPSON ADAPTATIVA 53 % Resultados de quad % format short e % quad(’humps’,0,1,1e-5,1)/100 %ans = % 2.9858e-001 % % C.4. Integraci´on de Simpson adaptativa function [Q,cnt] = miquad(funfcn,a,b,tol) %MIQUAD Numerical evaluation of an integral, low order method. % Q = MIQUAD(’F’,A,B) approximates the integral of F(X) from A to B % to within a relative error of 1e-3. ’F’ is a string % containing the name of the function. Function F must return a % vector of output values if given a vector of input values. % Q = MIQUAD(F,A,B,TOL) integrates to a relative error of TOL. % % MIQUAD uses an adaptive recursive Simpson’s rule. % % See also QUAD, QUAD8. % Basada en QUAD.M % C.B. Moler, 3-22-87. % Copyright (c) 1984-94 by The MathWorks, Inc. % C.E. Neuman, 4-29-97 % [Q,cnt] = miquad(F,a,b,tol) also returns a % function evaluation count. if nargin 4, tol = 1.e-3; end c = (a + b)/2; % Top level initialization x = [a b c a:(b-a)/10:b]; % set up function call args = ’(x)’; y = eval([funfcn,args]); fa = y(1); fb = y(2); fc = y(3); lev = 1; % Adaptive, recursive Simpson’s quadrature if any(imag(y)) Q0 = 1e30; else Q0 = inf; end [Q,cnt] = eval([’miquadst(funfcn,a,b,tol,lev,fa,fc,fb,Q0)’]); cnt = cnt + 3;