Nama : Muhamad Fran Dahlan Gibran
NIM : 230605110127
Dosen Pengampu : Prof. Dr. Suhartono, M.Kom
Universitas :
Universitas Islam Negeri Maulana Malik Ibrahim Malang
Fakultas :
Sains dan Teknologi
Program Studi : Teknik Informatika
Diferensiasi adalah salah satu konsep dasar dalam kalkulus yang berkaitan dengan perubahan dan laju perubahan. Secara khusus, diferensiasi membahas cara menghitung turunan suatu fungsi, yang dapat diinterpretasikan sebagai laju perubahan nilai fungsi terhadap perubahan nilai variabel independennya. Terdapat beberapa metode untuk menghitung turunan, dan di sini kita akan membahas dua metode yang umum digunakan: beda maju (forward difference) dan beda tengah (central difference).
# Fungsi untuk menghitung turunan numerik menggunakan beda maju
forward_difference <- function(f, x, h = 1e-5) {
return((f(x + h) - f(x)) / h)
}
# Fungsi untuk menghitung turunan numerik menggunakan beda tengah
central_difference <- function(f, x, h = 1e-5) {
return((f(x + h / 2) - f(x - h / 2)) / h)
}
# Fungsi yang akan di-diferensiasi
f <- function(x) {
return(x^2)
}
# Pilih titik tempat kita ingin menghitung turunan
x_value <- 2
# Hitung turunan menggunakan beda maju
df_forward <- forward_difference(f, x_value)
# Hitung turunan menggunakan beda tengah
df_central <- central_difference(f, x_value)
# Tampilkan hasil
cat("Turunan menggunakan beda maju:", df_forward, "\n")
## Turunan menggunakan beda maju: 4.00001
cat("Turunan menggunakan beda tengah:", df_central, "\n")
## Turunan menggunakan beda tengah: 4
# Plot fungsi dan garis tangen di titik yang dipilih
x <- seq(-5, 5, length.out = 100)
y <- f(x)
# Fungsi garis tangen
tangent_line_forward <- function(x) {
return(df_forward * (x - x_value) + f(x_value))
}
tangent_line_central <- function(x) {
return(df_central * (x - x_value) + f(x_value))
}
# Plot grafik
plot(x, y, type = "l", col = "blue", lwd = 2, xlab = "x", ylab = "f(x)", main = "Turunan Numerik tanpa Library")
# Tambahkan garis tangen menggunakan beda maju
lines(x, tangent_line_forward(x), col = "red", lty = 2)
# Tambahkan garis tangen menggunakan beda tengah
lines(x, tangent_line_central(x), col = "green", lty = 2)
# Tambahkan titik di titik yang dipilih
points(x_value, f(x_value), col = "black", pch = 16)
# Tampilkan legenda
legend("topright", legend = c("f(x)", "Forward Difference", "Central Difference", "Selected Point"), col = c("blue", "red", "green", "black"), lty = c(1, 2, 2, NA), lwd = c(2, 1, 1, NA))