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

Numerical zero-finding adalah cara untuk mencari nilai-nilai x yang membuat suatu fungsi f(x) sama dengan nol. Nilai-nilai x ini disebut akar-akar atau solusi dari fungsi f(x). Metode-metode numerik ini menggunakan komputer untuk menghitung dan memeriksa nilai-nilai x yang mungkin menjadi akar-akar fungsi.

Pada kali ini kita akan menggunakan fungsi R/Mosaic Zeros(). Argumen pertama adalah persamaan gelombang laut dan argumen kedua adalah interval domain yang akan dicari.

Zeros() diatur untuk mencari masukan yang fungsi yang ditentukan oleh persamaan gelombang laut menghasilkan nol sebagai keluaran. Namun misalkan kita menghadapi masalah seperti f(x) = 10?

Kita dapat mengubah ekspresi gelombang laut untuk mengimplementasikan fungsi yang sedikit berbeda f(x) - 10. Jika kita dapat mencari x0 sehingga f(x0) - 10 = 0, maka x0 juga memenuhi f(x0) = 10.

Inti dari contoh ini adalah untuk menunjukkan cara menggunakan Nol(), jadi kita mendefinisikan fungsi f(x) menggunakan rfun() R/mosaik. Bangunlah suatu fungsi dengan kombinasi linier dari fungsi-fungsi lain yang dipilih secara acak. Argumen Seed = 579 menentukan fungsi mana yang muncul dalam kombinasi linier.

f <- rfun( ~ x, seed=579)
Zeros(f(x) - 10 ~ x, bounds(x=-4:4))
## # A tibble: 2 × 2
##         x      .output.
##     <dbl>         <dbl>
## 1 -2.92   -0.0000000344
## 2  0.0795 -0.00000118
slice_plot(f(x) ~ x, bounds(x=-4:4)) %>%
  gf_hline(yintercept = ~ 10, color="green")