Anda di halaman 1dari 15

KOMPUTASI NUMERIK BERBASIS PYTHON BAB 7

7 METODE INTEGRASI NUMERIK SISTEM


FISIKA

Objektif:
1. Memahami metode numerik untuk mengintegrasikan sistem Fisika
2. Mampu membuat algoritma untuk integrasi numerik berbasis Python
3. Memecahkan beberapa aplikasi integrasi numerik pada permasalahan sains fisis dan
teknik

7.1 DASAR INTEGRAL NUMERIK

Dalam fisika, integral merupakan “Bahasa” yang sering digunakan, Integral suatu fungsi adalah
operator matematik yang dipresentasikan dalam bentuk:
b
I   f ( x)dx (7.1)
a

dan merupakan integral suatu fungsi f (x) terhadap variabel x dengan batas-batas integrasi adalah
dari x = a sampai x = b. Seperti pada persamaan (7.1), yang dimaksud dengan integral adalah
nilai total atau luasan yang dibatasi oleh fungsi f (x) dan sumbu-x, serta antara batas x = a dan x =
b. Dalam integral analitis, persamaan (7.1) dapat diselesaikan menjadi:
b

 f ( x)dx  F ( x)  F (b)  F (a)


b
a (7.2)
a

dengan F (x) adalah integral dari f (x) sedemikian sehingga F ' (x) = f (x).

Integrasi numerik umumnya dilakukan apabila:


a. Fungsi yang akan diintegrasi sedemikian hingga tidak ada metode analitik untuk
menyelesaikannya.
b. Metode analitik ada (bisa dipakai), tetapi agak kompleks untuk digunakan.
c. Fungsi yang akan diintegrasi, bentuk eksplisitnya tak diketahui, tetapi diberikan nilai-nilai
variabel bebasnya dan nilai-nilai fungsi yang berkorespondensinya di dalam suatu
interval [a,b].

182
KOMPUTASI NUMERIK BERBASIS PYTHON BAB 7

7.2 METODE TRAPEZOIDA

Gambar 7.1 Grafik metode Trapezoida

Pendekatan numerik yang paling dasar dalam memecahkan masalah integral adalah metode
Trapezoida, yang dirumuskan sebagai berikut

𝑏 𝑕
𝐼= 𝑎
𝑓 𝑥 𝑑𝑥 = 𝑓 𝑥0 + 𝑓 𝑥1 (7.3)
2

dimana x0 = a, x1 = b dan h = b − a.

Secara visual metode dapat digambarkan dalam Gambar 7.1. yang menunjukan cara metode
Trapesoida menghitung integral dengan cara menghitung luas area integrasi, dimana luas area
integrasi sama dengan luas trapesium di bawah kurva f(x) dalam batas-batas a dan b. Jika
diperhatikan dengan teliti, ada area kecil dibawah garis kurva dan diatas garis miring yang
berada diluar bidang trapesium. Metode Trapesoida tidak menghitung luas area kecil tersebut.
Disinilah letak kelemahan metode trapezoida.

7.3 METODE TRAPEZOIDA MULTIGRID

Untuk mengurangi tingkat error metode Trapezoida dibuatlah Metode Trapezoida Multigrid
(Composite-Trapzoida).

183
KOMPUTASI NUMERIK BERBASIS PYTHON BAB 7

Gambar 7.2 Grafik metode Trapezoida Multigrid

Metode Trapezoida Multigrid dapat dirumuskan dengan menjumlahkan tiap luasan trapezium di
bawah kurva f(x) dalam batas-batas a dan b sebanyak jumlah grid yang dibuat.

𝑏 𝑥1 𝑥2 𝑥𝑛
𝐼= 𝑓 𝑥 𝑑𝑥 = 𝑓 𝑥 𝑑𝑥 + 𝑓 𝑥 𝑑𝑥 + ⋯ + 𝑓 𝑥 𝑑𝑥
𝑎 𝑥0 𝑥1 𝑥 𝑛 −1
𝑏
𝑕 𝑕 𝑕
𝐼= 𝑓 𝑥 𝑑𝑥 = 𝑓 𝑥0 + 𝑓 𝑥1 + 𝑓 𝑥1 + 𝑓 𝑥2 + ⋯+ 𝑓 𝑥𝑛−1 + 𝑓 𝑥𝑛
𝑎 2 2 2
𝑏 𝑕 𝑛−1
𝐼= 𝑎
𝑓 𝑥 𝑑𝑥 = 𝑓 𝑥0 + 2 𝑖=1 𝑓(𝑥𝑖 ) + 𝑓 𝑥𝑛 (7.4)
2

