Metodos Numericos
usando la extrapolación de Richardson de formareiterada en la regla del trapecio. El método de Romberg evalúa el integrando en puntos equiespaciados del intervalo de integración estudiado. Para que este método funcione, el integrando debe sersuficientemente derivable en el intervalo, aunque se obtienen resultados bastante buenos incluso para integrados poco derivables. Aunque es posible evaluar el integrando en puntos no equiespaciados, enese caso otros métodos como la cuadratura gaussiana o la cuadratura de Clenshaw–Curtis son más adecuados.
El método se define de forma recursiva así:
o
donde
La cota superiorasintótica del error de R(n,m) es:
La extrapolación a orden cero es equivalente a la Regla del trapecio con puntos. a orden uno es equivalente a la Regla de Simpson con puntos.
Cuando la evaluación delintegrando es numéricamente costosa, es preferible reemplazar la interpolación polinómica de Richardson por la interpolación racional propuesta por Bulirsch & Stoer.
defprint_row(lst):
print ' '.join('%11.8f' % x for x in lst)
def romberg(f, a, b, eps = 1E-8):
"""Approximate the definite integral of ffrom a to b by Romberg's method.
eps is the desired accuracy."""
R = [[0.5 * (b - a) * (f(a) + f(b))]] # R[0][0]
print_row(R[0])n = 1
while True:
h = float(b-a)/2**n
R.append((n+1)*[None]) # Add an empty row.
R[n][0]= 0.5*R[n-1][0] + h*sum(f(a+(2*k-1)*h) for k in range(1, 2**(n-1)+1)) # for proper limits
for m in range(1, n+1):
R[n][m] = R[n][m-1] +...
Regístrate para leer el documento completo.