Vous êtes sur la page 1sur 3

Práctica 7: Reglas de trapecios compuesta y

método de Romberg.

1 Introducción
Recordemos que posiblemente la regla de trapecios (simple) para aproximar
la integral
Z b
I(f ) = f (t) dt (1)
a
está dada por
f (a) + f (b)
IT (f ) = (b − a) , (2)
2
mientras que la de trapecios compuesta es
n−1
" #
C f (a) X f (b)
IT (f ; h) = h + f (xk ) + , (3)
2 2
k=1

donde
b−a
h= , xk = a + kh , k = 0, 1, . . . , n .
n
Observe también que podemos calcular eficientemente las fórmulas ITC (f ; h)
cuando n = 2m : comenzando con ITC (f ; b − a) = IT (f ), dada en (2), se sigue
con
    2j−1  
b−a 1 b−a b−a X b−a
ITC f; j = ITC f ; j−1 + j f a + (2i − 1) j . (4)
2 2 2 2 2
i=1

A su vez, el método de integración de Romberg consiste en la aplicación


de extrapolación de Richardson a la fórmula (3). Como resultado, se obtiene
la tabla triangular
G0,0
G1,0 G1,1
G2,0 G2,1 G2,2
.. .. .. ..
. . . .
Gm,0 Gm,1 Gm,2 ... Gm,m
Práctica de ordenador VII 2

donde  
b−a
Gk,0 = ITC f; k , k = 0, 1, . . . , m, (5)
2
y las siguientes columnas se calculan según la fórmula
Gm,k−1 − Gm−1,k−1
Gm,k = Gm,k−1 + dm,k , dm,k = , m ≥ k ≥ 1 . (6)
4k − 1
El valor Gm,m es teóricamente la mejor aproximación a la integral I(f ) dada
en (1).

2 Práctica de laboratorio
Vamos a implementar la fórmula de los trapecios compuesta y el método de
Romberg por medio de dos funciones, descritas más abajo. Al final, experi-
mentaremos con las funciones creadas y compararemos con el resultado de
aplicar la función quad de MATLAB.

1. Para implementar las fórmulas (3)–(4), cree una función, denomina-


da itp (de “integración con trapecios compuesta”), con las siguiente
estructura:

function [g] = itp(f, a, b, m)

donde f es la función a integrar en el intervalo [a, b]. Como resultado


debemos obtener el vector g de los valores de Gk,0 , k = 0, 1, . . . , m,
dados en (5).
Atención: se exigirá que la función f venga dada en forma de cadena
de caracteres (’texto’), definida con la variable x de tal forma que si
x es un vector, f devuelva el vector correspondiente. Por ejemplo,

f = ’sin(x)./(x.^2)’

Internamente itp debe contener los siguientes bloques o pasos:


• MATLAB tiene un sistema muy flexible de manejo de los datos
de entrada. Es decir, podrı́amos llamar nuestra función con 4 o
menos parámetros de entrada, asumiendo los demás por defecto.
Para ello podemos emplear el valor de la variable nargin que
contiene la cantidad de datos de entrada con que fue llamada la
función (consulte la ayuda para más detalles).
Como primer paso, se debe verificar de cuántos parámetros de
entrada disponemos: si la cantidad es 3, asumir m = 10 por de-
fecto. Si la cantidad es < 3, emitir mensaje “Faltan datos” y
abandonar. Sugerencia: use los comandos disp (o warning) y
break.

Andrei Martı́nez Finkelshtein


Práctica de ordenador VII 3

• Una función f en el formato descrito más arriba se puede evaluar


por medio del comando eval. Para ello en x se almacenan los
nodos donde queramos evaluarla y se ejecuta eval(f).
• Buscando eficiencia, haga que la función use las fórmulas (4).

2. Para comprobar el funcionamiento, aplique la función creada a las


integrales
Z 1
π
I1 = (1 − x2 )1/2 dx = = 1.57079632679490 . . .
−1 2
Z 1
1 2 arctan 5
I2 = 2
dx = = 0.54936030677801 . . .
−1 1 + 25x 5
Z 1
I3 = x2 sen(x) dx = −2 + cos(1) + 2 sen(1) = 0.22324427548393 . . .
0

Calcule el error de cuadratura en cada caso.

3. Para implementar el método de Romberg cree una función, denomi-


nada romberg, con las siguiente estructura:

function [y] = romberg(f, a, b, m)

donde los datos de entrada tienen la misma estructura y significación


que para la función anterior. En la salida necesitamos el valor y =
Gm,m , como aproximación a la integral (1).
Internamente romberg debe contener los siguientes bloques o pasos:

• El mismo control de la cantidad de datos de entrada que para la


función itp.
• Llamada a la función itp para calcular la primera columna del
esquema de Romberg.
• Implementación de las fórmulas (6) para obtener y = Gm,m .

4. Aplique la función romberg a las tres integrales anteriores. Estime el


error.

5. Compare estos resultados con los que se obtienen por medio de la


función quad de MATLAB.

Andrei Martı́nez Finkelshtein

Vous aimerez peut-être aussi