dimana x0 = a, xn = b, h = (b – a)/n, dan n adalah banyaknya grid. Persamaan (7.4) inilah yang
akan digunakan untuk melakukan integrasi suatu fungsi dengan metode Trapezoida Multigrid.

7.3 METODE SIMPSON 1/3

Gambar 7.3 Grafik metode Simpson 1/3

Metode pendekatan yang lebih baik dibanding metode Trapezoida dalam integral numerik adalah
metode Simpson yang diformulasikan sebagai berikut

𝑏 𝑕
𝐼= 𝑎
𝑓 𝑥 𝑑𝑥 = 𝑓 𝑥0 + 4𝑓 𝑥1 + 𝑓 𝑥2 (7.5)
3

184
KOMPUTASI NUMERIK BERBASIS PYTHON BAB 7

dengan x0 = a, x2 = b, dan x1 = a + h dimana h = (b − a)/2.

7.4 METODE SIMPSON 1/3 MULTIGRID

Metode Simpson 1/3 Multigrid dapat dirumuskan dengan menjumlahkan tiap luasan grid tunggal
di bawah kurva f(x) dalam batas-batas a dan b sebanyak jumlah grid yang dibuat.
𝑏 𝑥2 𝑥4 𝑥𝑛
𝐼= 𝑓 𝑥 𝑑𝑥 = 𝑓 𝑥 𝑑𝑥 + 𝑓 𝑥 𝑑𝑥 + ⋯ + 𝑓 𝑥 𝑑𝑥
𝑎 𝑥0 𝑥2 𝑥 𝑛 −2
𝑏
𝑕 𝑕
𝐼= 𝑓 𝑥 𝑑𝑥 = 𝑓 𝑥0 + 4𝑓 𝑥1 + 𝑓 𝑥2 + 𝑓 𝑥2 + 4𝑓 𝑥3 + 𝑓 𝑥4 +⋯
𝑎 2 2
𝑕
+ 𝑓 𝑥𝑛−2 + 4𝑓 𝑥𝑛−1 + 𝑓 𝑥𝑛
2
𝑏 𝑕 𝑛−1 𝑛−2
𝐼= 𝑎
𝑓 𝑥 𝑑𝑥 = 𝑓 𝑥0 + 4 𝑖=1,3,5 𝑓(𝑥𝑖 ) +2 𝑖=2,4,6 𝑓(𝑥𝑖 ) + 𝑓 𝑥𝑛 (7.6)
3

dimana x0 = a, xn = b, h = (b – a)/n, dan n adalah banyaknya grid.

APLIKASI DALAM SAINS


DAN TEKNIK

CONTOH 1. MENGHITUNG INTEGRAL FUNGSI POLINOM

Tentukan integral dari fungsi berikut:


2 2 3
𝐼= 0
𝑓 𝑥 𝑑𝑥 = 0
(𝑥 + 𝑥 2 + 𝑥 + 4)𝑑𝑥 (7.7)

Module trapezoid
## module trapezoid
''' Inew = trapezoid(f,a,b,Iold,k).
Iold = Integral f(x) dari x = a sampai b dihitung
menggunakan aturan trapezoidal dengan panel 2^(k-1).
Inew = Integral yang dihitung dengan panel 2^k.
'''
def trapezoid(f,a,b,Iold,k):

185
KOMPUTASI NUMERIK BERBASIS PYTHON BAB 7

if k == 1:Inew = (f(a) + f(b))*(b - a)/2.0


else:
n = 2**(k -2 ) # Jumlah titik baru
h = (b - a)/n # Jarak tiap titik
x = a + h/2.0 # kordinat titik baru
sum = 0.0
for i in range(n):
sum = sum + f(x)
x = x + h
Inew = (Iold + h*sum)/2.0
return Inew

Script Utama Python

Dengan menggunakan module trapezoid, kita dapat menghitung integral:

File Program: contoh_7_1.py

from math import sqrt,cos,pi


