PROBLEM STATEMENT
Menghitung turunan fungsi serta nilainya pada persamaan Energi Potensial Pegas
1
(𝐸𝑝 = 2 × 𝑘 × ∆𝑥 2 ) dengan menggunakan turunan numerik serta dengan menggunakan teknik
MATHEMATICAL EQUATIONS
1. Rumus energi potensial pegas
1
(𝐸𝑝 = 2 × 𝑘 × ∆𝑥 2 )
1
LABORATORIUM FISIKA KOMPUTASI
PROGRAM STUDI FISIKA
UNIVERSITAS NEGERI JAKARTA
Jika rumus diatas diturunkan sekali menggunakan metode Taylor ataupun dengan
hampiran polinom interpolasi maka akan mendapatkan hasil yang sama yaitu :
𝑓0 − 𝑓1
𝑓0′ = + 𝒪(ℎ)
ℎ
−ℎ
Yang dalam hal ini 𝒪(ℎ) = 2𝑓′′ (𝑡) , 𝑥𝑖+1 < 𝑡 < 𝑥𝑖
2
LABORATORIUM FISIKA KOMPUTASI
PROGRAM STUDI FISIKA
UNIVERSITAS NEGERI JAKARTA
3
LABORATORIUM FISIKA KOMPUTASI
PROGRAM STUDI FISIKA
UNIVERSITAS NEGERI JAKARTA
18. Mem-plot variabel yang telah dicari ke dalam grafik serta membuat
keterangan symbol plt.legend ([‘forward derivative’,’backward
derivative’, ’central derivative’])
19. Membuat sumbu x sebagai “iteration” dan sumbu y sebagai “forward, backward, dan
central derivative value”
20. Membuat judul grafik
21. Mencetak grafik
22. Menyelesaikan program
4
LABORATORIUM FISIKA KOMPUTASI
PROGRAM STUDI FISIKA
UNIVERSITAS NEGERI JAKARTA
RESULTS
#Output Program
5
LABORATORIUM FISIKA KOMPUTASI
PROGRAM STUDI FISIKA
UNIVERSITAS NEGERI JAKARTA
6
LABORATORIUM FISIKA KOMPUTASI
PROGRAM STUDI FISIKA
UNIVERSITAS NEGERI JAKARTA
DISCUSSION
Praktikum modul 5 kali ini adalah tentang turunan numerik, di mana dengan sebuah fungsi
suatu kasus fisika kita diharuskan mencari Forward derivative, Backward derivative, dan
Central derivative. Saya mengambil kasus energi potensial pegal untuk diturunkan dengan
konstanta pegas (k = 9.8).
1
Untuk menghitung turunan fungsi 𝐸𝑝 = 2 × 𝑘 × ∆𝑥 2 pada x dengan menggunakan Turunan
numerik dengan teknik Forward, Backward, dan Central, maka diperlukan masukan/input
berupa nilai vat dalam x dan j. Pada program ini nilai j dimasukan dalam bentuk range/rentang
tertentu, dengan masukan berupa batas atas, batas bawah, dan selisih.
Pada percobaan ini, diberikan masukan berupa 𝑥 = 2, batas bawah = -2, batas atas = 20, dan
selisih = 2. Kemudian didapatkan output/keluaran berupa nilai 𝐸𝑝′ (𝑥) = 𝐸𝑝′ ( 2) = 19.6 dan
tabel sebagai berikut :
7
LABORATORIUM FISIKA KOMPUTASI
PROGRAM STUDI FISIKA
UNIVERSITAS NEGERI JAKARTA
8
LABORATORIUM FISIKA KOMPUTASI
PROGRAM STUDI FISIKA
UNIVERSITAS NEGERI JAKARTA
Berdasarkan tabel dan grafik tersebut, dapat kita lihat bahwa semakin besar nilai h, maka
nilai turunan numerik dengan metode forward dan central akan semakin besar pula sedangkan
dengan metode backward nilai turunan akan semakin kecil.
9
LABORATORIUM FISIKA KOMPUTASI
PROGRAM STUDI FISIKA
UNIVERSITAS NEGERI JAKARTA
ATTACHMENTS
#Flowchart
10
LABORATORIUM FISIKA KOMPUTASI
PROGRAM STUDI FISIKA
UNIVERSITAS NEGERI JAKARTA
#Source Code
print('Nama \t: Galih Muhammad Ghufron')
print('NIM \t: 1306619059')
print('Program Mencari Akar menggunakan Metode Pendekatan Numerical Derivative\n')
import numpy as np
import matplotlib.pyplot as plt
from sympy import *
k = 9.8
vab = str(input('Variabel bebas : '))
f = input('Masukkan Fungsi : ')
vat = float(input('Nilai Turunan yang dicari :'))
Bb = int(input('Batas Bawah : '))
Ba = int(input('Batas Atas : '))
Dfr = int(input('Selisih :'))
df = diff(f,Symbol(vab))
A = lambdify(Symbol(vab),df)
B = lambdify(Symbol(vab), f)
print('Nilai Turunan Pertama :' ,df)
print('Dengan nilai :', A(vat))
print(' n\t for\tback\t Cen\t |for-dfvalue|\t |back-dfvalue|\t |Cen-dfvalue|')
n=1
list_n =[]
list_dfor =[]
list_dback =[]
list_dcen =[]
11
LABORATORIUM FISIKA KOMPUTASI
PROGRAM STUDI FISIKA
UNIVERSITAS NEGERI JAKARTA
for j in range(Bb,Ba,Dfr):
if j == 0:
continue
dfor = (B(vat+j) - B(vat))/j
dback = (B(vat) - B(vat-j))/j
dcen = (B(vat+j) - B(vat-j))/(2*j)
list_n.append(n)
list_dfor.append(dfor)
list_dback.append(dback)
list_dcen.append(dcen)
print('',n,'\t',round(dfor,2),'\t',round(dback,2),'\t',round(dcen,2),'\t\t',round(abs(dfor-
A(vat)),2),'\t\t\t ',round(abs(dback-A(vat)),2),'\t\t\t',round(abs(dcen-A(vat)),2))
n+=1
plot1, = plt.plot(list_n,list_dfor,'c-o')
plt.legend([plot1],[f])
plt.xlabel('iteration (n)'); plt.ylabel('Forward derivative value')
plt.title('Graph Of Forward Derivative vs iteration')
plt.grid(); plt.show()
plot2, = plt.plot(list_n,list_dback,'r-o')
plt.legend([plot2],[f])
plt.xlabel('iteration (n)'); plt.ylabel('Backward derivative value')
plt.title('Graph Of Backward Derivative vs iteration')
plt.grid(); plt.show()
12
LABORATORIUM FISIKA KOMPUTASI
PROGRAM STUDI FISIKA
UNIVERSITAS NEGERI JAKARTA
plot3, = plt.plot(list_n,list_dcen)
plt.legend([plot3],[f])
plt.xlabel('iteration (n)'); plt.ylabel('Central derivative value')
plt.title('Graph Of Central Derivative vs iteration')
plt.grid(); plt.show()
13
LABORATORIUM FISIKA KOMPUTASI
PROGRAM STUDI FISIKA
UNIVERSITAS NEGERI JAKARTA
14