PROBLEM STATEMENT
Menghitung energi potensial gravitasi antar 2 buah benda dengan menggunakan Integral
Numeric serta dengan menggunakan teknik Trapezoid dan Simpson pada program Python.
MATHEMATICAL EQUATIONS
Eenergi Potensial Gravitasi Antar 2 Benda
Apabila diketahui sebuah benda bermassa (M) 6,000,000 𝑘𝑔 berjarak 15 𝑚 dengan benda lain
yang bermassa (m) 4,000,000 𝑘𝑔. Carilah energi potensial gravitasi pada selang jarak (ri – rf)
(ri = 3 m & rf = 12 m). (𝐺 = 6.67 × 10−11 )
Gaya gravitasi antar 2 buah benda memiliki rumus :
𝑟𝑓
𝐺𝑀𝑚
∆𝑈 = ∫ 𝑑𝑟
𝑟2
𝑟𝑖
Jika dihitung :
12
(1,600.8)
∆𝑈 = ∫ 𝑑𝑟
225
3
1
LABORATORIUM FISIKA KOMPUTASI
PROGRAM STUDI FISIKA
UNIVERSITAS NEGERI JAKARTA
𝑏 𝑛−1
ℎ
∫ 𝑓(𝑥) 𝑑𝑥 ≈ (𝑓(𝑥0 ) + 2 (∑ 𝑓(𝑥𝑖 )) + 𝑓(𝑥𝑛 ))
𝑎 2
𝑖=1
Dengan
n = banyak trapezoid (subinterval) / jumlah kenaikan
𝑏−𝑎
h = jarak antar titik = 𝑛
𝑏 𝑛−1 𝑛−2
ℎ
∫ 𝑓(𝑥) 𝑑𝑥 ≈ [𝑓(𝑥0 ) + 4 ( ∑ 𝑓(𝑥𝑖 )) + 2 ( ∑ 𝑓(𝑥𝑖 )) + 𝑓(𝑥𝑛 )]
𝑎 3
𝑖=1,𝑖 𝑔𝑎𝑛𝑗𝑖𝑙 𝑖=2,𝑖 𝑔𝑒𝑛𝑎𝑝
2
LABORATORIUM FISIKA KOMPUTASI
PROGRAM STUDI FISIKA
UNIVERSITAS NEGERI JAKARTA
Dengan 𝑘 = 1,2,3, …
Metode Simpson 3/8 hanya dapat digunakan jika n (jumlah subinterval) merupakan kelipatan
dari 3.
Error
𝑁𝑖𝑙𝑎𝑖 𝑠𝑒𝑏𝑒𝑛𝑎𝑟𝑛𝑦𝑎 − 𝐴𝑝𝑟𝑜𝑘𝑠𝑖𝑚𝑎𝑠𝑖
𝐸𝑟𝑟𝑜𝑟 𝑟𝑒𝑙𝑎𝑡𝑖𝑓 = | × 100|
𝑁𝑖𝑙𝑎𝑖 𝑠𝑒𝑏𝑒𝑛𝑎𝑟𝑛𝑦𝑎
3
LABORATORIUM FISIKA KOMPUTASI
PROGRAM STUDI FISIKA
UNIVERSITAS NEGERI JAKARTA
4
LABORATORIUM FISIKA KOMPUTASI
PROGRAM STUDI FISIKA
UNIVERSITAS NEGERI JAKARTA
5
LABORATORIUM FISIKA KOMPUTASI
PROGRAM STUDI FISIKA
UNIVERSITAS NEGERI JAKARTA
Results
#Jika Banyak Kenaikan (Banyak Subinterval) = 9
6
LABORATORIUM FISIKA KOMPUTASI
PROGRAM STUDI FISIKA
UNIVERSITAS NEGERI JAKARTA
Disscussion
Untuk menghitung Energi Potensial Gravitasi antar 2 benda, maka perlu diketahui fungsi
energi potensial gravitasi-nya. Pada kasus ini diketahui :
𝑟𝑓 12
𝐺𝑀𝑚 (1,600.8)
∆𝑈 = ∫ 𝑑𝑟 = ∫ 𝑑𝑟
𝑟2 225
𝑟𝑖 3
Sehingga dapat kita masukan pada program Batas bawah integral = 3 dan Batas atas integral =
12. Untuk masukan Jumlah kenaikan (banyak subinterval) digunakan variasi = 9, 4, dan 15.
Pada Jumlah kenaikan (banyak subinterval) = 9, diketahui bahwa panjang sub interval (h) = 1.
Nilai error relatif = 0% untuk metode trapezoid dan simpson3/8, sedangkan untuk metode
simpson1/3 memiliki nilai error relative = 3.7037%, dimana hasil integralnya adalah 64.0320
untuk trapezoid dan simpson3/8 sama nilainya dengan integral sebenarnya.
Pada Jumlah kenaikan (banyak subinterval) = 4, diketahui bahwa panjang sub interval (h) =
2.25. Nilai error relatif = 0% untuk metode trapezoid dan simpson1/3, sedangkan pada metode
simpson3/8 error relatif = 6.2500 %, dimana hasil integralnya adalah 60.0300, sedangkan nilai
integral sebenarnya adalah 64.0320.
Pada Jumlah kenaikan (banyak subinterval) = 15, diketahui bahwa panjang sub interval (h) =
0.6. Nilai error relatif = 0% untuk metode trapezoid dan simpson3/8, sedangkan pada metode
simpson1/3 error relatif = 2.2222 %, dimana hasil integralnya adalah 62.6091, sedangkan nilai
integral sebenarnya adalah 64.0320.
7
LABORATORIUM FISIKA KOMPUTASI
PROGRAM STUDI FISIKA
UNIVERSITAS NEGERI JAKARTA
Attachments
#Flowchart
8
LABORATORIUM FISIKA KOMPUTASI
PROGRAM STUDI FISIKA
UNIVERSITAS NEGERI JAKARTA
#Source Code
print ("Menentukan Energi Potensial Gravitasi Antara 2 Benda dengan Teknik Integral
Numerik")
print ("Nama : Galih Muhammad Ghufron")
print ("NRM : 1306619059")
print ("-------------------------------------------------------")
import numpy as np
from scipy.integrate import quad
f = lambda r: (1600.8/225)
print ("fungsi F(r) = (1600.8/225)")
Bb = float(input('Batas Bawah Integral: ')); Ba = float(input('Batas Atas Integral: ')); n =
int(input('Jumlah kenaikan (banyak subinterval): '))
sigmatrapezoid = 0; sigmaevensimpson13 = 0; sigmaoddsimpson13 = 0
sigman1 = 0; sigman2 = 0; sigman3 = 0
e = 10e-12
h = (Ba-Bb)/n
print ("panjang subinterval (h) = ",h)
for i in np.arange(Bb+h,Ba-h+e,h):
sigmatrapezoid = sigmatrapezoid + f(i)
if sigmaoddsimpson13==0:
for j in np.arange(Bb+h,Ba-h+e,2*h):
sigmaoddsimpson13 = sigmaoddsimpson13 + f(j)
if sigmaevensimpson13==0:
9
LABORATORIUM FISIKA KOMPUTASI
PROGRAM STUDI FISIKA
UNIVERSITAS NEGERI JAKARTA
for k in np.arange(j+h,Ba-h+e,2*h):
sigmaevensimpson13 = sigmaevensimpson13 + f(k)
if sigman1==0:
for p in np.arange(Bb+h,Ba-h+e,3*h):
sigman1 = sigman1 + (3*f(p))
if sigman2==0:
for p in np.arange (Bb+(2*h),Ba-h+e,3*h):
sigman2 = sigman2 + (3*f(p))
if sigman3==0:
for p in np.arange(Bb+(3*h),Ba-h+e,3*h):
sigman3 = sigman3 + (2*f(p))
10