library(mosaicCalc)
## Loading required package: mosaic
## Registered S3 method overwritten by 'mosaic':
## method from
## fortify.SpatialPolygonsDataFrame ggplot2
##
## The 'mosaic' package masks several functions from core packages in order to add
## additional features. The original behavior of these functions should not be affected by this.
##
## Attaching package: 'mosaic'
## The following objects are masked from 'package:dplyr':
##
## count, do, tally
## The following object is masked from 'package:Matrix':
##
## mean
## The following object is masked from 'package:ggplot2':
##
## stat
## The following objects are masked from 'package:stats':
##
## binom.test, cor, cor.test, cov, fivenum, IQR, median, prop.test,
## quantile, sd, t.test, var
## The following objects are masked from 'package:base':
##
## max, mean, min, prod, range, sample, sum
## Loading required package: mosaicCore
##
## Attaching package: 'mosaicCore'
## The following objects are masked from 'package:dplyr':
##
## count, tally
## The legacy packages maptools, rgdal, and rgeos, underpinning the sp package,
## which was just loaded, were retired in October 2023.
## Please refer to R-spatial evolution reports for details, especially
## https://r-spatial.org/r/2023/05/15/evolution4.html.
## It may be desirable to make the sf package available;
## package maintainers should consider adding sf to Suggests:.
##
## Attaching package: 'mosaicCalc'
## The following object is masked from 'package:stats':
##
## D
Iterasi numerik adalah teknik penting dalam komputasi matematika yang
digunakan untuk mendekati solusi suatu masalah secara berulang hingga
mencapai tingkat akurasi yang diinginkan. Fungsi better()
merupakan komponen kunci dalam proses iterasi numerik, membantu
meningkatkan keakuratan tebakan dan mendekati solusi yang sebenarnya.
Artikel ini akan membahas konsep dasar iterasi numerik dan peran fungsi
better() dalam meningkatkan akurasi proses tersebut.
Iterasi numerik adalah pendekatan berulang untuk mendekati solusi suatu masalah matematika. Proses ini dimulai dengan tebakan awal, dan setiap iterasi menghasilkan tebakan baru yang semakin mendekati solusi yang diinginkan. Fungsi iterasi numerik dapat digunakan untuk berbagai masalah, seperti mencari akar suatu persamaan atau mendekati nilai integral.
Contoh penerapan iterasi numerik adalah menggunakan fungsi
Iterate() dalam bahasa pemrograman R. Fungsi ini menerima
ekspresi matematika yang mendefinisikan suatu fungsi, tebakan awal, dan
jumlah langkah iterasi. Proses ini terus diulang hingga mencapai tingkat
akurasi yang diinginkan.
better() dalam Iterasi NumerikFungsi better() memainkan peran kunci dalam meningkatkan
akurasi tebakan pada setiap iterasi. Fungsi ini dirancang khusus untuk
memperbaiki tebakan yang diberikan, dengan mempertimbangkan perbandingan
antara tebakan asli dan informasi tambahan.
Rumus fungsi better() secara umum adalah sebagai
berikut: \[ \text{better}(\text{guess}, x) =
\frac{1}{2} \left( \text{guess} + \frac{x}{\text{guess}} \right)
\]
better() membantu mengarahkan
tebakan ke arah yang benar untuk mendekati solusi yang sebenarnya.better():Iterate()
dengan fungsi gelombang yang mengandung fungsi better()
untuk menghasilkan tebakan baru.better()
digunakan pada setiap iterasi untuk memperbaiki tebakan.# Fungsi better() untuk mencari akar kuadrat
better <- function(guess, x) {
0.5 * (guess + x / guess)
}
# Fungsi Iterate() dengan better() untuk pencarian akar kuadrat
Iterate(better(guess, x=55) ~ guess, x0=1, n=8)
## n guess
## 1 0 1.000000
## 2 1 28.000000
## 3 2 14.982143
## 4 3 9.326590
## 5 4 7.611854
## 6 5 7.418713
## 7 6 7.416199
## 8 7 7.416198
## 9 8 7.416198
Hasil dari iterasi numerik ini akan memberikan tebakan yang semakin mendekati akar kuadrat dari 55. Proses ini diulang sebanyak delapan kali, dengan tebakan awal 1 dan menggunakan fungsi better() untuk memperbaiki tebakan pada setiap iterasi.
Langkah-langkah dari iterasi numerik dengan fungsi
better() untuk pencarian akar kuadrat dari \(x = 55\) adalah sebagai berikut:
better().better().better().Hasil akhirnya adalah bingkai data iterasi yang mencatat nilai \(guess\) pada setiap langkah iterasi. Proses
ini menggambarkan bagaimana tebakan awal yang dimasukkan ke dalam fungsi
better() secara berulang dapat mendekati akar kuadrat dari
\(x = 55\). Semakin banyak iterasi,
semakin akurat tebakan tersebut, dan dalam contoh ini, proses iterasi
telah konvergen ke nilai yang cukup dekat dengan akar kuadrat
sebenarnya.
Pada awalnya, tebakan 1 jauh dari akar kuadrat sebenarnya. Namun, setiap iterasi dengan bantuan fungsi better() membawa tebakan lebih dekat ke nilai yang sebenarnya. Dengan demikian, dapat dilihat bagaimana proses iterasi numerik dengan fungsi better() dapat digunakan untuk mendekati solusi matematika dengan lebih akurat.
# Fungsi quadratic() untuk mencari akar kuadrat dari x^2 - 9
quadratic <- function(guess, x) {
guess - (guess^2 - x) / (2 * guess)
}
# Pencarian akar kuadrat dengan Iterate()
result_quadratic <- Iterate(quadratic(guess, x = 9) ~ guess, x0 = 1, n = 5)
print(result_quadratic)
## n guess
## 1 0 1.000000
## 2 1 5.000000
## 3 2 3.400000
## 4 3 3.023529
## 5 4 3.000092
## 6 5 3.000000
Langkah-langkah Iterasi:
quadratic().quadratic().quadratic().Hasil iterasi numerik ini memberikan perkiraan nilai akar kuadrat dari \(x^2 - 9\) dengan setiap iterasi, dapat dilihat bahwa tebakan semakin mendekati nilai akar kuadrat yang sebenarnya. Proses ini dapat dilanjutkan dengan melakukan lebih banyak iterasi untuk mendapatkan perkiraan yang lebih akurat.
Referensi:
Kaplan, Daniel. 2022. MOSAIC Calculus. GitHub Pages. https://dtkaplan.github.io/MC2/