Documentos de Académico
Documentos de Profesional
Documentos de Cultura
TEMA 2
18 de Febrero de 2021
Índice
Tema 2. Métodos numéricos de integración en R . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.2. Error de interpolación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.3. Casos particulares: Poncelet, Trapecio y Simpson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.4. Fórmulas de cuadratura compuesta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.5. Implementación de los métodos numéricos en MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Tema 2
Métodos numéricos de integración
en R
2.1. Introducción
Z b
Dada una función f : [a, b] −→ R, cuando se quiere calcular la integral f (x)dx puede
a
suceder que:
• el cálculo de una primitiva de f sea complicado o imposible,
• no se conozca la función f sino solamente una tabla de valores.
En estos casos habrı́a que recurrir a métodos que nos permitan aproximar numéricamente el
valor de una integral definida.
Supongamos que se conocen los valores de f en los (n + 1) nodos distintos x0 , x1 , . . . , xn .
Rb
Vamos a tratar de aproximar la integral a f (x)dx por una fórmula de cuadratura del tipo:
Z b n
X
f (x)dx ' Ai f (xi ).
a i=0
Nos restringiremos al estudio de las fórmulas de tipo interpolatorio polinómico que reciben
ese nombre porque se basan en la aproximación de la función a integrar por un polinomio y
la integración de dicho polinomio en lugar de la función. Estas fórmulas verifican el siguiente
resultado:
1 1 ... 1
x0 x1 ... xn
x20 x21 x2n
Y
∆= ... = (xj − xi ) 6= 0
.. .. .. ..
. . . . 0≤i<j≤n
xn0 xn1 ... xnn
que es no nulo porque los nodos son distintos entre sı́.
Observación 2. La primera ecuación de este sistema nos dice que, en una fórmula de cuadratura
de tipo interpolatorio pólinomico, la suma de todos sus coeficientes es igual a la longitud del
intervalo de integración.
xi −1 0 1
f (xi ) 2 −1 3
Entonces, para:
x0 = −1, x1 = 0, x2 = 1
se busca:
Z 1
f (x)dx ' A0 f (x0 ) + A1 f (x1 ) + A2 f (x2 )
−1
1 4 1
A0 = , A 1 = , A 2 =
3 3 3
Por tanto:
Z 1
1 4 1 1
f (x)dx ' 2 + (−1) + 3 =
−1 3 3 3 3
2.3. Casos particulares: Poncelet, Trapecio y Simpson 25
A0 = b − a
Z b
a+b
f (x)dx ' (b − a) f
a 2
(b − a)3
|error| ≤ max |f 00 (ζ)| .
24 ζ∈[a,b]
Caso n = 2: Se aproxima la integral mediante el área limitada por la parábola que pasa por
los puntos (x0 , f (x0 )), (x1 , f (x1 )) y (x2 , f (x2 )).
26 2. Métodos numéricos de integración en R
a+b
x0 = a, x1 = , x2 = b.
2
A0 +A1 +A2 =b−a
a+b b2 − a2
A0 a +A1 +A2 b =
2 2 2
3 − a3
2 a + b 2 b
A0 a +A1 +A2 b =
2 3
b−a 2
⇒ A0 = A2 = , A1 = (b − a)
6 3
Z b
b−a a+b
f (x)dx ' [f (a) + 4f + f (b)]
a 6 2
(b − a)5
|error| ≤ max |f IV (ζ)| .
2880 ζ∈[a,b]
Observación 3. Como consecuencia directa de las fórmulas de error, puede verse que las
fórmulas de Poncelet y del Trapecio son exactas para polinomios de grado menor o igual que 1,
mientras que la fórmula de Simpson es exacta para polinomios de grado menor o igual que 3.
b−a H
H= , h= .
m n
yj = a + jH, j = 0, . . . , m.
xk = a + kh, k = 0, . . . , mn.
a = y0 y1 y2 y3 y4 = b
con: Z yj n
X
f (x)dx ' Ak f (yj−1 + kh), j = 1, . . . , m.
yj−1 k=0
m
Rb X yj−1 + yj
a f (x)dx ' H f =
2
j=1
m
b−aX yj−1 + yj
= f .
m 2
j=1
Z b m−1
1 X
f (x)dx ' h { [f (a)+f (b)]+ f (a+kh)}.
a 2
k=1
(b − a)3
|error| ≤ max |f 00 (ζ)|.
12m2 ζ∈[a,b]
(b − a)5
|error| ≤ max |f IV (ζ)|.
2880m4 ζ∈[a,b]
28 2. Métodos numéricos de integración en R
Las operaciones matemáticas se introducen de la forma habitual: suma a+b, resta a-b, pro-
ducto a*b, cociente a/b y potencia a∧ b. En caso de que se desee hacer alguna de las últimas 3
para listas de valores, almacenadas en vectores c y d del mismo tamaño, bastarı́a escribir: c.*d,
c./d o c.∧ d ; a estas operaciones se les suele llamar operaciones término a término.
Las funciones básicas predefinidas en MATLAB son sqrt, exp, log, sin, cos, tan, asin,
acos, atan, abs,. . .
El número e habrı́a que introducirlo como exp(1), mientras que para π basta escribir pi.
Por defecto, MATLAB muestra los resultados obtenidos en simple precisión (con 4 cifras
decimales). Para poder verlos en doble precisión, debemos utilizar el comando format long.
MATLAB incluye herramientas de cálculo simbólico que podemos utilizar, por ejemplo,
para el cálculo de primitivas de funciones. Para ello, en primer lugar, hay que declarar las
variables simbólicas que se necesiten:
>> syms x s;
En todas las opciones f representa una expresión simbólica (escalar o matricial) de alguna
de las variables simbólicas definidas y se puede introducir directamente en el comando int. Si f
es un valor numérico, por defecto se integra respecto de la variable independiente x.
2.5. Implementación de los métodos numéricos en MATLAB 29
Es importante tener en cuenta que, cuando se utiliza el cálculo simbólico, los resultados se
muestran en forma simbólica (exactos). Si queremos obtener el correspondiente valor numérico
(aproximado), debemos usar el comando double.
Z
1
Ejemplo 2. Calcula la integral indefinida dx.
1 + x2
>> syms x;
>> F=int(1/(1+x∧ 2))
Z 1
1
Ejemplo 3. Calcula la integral definida dx.
−1 1 + x2
>> A=int(1/(1+x∧ 2),-1,1)
>> double(A)
El comando abre una ventana gráfica en la que muestra el valor obtenido mediante la fórmula
de Poncelet compuesta, para una división con 10 subintervalos equiespaciados, y las gráficas de
la función y de la aproximación de la integral definida. Moviendo con el ratón el deslizador que
aparece bajo la gráfica se puede modificar el número de subintervalos y obtener la aproximación
correspondiente.
Z 1 Z π
Ejemplo 5. Aproxima ln(x + 1)dx , cos(x)dx con la fórmula de Poncelet compuesta.
0 0
>> rsums(’log(x+1)’)
>> rsums(’cos(x)’,0,pi)
30 2. Métodos numéricos de integración en R
Nota: Para utilizar este comando no es necesario conocer la expresión de la función f (x);
llega con una tabla de valores. En caso de conocerla, para construir en MATLAB el vector y, es
necesario escribir dicha expresión utilizando las operaciones término a término (.* , ./ , .∧ ).
Z 4
Ejemplo 6. Aproxima (x2 + 3) dx mediante la fórmula del trapecio compuesta, con una
0
partición de 17 nodos.
>> x=linspace(0,4,17);
>> y=x.∧ 2+3;
>> trapz(x,y)
Teniendo en cuenta que la partición tendrı́a 16 elementos (o subintervalos) de tamaño 0.25, la
primera lı́nea se podrı́a sustituir por
>> x=0:0.25:4;
Ejercicio 3. Comprueba que la fórmula del trapecio es exacta para funciones lineales:
elige una función lineal (recta) y observa cómo el valor de la integral es independiente del número
de elementos de la partición.
Ejercicio 4. Para ciertos trabajos sobre recursos hidráulicos se requieren canales con una cierta
área transversal. A falta de otros medios para el cálculo de dicha área, se han tomado medidas
de la profundidad a lo largo de la sección transversal. La siguiente tabla muestra la profundidad
(en metros), medida cada 2m a lo largo de la longitud transversal.
2.5. Implementación de los métodos numéricos en MATLAB 31
Longitud l 0 2 4 6 8 10 12 14 16 18 20
Profundidad p 0.0 1.8 2.0 4.0 4.0 6.0 4.0 3.4 3.6 2.8 0.0
Calcula el área transversal mediante la fórmula del trapecio compuesta. Para conocer la forma
de la sección transversal del canal, representa la gráfica de la misma mediante el comando
plot(l,-p).
El comando quad elige internamente una discretización que proporciona una aproximación
que grantiza con un determinado error que, por defecto, está fijado a 1.0e–6. Esta precisión puede
modificarse introduciendo un cuarto argumento de entrada, tol, que representa la tolerancia
personalizada.
>> [I,m]=quad(’funcion’,a,b,tol)
Además tiene un segundo argumento de salida m que muestra el número de puntos de la partición
que MATLAB necesitó tomar para lograr una aproximación que cumpla la tolerancia pedida.
Z 1
2
Ejemplo 7. Aproxima e−x dx.
0
Nota: La expresión de la función debe escribirse entre apóstrofes y usando operaciones “con
punto” porque el comando quad la evalúa internamente en vectores que contienen los puntos de
la discretización.
32 2. Métodos numéricos de integración en R
Ejercicio 6. Calcula valores aproximados del logaritmo neperiano log(2) utilizando los comandos
trapz y quad. ¿Cuántos puntos necesita cada uno de los dos métodos de integración para
obtener un error inferior a 1.0e–8? [ Sugerencia: integra la función f (x) = 1/x en un intervalo
adecuado.]