from trapezoid import *
def f(x): return x**3 + x**2 + x + 4
Iold = 0.0
for k in range(1,20):
Inew = trapezoid(f,0.0,2.0,Iold,k) # interval dari 0-2
if (k > 1) and (abs(Inew - Iold)) < 1.0e-6: break
Iold = Inew
print "Integral =",Inew
print "nPanels =",2**(k-1)
raw_input("\nPress return to exit")

Output program
Jalankan program dengan klik run pada contoh_7_1.py, maka pada Shell akan muncul nilai
integral berikut:

186
KOMPUTASI NUMERIK BERBASIS PYTHON BAB 7

Gambar 7.4 Output Program Metode Trapezoid

CONTOH 2. MENGHITUNG INTEGRAL SISTEM MASSA-PEGAS

Sebuah partikel dikaitkan antara dua pegas identik pada meja licin horizontal. Kedua pegas
memiliki konstanta pegas k dan awalnya tidak diregang.

Gambar 7.5 Sistem massa-pegas

Jika partikel ditarik pada jarak x sepanjang sebuah arah tegak lurus pada posisi awal pegas, maka
besar gaya yang dialami partikel tersebut oleh kedua pegas adalah

𝐿
𝐹 = −2𝑘𝑥 1 − 𝑖 (7.8)
𝑥 2 +𝐿2

Tentukan usaha yang dilakukan oleh gaya ini untuk menggerakan partikel dari x = A ke x = 0.

Solusi:

187
KOMPUTASI NUMERIK BERBASIS PYTHON BAB 7

Module trapezoid
## module trapezoid
''' Inew = trapezoid(f,a,b,Iold,k).
Iold = Integral f(x) dari x = a sampai b dihitung
menggunakan aturan trapezoidal dengan panel 2^(k-1).
Inew = Integral yang dihitung dengan panel 2^k.
'''
def trapezoid(f,a,b,Iold,k):
if k == 1:Inew = (f(a) + f(b))*(b - a)/2.0
else:
n = 2**(k -2 ) # Jumlah titik baru
h = (b - a)/n # Jarak tiap titik
x = a + h/2.0 # kordinat titik baru
sum = 0.0
for i in range(n):
sum = sum + f(x)
x = x + h
Inew = (Iold + h*sum)/2.0
return Inew

Script Utama Python

Dengan menggunakan module trapezoid, kita dapat menghitung integral:

File Program: contoh_7_2.py

from math import sqrt,cos,pi


from trapezoid import *
# input data
ko = 5
L = 20
# persamaan dalam integral
def f(x): return (-2*ko*x)*(1-(L/(sqrt(x**2+L**2))))
Iold = 0.0
for k in range(1,20):
Inew = trapezoid(f,0.0,10.0,Iold,k) # interval 0-10
if (k > 1) and (abs(Inew - Iold)) < 1.0e-6: break
Iold = Inew
print "Integral =",Inew

188
KOMPUTASI NUMERIK BERBASIS PYTHON BAB 7

print "nPanels =",2**(k-1)


raw_input("\nPress return to exit")

Output program
Jalankan program dengan klik run pada contoh_7_2.py, maka pada Shell akan muncul nilai
integral berikut:

Gambar 7.6 Output Program Metode Trapezoid

CONTOH 3. MOLEKUL DIATOMIK

Dalam molekul diatomic, atom-atom unsure mengerjakan gaya tarik-menarik satu sama lain pada
jarak yang jauh dan gaya tolak menolak pada jarak yang pendek. Untuk kebanyakan molekul
hukum Lennard-Jones adalah pendekatan yang cukup baik, Gaya antar dua molekul tersebut
diformulasikan sebagai

𝜎 13 𝜎 7
𝐹 = 𝐹0 2 − (7.9)
𝑟 𝑟

dimana r adalah jarak pusat ke pusat antara atom-atom dalam molekul, 𝜎 adalah parameter jarak,
dan F0 adalah gaya ketika r = 𝜎. Untuk sebuah molekul oksigen, diketahui bahwa F0 = 9,60 x 10-
11
N dan 𝜎= 3,50 x 10-10 m. Tentukan usaha yang dilakukan oleh gaya tersebut jika atom-
atomnya ditarik terpisah dari r = 4,00 m ke r = 9,00 m.

Solusi:

