Sebagian besar isi aljabar sekolah menengah melibatkan “pemecahan.”
Dalam situasi umum, Anda memiliki persamaan, katakanlah \[ 3 x + 2 = y\] dan Anda diminta untuk
“menyelesaikan” persamaan untuk \(x\) .
Ini melibatkan penataan ulang simbol-simbol persamaan dengan cara yang
sudah dikenal, misalnya, memindahkan \(2\) ke ruas kanan dan membaginya dengan
\(3\) . Langkah-langkah ini, awalnya
disebut “penyeimbangan” dan “pengurangan” diringkas dalam arti asli dari
kata Arab “al-jabr” (yaitu, digunakan
oleh Muhammad ibn Musa al-Khowarizmi (c. 780-850) dalam bukunya ”
Compendious Buku Perhitungan dengan Penyelesaian dan
Penyeimbangan “Dari sinilah kata”aljabar” kami berasal.
Bentuk umum dari masalah yang biasanya digunakan dalam perhitungan numerik di komputer adalah bahwa persamaan yang akan diselesaikan benar-benar merupakan fungsi yang akan dibalik. Artinya, untuk perhitungan numerik, masalahnya harus dinyatakan seperti ini:
Anda memiliki fungsi \(f(x)\) . Anda kebetulan mengetahui bentuk fungsi \(f\) dan nilai keluaran \(y\) untuk beberapa nilai masukan yang tidak diketahui \(x\) . Masalah Anda adalah menemukan input \(x\) yang diberikan fungsi \(f\) dan nilai output \(y\) .
Salah satu cara untuk menyelesaikan masalah tersebut adalah dengan mencari invers \(f\) . Ini sering ditulis \(f^{\ -1}\) (yang dapat dimengerti oleh banyak siswa tetapi salah mengartikannya \(1/f(x)\) ). Tetapi menemukan kebalikan dari \(f\) bisa sangat sulit dan berlebihan. Sebaliknya, masalah dapat ditangani dengan mencari nol dari \(f\)
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
##
## Attaching package: 'mosaicCalc'
## The following object is masked from 'package:stats':
##
## D
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")
Anda dapat melihat dengan cukup mudah bahwa fungsi tersebut melintasi kamu sumbu di suatu tempat antara x = 1 dan x = 2 . Anda bisa mendapatkan lebih banyak detail dengan memperbesar sekitar solusi perkiraan
slice_plot(g(x) ~ x, domain(x=1:2)) %>%
gf_hline(yintercept = 0, color = "red")
Anda tentu saja dapat memperbesar lebih jauh untuk mendapatkan perkiraan yang lebih baik. Atau, Anda dapat membiarkan perangkat lunak melakukan ini untuk Anda:
findZeros(g(x) ~ x, xlim = range(1, 2))
## x
## 1 1.5576
## x
## 1 1.5576
Argumen xlimdigunakan untuk menyatakan di mana mencari solusi.
findZeros(g(x) ~ x, xlim = range(-1000, 1000))
## x
## 1 1.5576
## x
## 1 1.5576
Fungsi findZeros( )akan mencoba menemukan beberapa
solusi jika ada. Misalnya persamaandosax=0.35dosax=0.35memiliki jumlah
solusi yang tidak terbatas. Berikut adalah 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
## 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
Seperti namanya, findZeros( )menemukan fungsi nol. Anda dapat mengatur masalah solusi apa pun dalam formulir ini. Misalnya, Anda ingin menyelesaikan 4 + e k t = 2 b t untuk b , biarkan parameter k menjadi k = 0,00035 . Anda mungkin, tentu saja, ingat bagaimana mengerjakan soal ini dengan 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
## b
## 1 2.322
Fungsi numerik findZeros( )tidak mengetahui aturan aljabar, sehingga tidak dapat mengetahuinya. Tentu saja, Anda dapat mencoba nilai-nilai lain dari t untuk memastikan bahwa t tidak masalah.
findZeros( g(b, t=2) ~ b, xlim=range(-1000,1000) )
## b
## 1 1.1611
## b
## 1 1.1611