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, will retire 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:.
## The sp package is now running under evolution status 2
##      (status 2 uses the sf package in place of rgdal)
## 
## Attaching package: 'mosaicCalc'
## The following object is masked from 'package:stats':
## 
##     D

mencari akar dari fungsi f(x)= 6+x^2

# Fungsi yang akan dicari akarnya
f <- function(x) {
  return(x^2 - 6)
}

# Metode iteratif untuk mendekati akar
iterative_method <- function(f, x0, tol, max_iter) {
  x <- x0
  for (i in 1:max_iter) {
    x_new <- x - f(x) / (3 * x^2)  # Metode Newton-Raphson untuk akar fungsi
    if (abs(x_new - x) < tol) {
      cat("Iterasi konvergen setelah", i, "langkah.\n")
      return(x_new)
    }
    x <- x_new
  }
  cat("Iterasi tidak konvergen setelah", max_iter, "langkah.\n")
  return(NA)
}

# Nilai awal
x0 <- 2.0
# Toleransi (seberapa mendekati akar yang diinginkan)
tolerance <- 1e-6
# Jumlah maksimum iterasi
max_iterations <- 100

# Panggil metode iteratif
root <- iterative_method(f, x0, tolerance, max_iterations)
## Iterasi konvergen setelah 37 langkah.
if (!is.na(root)) {
  cat("Akar perkiraan:", root, "\n")
}
## Akar perkiraan: 2.449487