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

Dalam buku ini, kita akan menggunakan fungsi R/mosaik Zeros(). Argumen pertama adalah ekspresi gelombang laut dan argumen kedua adalah interval domain yang akan dicari.

Zeros()diatur untuk mencari masukan di mana fungsi yang didefinisikan dalam ekspresi gelombang laut menghasilkan nol sebagai keluaran. Tapi misalkan Anda sedang menghadapi masalah sepertif(x) = 10? Anda dapat memodifikasi ekspresi tilde sehingga mengimplementasikan fungsi yang sedikit berbeda:f(x) - 10. Jika kita dapat menemukannyax_0seperti yangf(x_0) - 10 = 0, itu juga akan menjadix_0memuaskanf(x_0) = 10

Inti dari contoh ini adalah untuk menunjukkan cara menggunakan Zeros(), jadi kita akan mendefinisikan suatu fungsif(x)menggunakan rfun()dari R/mosaik. Ini membangun suatu fungsi dengan mengambil kombinasi linier dari fungsi-fungsi lain yang dipilih secara acak. Argumennya seed=579menentukan fungsi mana yang akan berada dalam kombinasi linier.

f <- rfun( ~ x, seed=579)

Kami ingin mencari angka nol dari fungsi tersebutf(x) - 10yang sesuai dengan penyelesaianf(x) = 10

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
## # A tibble: 2 × 2
##         x      .output.
##     <dbl>         <dbl>
## 1 -2.92   -0.0000000344
## 2  0.0795 -0.00000118

Keluaran yang dihasilkan Zeros()berupa bingkai data dengan satu baris untuk masing-masingnyax_0ditemukan. Di sini, dua nilai ditemukan:x_0 = -2.92Danx_0 = 0.0795. Kolom .outputmelaporkanf(x_0)yang seharusnya nol. Tidak selalu mungkin untuk mencapai angka nol secara tepat, karena aritmatika komputer tidak selalu tepat.

Pikirkan Zeros()sebagai cara untuk menyempurnakan jawaban yang Anda temukan secara grafis. Jadi sebelum menggunakan Zeros(), buatlah grafiknya.

slice_plot(f(x) ~ x, bounds(x=-4:4)) %>%
  gf_hline(yintercept = ~ 10, color="magenta")