METODE INTEGRASI ROMBERG¶
A. Materi¶
Integrasi Romberg merupakan teknik yang digunakan dalam integrasi numerik untuk Integrasi Romberg merupakan teknik yang digunakan dalam integrasi numerik untuk menganalisis kasus dimana fungsi yang akan diintegrasikan tersedia. Teknik ini memiliki menganalisis kasus dimana fungsi yang akan diintegrasikan tersedia. Teknik ini memiliki keunggulan untuk menghasilkan nilai-nilai dari fungsi yang digunakan untuk mengembangkan keunggulan untuk menghasilkan nilai-nilai dari fungsi yang digunakan untuk mengembangkan skema yang efisien bagi pengintegrasian secara numerik. Integrasi Romberg didasarkan pada skema yang efisien bagi pengintegrasian secara numerik. Integrasi Romberg didasarkan pada ekstrapolasi Richardson ( ekstrapolasi Richardson ( Richardso Richardson’s n’s extrapol extrapolation ation), yaitu metode untuk mengkombinasikan ), yaitu metode untuk mengkombinasikan dua perkiraan integral secara numerik untuk memperoleh nilai ketiga, yang lebih akurat.
Teknik ini bersifat rekursif dan dapat digunakan untuk menghasilkan sebuah perkiraan Teknik ini bersifat rekursif dan dapat digunakan untuk menghasilkan sebuah perkiraan integral dalam batas toleransi kesalahan ( integral dalam batas toleransi kesalahan (error tolerance error tolerance) yang sudah ditentukan terlebih dahulu. ) yang sudah ditentukan terlebih dahulu. Metode ini digunakan untuk memperbaiki hasil pendekatan integrasi metode trapesium, karena Metode ini digunakan untuk memperbaiki hasil pendekatan integrasi metode trapesium, karena kesalahan metode t kesalahan metode trapesium “cukup” besar rapesium “cukup” besar untuk polinom untuk polinom pangkat tinggi pangkat tinggidan fungsi transeden.
Pada proses integrasi Romberg, mula-mula kita hitung kuadratur dengan lebar langkah h Pada proses integrasi Romberg, mula-mula kita hitung kuadratur dengan lebar langkah h dan 2h. Defisini kuadratur adalah
Untuk menurunkan galat hampiran integral dari O(h2) menjadi O(h2n + 2) dapat digunakan ekstrapolasi Richardson seperti dinyatakan dalam teorema :
jika didefinisikan barisan kuadratur {I(i,j) : i >= j dimana j =1, 2, 3, ....} untuk hampiran integral f(x) pada [a, b] sebagai:
I (i, 1) = Ti – 1. i ≥ 1 ( barisan aturan trapezium majemuk) I (i, 2) = Si – 1. i ≥ 2 (barisan aturan Simpson majemuk) I (i, 3) = Bi – 1. i ≥ 3 (barisan aturan Boole majemuk)
Maka integrasi romberg untuk meningkatkan keakuratan hampiran integral dapat di tulis sebagai
B. Code Program¶
import numpy as np
def trapezcomp(f, a, b, n):
"""
Composite trapezoidal function integration
INPUTS:
f: the function to integrate
a: lower bound of integration
b: upper bound
n: number of panels to create between ``a`` and ``b``
"""
# Initialization
h = (b - a) / n
x = a
# Composite rule
In = f(a)
for k in range(1, n):
x = x + h
In += 2*f(x)
return (In + f(b))*h*0.5
def romberg(f, a, b, p):
"""
Romberg integration
INPUTS:
f: the function to integrate
a: lower bound of integration
b: upper bound
p: number of rows in the Romberg table
"""
I = np.zeros((p, p))
for k in range(0, p):
# Composite trapezoidal rule for 2^k panels
I[k, 0] = trapezcomp(f, a, b, 2**k)
# Romberg recursive formula
for j in range(0, k):
I[k, j+1] = (4**(j+1) * I[k, j] - I[k-1, j]) / (4**(j+1) - 1)
print(I[k, 0:k+1]) # display intermediate results
return I
if __name__ == '__main__':
def func(x):
return np.sin(x)
p_rows = 4
I = romberg(func, 0, np.pi/2, p_rows)
solution = I[p_rows-1, p_rows-1]
print(solution) # 1.00000000814
C. Output¶
Microsoft Windows [Version 10.0.18362.657]
(c) 2019 Microsoft Corporation. All rights reserved.
C:\Kuliah\KomputasiNumerik>python romberg.py
[0.78539816]
[0.94805945 1.00227988]
[0.9871158 1.00013458 0.99999157]
[0.99678517 1.0000083 0.99999988 1.00000001]
1.0000000081440203