Dosen Pengampu : Prof. Dr. Suhartono, M.Kom
Lembaga : Universitas Islam Negeri Maulana Malik Ibrahim Malang
Fakultas : Sains dan Teknologi
Program Studi : Teknik Informatika
Kelas : B
NIM : 230605110057
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
Fungsi adalah mekanisme untuk mengubah masukan tertentu menjadi keluaran. Zero finding berarti melakukan sebaliknya: jika diberi nilai keluaran, cari masukan yang sesuai. Sebagai contoh, perhatikan fungsi eksponensial f(x)= e^x. Diberikan masukan tertentu, katakanlah x=2.135. Anda dapat dengan mudah menghitung output yang sesuai:
exp(1.117)
## [1] 3.055673
Pada penyelesain rumus fungsi f(x)=e^x dimana jika x=1.117 maka kita akan mendapatkan nilai fungsi adalah 3.055673
Tetapi kemudian kita balik yaitu dalam bentuk output dari fungsi kemudian didapat nilai inpt dari fungsi, katakanlah e^x0 adalah 1.011601 Kita akan tahu bahwa jika kita mengisi nilai x0 tertentu maka kita akan mendapatkan nilai outout dari fungsi yaitu 2.75
Bagaimana kita mendapatkan nilai x0 dengan hasil dari f(x0)=e^x0 adalah 2.75, untuk itu kita akan mengerjalakan dengan fungsi ln() seperti pada kode dibawah ini:
log(2.75)
## [1] 1.011601
Dari hasil didapat bahwa jika kita memasukkkan nilai x0 sama dengan 2.75 maka akan didapatkan nilai fungsi adalah 1.011601
Numerical zero finding
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 kita sedang menghadapi masalah seperti f(x) = 10? Anda dapat memodifikasi ekspresi tilde sehingga mengimplementasikan fungsi yang sedikit berbeda: f(x) - 10. Jika kita dapat menemukannya x0 seperti yang f(x0) - 10 = 0, itu juga akan menjadi x0 memuaskan f(x0) = 10.
Inti dari contoh ini adalah untuk menunjukkan cara menggunakan Zeros(), jadi kita akan mendefinisikan suatu fungsi f(x) menggunakan rfun()dari R/mosaik. Ini membangun suatu fungsi dengan mengambil kombinasi linier dari fungsi-fungsi lain yang dipilih secara acak. Argumennya seed=731 menentukan fungsi mana yang akan berada dalam kombinasi linier.
f <- rfun( ~ x, seed=731)
Kita akan mencari angka nol dari fungsi tersebut f(x) - 10 yang sesuai dengan penyelesaian f(x) = 10.
Zeros(f(x) - 10 ~ x, bounds(x=-5:5))
## # A tibble: 2 × 2
## x .output.
## <dbl> <dbl>
## 1 -1.44 0.000000683
## 2 4.08 -0.00000132
Keluaran yang dihasilkan Zeros() berupa bingkai data dengan satu baris untuk masing-masingnya x0 ditemukan. Di sini, dua nilai ditemukan: x0 = - 1.44 Dan x0 = 4.081. Kolom .output melaporkan f(x0) 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=-5:5)) %>%
gf_hline(yintercept = ~ 10, color="orange")
Sumber : Kalukulus Mosaic, https://dtkaplan.github.io/MC2/#instructors-preface