189
KOMPUTASI NUMERIK BERBASIS PYTHON BAB 7

Module trapezoid
## module trapezoid
''' Inew = trapezoid(f,a,b,Iold,k).
Iold = Integral f(x) dari x = a sampai b dihitung
menggunakan aturan trapezoidal dengan panel 2^(k-1).
Inew = Integral yang dihitung dengan panel 2^k.
'''
def trapezoid(f,a,b,Iold,k):
if k == 1:Inew = (f(a) + f(b))*(b - a)/2.0
else:
n = 2**(k -2 ) # Jumlah titik baru
h = (b - a)/n # Jarak tiap titik
x = a + h/2.0 # kordinat titik baru
sum = 0.0
for i in range(n):
sum = sum + f(x)
x = x + h
Inew = (Iold + h*sum)/2.0
return Inew

Script Utama Python

Dengan menggunakan module trapezoid, kita dapat menghitung integral:

File Program: contoh_7_3.py

from math import sqrt,cos,pi,e


from trapezoid import *

# input data
f0 = 9.60e-11
sigma = 3.50e-10
# persamaan dalam integral
def f(x): return f0*(2*(sigma/x)**13-(sigma/x)**7)

Iold = 0.0
for k in range(1,20):
Inew = trapezoid(f,4.0,9.0,Iold,k) # interval dari 4-9
if (k > 1) and (abs(Inew - Iold)) < 1.0e-6: break

190
KOMPUTASI NUMERIK BERBASIS PYTHON BAB 7

Iold = Inew
print "Integral =",Inew
print "nPanels =",2**(k-1)
raw_input("\nPress return to exit")

Output program
Jalankan program dengan klik run pada contoh_7_3.py, maka pada Shell akan muncul nilai
integral berikut:

Gambar 7.7 Output Program Metode Trapezoid

CONTOH 4. MENGHITUNG WAKTU JATUH BENDA

Sebuah benda dilepaskan dari keadaan diam pada ketinggian h dari permukaan bumi. Kelajuan
benda pada jarak r dari pusat bumi, dimana 𝑅𝐸 ≤ 𝑟 ≤ 𝑅𝐸 + 𝑕, adalah

1 1
𝑣= 2𝐺𝑀𝐸 −𝑅 (7.10)
𝑟 𝐸 +𝑕

Gunakan integrasi numerik untuk mencari waktu jatuhnya benda tersebut dari titik pelepasan
menuju permukaan Bumi.
𝑓 𝑓 𝑑𝑟
∆𝑡 = 𝑖
𝑑𝑡 =− 𝑖 𝑣
(7.11)

Tanda negatif muncul karena benda tersebut bergerak berlawanan arah radialnya, jadi kelajuan
benda tersebut adalah v = -dr/dt.

191
KOMPUTASI NUMERIK BERBASIS PYTHON BAB 7

Solusi:

Module trapezoid
## module trapezoid
''' Inew = trapezoid(f,a,b,Iold,k).
Iold = Integral f(x) dari x = a sampai b dihitung
menggunakan aturan trapezoidal dengan panel 2^(k-1).
Inew = Integral yang dihitung dengan panel 2^k.
'''
def trapezoid(f,a,b,Iold,k):
if k == 1:Inew = (f(a) + f(b))*(b - a)/2.0
else:
n = 2**(k -2 ) # Jumlah titik baru
h = (b - a)/n # Jarak tiap titik
x = a + h/2.0 # kordinat titik baru
sum = 0.0
for i in range(n):
sum = sum + f(x)
x = x + h
Inew = (Iold + h*sum)/2.0
return Inew

Script Utama Python

Dengan menggunakan module trapezoid, kita dapat menghitung integral:

File Program: contoh_7_4.py

from math import sqrt,cos,pi,e


from trapezoid import *
# input data
G=6.6726e-11
Me=5.98e24
Re=6370e3
h=10
# persamaan dalam integral
def f(x): return -(1*(sqrt(2*G*Me*((1*x**-1)-(1/(Re+h))))**-1))
Iold = 0.0
for k in range(1,20):

192
KOMPUTASI NUMERIK BERBASIS PYTHON BAB 7

Inew = trapezoid(f,0.1,10.0,Iold,k) # interval dari 0.1-10


