4.1 Fungsi vs persamaan
Sebagian besar isi aljabar sekolah menengah melibatkan “penyelesaian”. Dalam situasi umum, Anda memiliki persamaan, katakanlah \[ 3 x + 2 = y\] dan Anda diminta untuk “menyelesaikan” persamaan untuk \(x\) . Ini melibatkan penataan ulang simbol persamaan dengan cara yang sudah dikenal, misalnya, memindahkan \(2\) ke sisi kanan dan membaginya dengan \(3\) . Langkah-langkah ini, awalnya disebut “penyeimbangan” dan “pengurangan” diringkas dalam arti asli dari kata Arab “al-jabr” (digunakan oleh Muhammad ibn Musa al-Khowarizmi (c. 780-850) dalam bukunya ” Ringkasan “. Buku tentang Perhitungan dengan Menyelesaikan dan Menyeimbangkan”. Dari sinilah kata “aljabar” kita berasal.
Siswa sekolah menengah juga diajarkan berbagai teknik ad hoc untuk menyelesaikan situasi tertentu. Sebagai contoh, persamaan kuadrat \(ax^2 + bx + c = 0\) dapat diselesaikan dengan menerapkan prosedur “memfaktorkan”, atau “menyelesaikan kuadrat”, atau menggunakan rumus kuadrat: \[x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a} .\] Bagian dari rumus ini dapat ditelusuri kembali setidaknya ke tahun 628 dalam tulisan Brahmagupta, seorang matematikawan India, tetapi lengkapnya formula tampaknya berasal dari Simon Stevin di Eropa pada tahun 1594, dan diterbitkan oleh René Descartes pada tahun 1637.
Untuk beberapa soal, siswa diajari operasi penamaan yang melibatkan invers fungsi. Misalnya, untuk menyelesaikan \(\sin(x) = y\) , seseorang cukup menulis \(x = \arcsin(y)\) tanpa detail tentang cara menemukan \(\arcsin\) di luar “gunakan kalkulator” atau, di masa lalu, “gunakan meja dari buku”.
4.1.1 Dari Persamaan ke Nol Fungsi
Dengan semua penekanan pada prosedur seperti memfaktorkan dan memindahkan simbol bolak-balik di sekitar tanda \(=\) , siswa secara alami bertanya, “Bagaimana cara menyelesaikan persamaan dalam R?”
Jawabannya sangat sederhana, tetapi untuk memahaminya, Anda perlu memiliki perspektif yang berbeda tentang apa artinya “menyelesaikan” dan dari mana konsep “persamaan” masuk.
Bentuk umum dari soal yang biasanya digunakan dalam perhitungan numerik di komputer adalah bahwa persamaan yang harus diselesaikan benar-benar merupakan fungsi yang harus dibalik. Artinya, untuk perhitungan numerik, masalahnya harus dinyatakan seperti ini:
Anda memiliki fungsi \(f(x)\) . Anda kebetulan mengetahui bentuk fungsi \(f\) dan nilai output \(y\) untuk beberapa nilai input yang tidak diketahui \(x\) . Masalah Anda adalah menemukan input \(x\) yang diberikan fungsi \(f\) dan nilai output \(y\) .
Salah satu cara untuk memecahkan soal tersebut adalah dengan mencari invers dari \(f\) . Ini sering ditulis \(f^{\ -1}\) (yang dimengerti oleh banyak siswa tetapi secara keliru diartikan \(1/f(x)\) ). Tetapi menemukan invers dari \(f\) bisa sangat sulit dan berlebihan. Sebagai gantinya, masalah dapat ditangani dengan mencari angka nol dari \(f\) .
Jika Anda dapat memplot fungsi \(f(x)\) untuk rentang \(x\) , Anda dapat dengan mudah menemukan angka nol. Temukan saja di mana \(x\) di mana fungsi melintasi sumbu \(y\) . Ini berfungsi untuk fungsi apa pun, bahkan yang sangat rumit sehingga tidak ada prosedur aljabar untuk menemukan solusi. Sebagai ilustrasi, pertimbangkan fungsi \(g()\)
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 melintasi sumbu \(y\) di suatu tempat antara \(x=1\) dan \(x=2\) . Anda bisa mendapatkan lebih banyak detail dengan memperbesar perkiraan solusi:
slice_plot(g(x) ~ x, domain(x=1:2)) %>%
gf_hline(yintercept = 0, color = "red")
Persimpangan kira-kira \(x \approx
1.6\) . Anda tentu saja dapat memperbesar lebih jauh untuk
mendapatkan perkiraan yang lebih baik.
4.1.2 Berbagai Solusi
Fungsi findZeros( )akan mencoba menemukan banyak solusi jika ada. Misalnya, persamaan \(\sin x = 0,35\) memiliki jumlah solusi 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 \(\sin 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 apa pun dalam formulir ini. Misalnya, Anda ingin menyelesaikan \(4 + e^{kt} = 2^{bt}\) untuk \(b\) , membiarkan parameter \(k\) menjadi \(k=0.00035\) . Anda mungkin, tentu saja, 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 \(b\) dan \(t\) diberikan. Tapi di soal awal, tidak ada pernyataan nilai \(t\) . Hal ini menunjukkan salah satu keuntungan dari teknik aljabar. Jika Anda menyelesaikan soal secara aljabar, Anda akan segera melihat bahwa \(t\) saling menghilangkan 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 bahwa \(t\) tidak penting.
findZeros( g(b, t=2) ~ b, xlim=range(-1000,1000) )
## b
## 1 1.1611
4.1.4 Latihan
4.1.4.1 Latihan 1
Selesaikan persamaan \(\sin(\cos(x^2) - x) - x = 0,5\) untuk \(x\) . {0,0000,0,1328 , 0,2098,0,3654,0,4217 }
MENJAWAB:
findZeros( sin(cos(x^2) - x) -x - 0.5 ~ x, xlim=range(-10,10))
## x
## 1 0.2098
4.1.4.2 Latihan 2
Temukan nol dari fungsi \(3 e^{- t/5} \sin(\frac{2\pi}{2} t)\) yang berada di antara \(t=1\) dan \(t=10\) .
Tidak ada nol dalam interval itu.}
Tidak ada angka nol sama sekali!}
\(2, 4, 6, 8\)}
\(1, 3, 5, 7, 9\)}
{ \(1, 2, 3, 4, 5, 6, 7, 8, 9\) }
MENJAWAB:
findZeros( 3*exp(-t/5)*sin(pi*t) ~ t, xlim=range(1,10))
## t
## 1 0
## 2 1
## 3 2
## 4 3
## 5 4
## 6 5
## 7 6
## 8 7
## 9 8
## 10 9
4.1.4.3 Latihan 3
Gunakan findZeros() untuk menemukan nol dari masing-masing polinomial ini:
Di mana angka nolnya? a. \(x=-3.33\) atau \(1\) b. \(x=3.33\) atau \(1\) c. \(x=-3.33\) atau \(-1\) d. \(x=3.33\) atau (-1) e. Tidak ada nol
jawab :
findZeros( 3*x^2 + 7*x - 10 ~ x, xlim=range(-100,100))
## x
## 1 -3.3334
## 2 1.0000
Dan itu saja terima kasih….