Zero Finding (Penemuan Nol)

Pada artikel kali ini kita akan membahas apa itu Zero Finding. Zero Finding adalah proses mencari solusi suatu persamaan matematika, yaitu nilai yang fungsi tersebut mencapai nol. Sering digunakan untuk mencari solusi fungsi matematika, yang dapat berupa solusi persamaan kuadrat, eksponensial, atau fungsi lainnya.

Zero Finding penting dalam statistik, terutama ketika kita ingin mencari parameter yang meminimalkan perbedaan antara data observasi dan model statistik. Misalnya, dalam regresi, Zero Finding digunakan untuk menemukan parameter yang memodelkan hubungan antar variabel terbaik.

Langkah pertama: Di sini kita mendefinisikan fungsi g(x) yang solusinya ingin kita cari. Fungsi ini didefinisikan sebagai selisih antara exp(-x) (fungsi eksponensial dari x negatif) dan sin(x) (fungsi sinusoidal dari x).

# Langkah pertama - Mendefinisikan fungsi yang ingin dicari angka nolnya
g <- function(x) exp(-x) - sin(x)

Langkah kedua: Fungsi uniroot digunakan untuk mencari solusi fungsi g(x) dalam interval tertentu. Pada kode ini, kita mencari solusi pada interval [0, 2], yang artinya kita mencari nilai x di antara 0 dan 2 dimana g(x) sama dengan 0.

# Langkah kedua - Menggunakan fungsi uniroot untuk mencari angka nol dari fungsi g
result <- uniroot(g, c(0, 2))

Langkah ketiga: Hasil pencarian akar (nol) disimpan dalam variabel result. Akar tersebut dapat diakses menggunakan result$root. Hasilnya akan mencetak nilai dari x dimana g(x) sama dengan 0.

# Langkah ketiga - Hasilnya adalah:
result$root  # Arahkan hasil pencarian nol
## [1] 0.5885327

Langkah keempat, opsional: Kita menggunakan fungsi curve untuk membuat grafik fungsi g(x) dalam rentang [-2, 2]. Ini akan memberikan visualisasi tentang bagaimana fungsi tersebut akan terlihat. Parameter main digunakan untuk memberi judul pada grafik.

# Langkah keempat (Opsional) - Membuat grafik fungsi g dan memberi tanda angka nolnya
curve(g, from = -2, to = 2, main = "Grafik Fungsi g(x)")
abline(h = 0, col = "deeppink")
abline(v = result$root, col = "black")

points(0.5885327, 0, col = "deeppink", pch = 19)