if (k > 1) and (abs(Inew - Iold)) < 1.0e-6: break
Iold = Inew
print "Integral =",Inew
print "nPanels =",2**(k-1)
raw_input("\nPress return to exit")

Output program
Jalankan program dengan klik run pada contoh_7_4.py, maka pada Shell akan muncul nilai
integral berikut:

Gambar 7.8 Output Program Metode Trapezoid

CONTOH 5. GERAK JATUH BEBAS

Seorang penerjun payung melakukan aksi acrobat diudara, Kecepatan penerjun sebagai fungsi
dari waktu dengan pengaruh hambatan udara, dapat ditulis sebagai

𝑚𝑔
𝑣 𝑡 = 1 − 𝑒 − 𝑐/𝑚 𝑡
(7.12)
𝑐

dengan
v = kecepatan penerjun dalam m/s.
g = percepatan gravitasi, 9.8 m/s2.
m = massa penerjun, 70 kg.
c = koefisien hambatan udara, 7 kg/s.

193
KOMPUTASI NUMERIK BERBASIS PYTHON BAB 7

Karena kecepatan adalah turunan pertama dari jarak, maka untuk menentukan jarak tempuh
penerjun selama waktu tertentu t, dapat dilakukan dengan mengintegralkan fungsi kecepatan
terhadap waktu sebagai berikut:

𝑡 𝑡 𝑚𝑔
𝑦= 0
𝑣 𝑡 𝑑𝑡 = 0 𝑐
1 − 𝑒 − 𝑐/𝑚 𝑡
(7.13)

Tentukan seberapa jauh penerjun jatuh setelah 10 sekon dengan menggunakan metode integrasi
Trapezoida.

Solusi:

Module trapezoid
## module trapezoid
''' Inew = trapezoid(f,a,b,Iold,k).
Iold = Integral f(x) dari x = a sampai b dihitung
menggunakan aturan trapezoidal dengan panel 2^(k-1).
Inew = Integral yang dihitung dengan panel 2^k.
'''
def trapezoid(f,a,b,Iold,k):
if k == 1:Inew = (f(a) + f(b))*(b - a)/2.0
else:
n = 2**(k -2 ) # Jumlah titik baru
h = (b - a)/n # Jarak tiap titik
x = a + h/2.0 # kordinat titik baru
sum = 0.0
for i in range(n):
sum = sum + f(x)
x = x + h
Inew = (Iold + h*sum)/2.0
return Inew

Script Utama Python

Dengan menggunakan module trapezoid, kita dapat menghitung integral:

File Program: contoh_7_5.py

194
KOMPUTASI NUMERIK BERBASIS PYTHON BAB 7

from math import sqrt,cos,pi,e,exp


from trapezoid import *
# input data
g = 9.8
m = 70.0
c = 7.0
# persamaan dalam integral
def f(t): return (m*g/c)*(1-exp(-(c/m)*t))
Iold = 0.0
for k in range(1,20):
Inew = trapezoid(f,0.0,10.0,Iold,k) # interval dari 0-10
if (k > 1) and (abs(Inew - Iold)) < 1.0e-6: break
Iold = Inew
print "Integral =",Inew
print "nPanels =",2**(k-1)
raw_input("\nPress return to exit")

Output program
Jalankan program dengan klik run pada contoh_7_5.py, maka pada Shell akan muncul nilai
integral berikut:

Gambar 7.9 Output Program Metode Trapezoid

195
KOMPUTASI NUMERIK BERBASIS PYTHON BAB 7

LATIHAN

LATIHAN 1. ARUS EFEKTIF LISTRIK

Arus efektif atau arus rms (root mean square) didefinisikan sebagai
t
1 0 2
t 0 0
I rms  I (t )dt (7.14)

Jika arus bolak-balik yang terjadi memiliki fungsi


t 2t
I (t )  I 0 (sin   sin ) (7.15)
t0 t0
dengan I0= 1, t0=0.05 s, serta 𝛽 =0.2, hitunglah besar arus rms sistem tersebut!

“Jika kita bisa melihat jauh kedepan itu tentu karena kita
berada diatas pundak raksaksa, yaitu tumpukan
pengetahuan dan pengalaman yang ditulis oleh orang
lain dan tersedia bagi kita untuk kita pahami”
(Sir Issacc Newton)

196

Anda mungkin juga menyukai