library(mosaicCalc)
## Warning: package 'mosaicCalc' was built under R version 4.2.2
## Loading required package: mosaic
## Warning: package 'mosaic' was built under R version 4.2.2
## 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
## Warning: package 'mosaicCore' was built under R version 4.2.2
## 
## Attaching package: 'mosaicCore'
## The following objects are masked from 'package:dplyr':
## 
##     count, tally
## 
## Attaching package: 'mosaicCalc'
## The following object is masked from 'package:stats':
## 
##     D

Bab 4 Solving

4.1 Functions vs equations

Saat pembelajaran aljabar di sma, kita diberikan persamaan 3x+2=y untuk mendapatkan nilai x di persamaan diatas kita dapat memindahkan angka 2 ke sisi sebelah kanan dan membagikannya dengan 3 metodde ini disebut dengan “penyeimbangan” dan pengurangan

4.1.1 Dari Persamaan ke Nol Fungsi

Anda memiliki fungsi f(x). Anda kebetulan tahu bentuk fungsinya f dan nilai outputnya y untuk beberapa nilai masukan yang tidak diketahui x. Masalah anda adalah menemuka input x diberi fungsi f dan nilai keluaran y

JIka anda dapat memplot fungsinya f(x) untuk berbagi x, anda dapat dengan mudah menemukan angka nol.Temukan saja di mana x di mana fungsi melintasi sumbu-y.ini berfungsi untuk fungsi apapun, bahkan yang sangat rumit sehingga tidak ada prosedur aljabar untuk menemukan solusi sebagai ilustrasi, perhatikan fungsi g()

g <- makeFun(sin(x^2)*cos(sqrt(x^4 + 3 )-x^2) - x + 1 ~ x)
slice_plot(g(x) ~ x, domain(x = -3:3)) %>%
  gf_hline(yintercept  = 0, color = "red")

fungsi melintasi sumbu y disuatu tempat antara x=1 dan x=2.Anda bisa dapat memperbesar perkiraan solusi untuk mendapatkan lebih banyak detail

slice_plot(g(x) ~ x, domain(x=1:2)) %>%
  gf_hline(yintercept = 0, color = "red")

Persimpangannya kira kira x≈1.6. Tentu saja kita dapat memperbesar lebih jauh untuk mendapatkan perkiraan yang lebih baik.Atau,kita dapat membiarkan software melakukan ini

findZeros(g(x) ~ x, xlim = range(1, 2))
##        x
## 1 1.5576

Argumen xlim digunakan untuk menyatakan dimana harus mencari solusi.(Karena bug dari software, itu selalu dipanggil xlim bahkan juka anda menggunakan selain dari x)

Anda hanya perlu memiliki gambaran kasar tentang dimana solusinya. Contoh:

findZeros(g(x) ~ x, xlim = range(-1000,  1000))
##        x
## 1 1.5576

findZeros() hanya akan melihat ke dalam interval yang anda berikan. Ini akan melakukan pekerjaan yang lebih tepat jika Anda dapat menyatakan interval dengan cara yang sempit.

4.1.2 Berbagai Solusi

Fungsi findZeros() akan mencoba menemukan banyak solusi jika ada. Misalnya persamaan dosa dosax-0,35 memiliki jumlah solusi yang tak terhingga. Berikut beberapa di antaranya:

findZeros( sin(x) - 0.35 ~ x, xlim=range(-20,20) )
##           x
## 1  -12.2088
## 2   -9.7823
## 3   -5.9256
## 4   -3.4991
## 5    0.3576
## 6    2.7840
## 7    6.6407
## 8    9.0672
## 9   12.9239
## 10  15.3504

Perhatikan bahwa persamaan dosa x=0,35 diubah menjadi fungsi sin(3)-0.35

4.1.3 Menyiapkan Masalah

Seperti namanya, findZeros() temukan nol fungsi. Anda dapat menyiapkan masalah solusi apapun dalam formulir ini. Misalnya,Anda ingin memecahkan 4+ekt=2bt untuk b, membiarkan parameter k menjadi k=0,00035. Anda mungkin ingat bagaimana mengerjakan soal ini menggunakan logaritma. Tapi inilah pengaturan untuk findZeros():

g <- makeFun(4 + exp(k*t) - 2^(b*t) ~ b, k=0.00035, t=1)
findZeros( g(b) ~ b , xlim=range(-1000, 1000) )
##       b
## 1 2.322

Perhatikan bahwa nilai numerik untuk keduanya b dan t diberikan. Namun dalam soal aslinya, tidak ada pernyataan tentang nilai dari t . Hal ini menunjukkan salah satu keuntungan dari teknik aljabar. Jika Anda memecahkan masalah secara aljabar, Anda akan segera melihat bahwa membatalkan di kedua sisi persamaan. Fungsi numerik findZeros( )tidak mengetahui aturan aljabar, sehingga tidak dapat mengetahuinya. Tentu saja, Anda dapat mencoba nilai lain dari t untuk memastikan itu tidak masalah.

findZeros( g(b, t=2) ~ b, xlim=range(-1000,1000) )
##        b
## 1 1.1611