Komputasi Numerik
KN – 08
DIFERENSIASI NUMERIK
LABORATORIUM KOMPUTASI
DEPARTEMEN FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS PADJADJARAN
2023
LEMBAR PENGESAHAN
KN - 08
DIFERENSIASI NUMERIK
I. TUJUAN
Mahasiswa mampu mendiferensiasi numerik suatu fungsi dengan menggunakan
metode aproksimasi beda hingga.
II. Percobaan
II.1. Percobaan 1
import math as mt
import sympy as sp
X = sp.Symbol('X')
y = (sp.sin(3-2*X))**4
h = [0.001, 0.005,0.05,0.1,0.5]
x = int(input("Masukan titik differensiasi: "))
f1o_ = []
def f(x):
return (mt.sin(3-2*x))**4
def forward(x):
for i in range(len(h)):
f1o = (f(x+h[i])-f(x))/h[i]
f1o_.append(f1o)
return f1o_
def backward(x):
for i in range(len(h)):
f1o = (f(x)-f(x-h[i]))/h[i]
f1o_.append(f1o)
return f1o_
def central(x):
for i in range(len(h)):
f1o = (f(x+h[i])-f(x-h[i]))/(2*h[i])
f1o_.append(f1o)
return f1o_
tampilkan(forward(x),"Maju")
tampilkan(backward(x), "Mundur")
tampilkan(central(x), "Tengah")
1. Pada baris pertama, dua modul diimpor yaitu `math` dan `sympy`.
Modul `math` digunakan untuk fungsi matematika dasar seperti `sin`,
sedangkan modul `sympy` digunakan untuk menghitung turunan eksak
dari fungsi.
II.2. Percobaan 2
import math as mt
import sympy as sp
X = sp.Symbol('X')
y = (sp.sin(3*X))/(X*sp.cos(2*X))
h = [0.001,0.005,0.05,0.1, 0.5]
x = int(input("Masukan titik differensiasi: "))
f1o_ = []
def f(x):
return (mt.sin(3*x))/(x*mt.cos(2*x))
def forward(x):
for i in range(len(h)):
f1o = (f(x+h[i])-f(x))/h[i]
f1o_.append(f1o)
return f1o_
def backward(x):
for i in range(len(h)):
f1o = (f(x)-f(x-h[i]))/h[i]
f1o_.append(f1o)
return f1o_
def central(x):
for i in range(len(h)):
f1o = (f(x+h[i])-f(x-h[i]))/(2*h[i])
f1o_.append(f1o)
return f1o_
Farrel Raesya Revaldi
140310220028
tampilkan(forward(x),"Maju")
tampilkan(backward(x), "Mundur")
tampilkan(central(x), "Tengah")
1. Pada baris pertama, dua modul diimpor yaitu `math` dan `sympy`.
Modul `math` digunakan untuk fungsi matematika dasar seperti `sin`,
Farrel Raesya Revaldi
140310220028
III.1. Soal 1:
Seperti yang terlihat pada hasil percobaan di atas, untuk seluruh metode
semakin kecil nilai step size h, akan menghasilkan nilai yang lebih akurat, terlihat
dari nilai error yang makin kecil, namun terjadi hal yang sebaliknya ketka nilai step
size h semakin besar, error semakin besar. Hal itu terjadi karena ketika nilai h besar,
yang terbentuk adalah garis secant, yang memotong kurva atau grafik. Namun
ketika nilai h semakin kecil bahkan mendekati nol, step size semakin kecil, garis
sekan berubah menjadi garis tangent, berupa nilai kemiringan pada satu titik.
Karena differential merupakan mencari garis tangent pada satu titik di kurva, step
size semakin kecil, akan menghasilkan nilai yang akurat atau lebih baik.
III.2. Soal 2:
t = [0,0.1,0.25,0.38,0.56]
x = [0,2,2.8,3.5,4]
mass = 1200
velocityFinalT1 = (x[1]-x[0])/(t[1]-t[0])
velocityFinalT2 = (x[1]-x[3])/(t[1]-t[3])
velocityFinalT3 = (x[4]-x[3])/(t[4]-t[3])
velocityInitialT1 = 0
velocityInitialT2 = (x[0]-x[2])/(t[0]-t[2])
velocityInitialT3 = (x[2]-x[4])/(t[2]-t[4])
velocityT1 = velocityFinalT1 - velocityInitialT1
velocityT2 = velocityFinalT2 - velocityInitialT2
velocityT3 = velocityFinalT3 - velocityInitialT3
impulseT1 = mass*velocityT1
impulseT2 = mass*velocityT2
impulseT3 = mass*velocityT3
Farrel Raesya Revaldi
140310220028
Pada soal diminta mencari nilai dari impuls. Impuls dapat dicari
menggunakan persamaan, Impuls = massa*kecepatan. Namun dari data
yang diketahui hanya massa saja. Oleh karena itu harus mencari terlebih
dahulu nilai dari kecepatan. Diketahui data mengenai posisi dan waktu pada
tabel, karena kecepatan adalah turunan posisi terhadap waktu, maka dapat
dicari dari nilai dari kecepatan berdasarkan data pada tabel tersebut. Pada
soal ditanyakan impuls pada waktu t = 0, t = 0.25, t = 0.56, oleh karena itu
dicari terlebih dahulu kecepatan pada waktu tersebut. Digunakan metode
forward difference, pada waktu t=0, metode central pada t = 0.25, dan
metode backward, pada t = 0.56, kemudian hasilnya dikalikan denga massa
objek sebesar 1200kg. untuk secara rinci sebagai berikut:
1. List `t` berisi nilai-nilai waktu pada titik-titik tertentu dalam gerakan
benda.
2. List `x` berisi posisi benda pada titik-titik waktu yang sesuai.
3. Variabel `mass` menyimpan nilai massa benda.
Farrel Raesya Revaldi
140310220028
Hasil menunjukan bahwa impuls pada t=0.25, dan 0.56, memiliki nilai
negatif, artinya terdapat gaya yang menyebabkan momentum objek
berkurang atau gaya yang melawan arah gerak objek. Hal ini dapat terlihat
ketika data x dan t di plot dalam grafik.
Sumbu x = t dan y = x
Grafik membentuk kurva polynomial derajat 2, dan terlihat gradien semakin
mendatar yang artinya kecepatan menurun.
III.3. Soal 3:
Untuk metode forward difference, digunakan pada data yang memiliki nilai
setelahnya, karena pada perumusan untuk mencari differensiasi pada suatu
titik, dibutuhkan nilai f(x+h) dan f(x), maka jika data yang ingin nilai
differensiasi adalah pada titik f(x), dan nilai x adalah batas interval atau
tidak ada lagi nilai setelah itu, maka metode forward tidak dapat digunakan.
Jika menggunakan kasus pada soal 2, maka tidak dapat dicari menggunakan
metode ini untuk mencari nilai kecepatan pada t = 0.56
Farrel Raesya Revaldi
140310220028
III.4. Soal 4:
Soal 1
Soal 2
Dari tabel diatas nilai tidak ada yang berbeda antara metode
IV. KESIMPULAN
Farrel Raesya Revaldi
140310220028
Ketika ingin mencari nilai sebuah turunan suatu fungsi, dapat menggunakan
differensiasi secara numerik. Terdapat beberapa metode untuk mencari nilai
differensiasi, beberapa diantaranya adalah metode selisih maju, selisih
mundur, dan selisih tengah. Untuk metode forward difference, digunakan
pada data yang memiliki nilai setelahnya, karena pada perumusan untuk
mencari differensiasi pada suatu titik, dibutuhkan nilai f(x+h) dan f(x),
maka jika data yang ingin nilai differensiasi adalah pada titik f(x), dan nilai
x adalah batas interval atau tidak ada lagi nilai setelah itu, maka metode
forward tidak dapat digunakan. Untuk metode central difference, untuk
menggunakan differensiasi pada titik (x) harus diketahui data sebelumnya
(x-h) dan harus diketahui nilai sesudahnya (x+h). Untuk metode backward
difference, sama seperti metode forward, yang membedakanya adalah
dibutuhkan nilai sebelumnya. Misal ingin mencari pada titik x, tetapi harus
diketahui nilai x-h.