4.1 Fungsi vs persamaan Sebagian besar isi aljabar sekolah menengah melibatkan “pemecahan.” Dalam situasi tipikal, Anda memiliki persamaan, katakanlah 3 x + 2 = kamu
dan Anda diminta untuk “menyelesaikan” persamaan untuk x . Ini melibatkan penataan ulang simbol-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” (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.
Siswa sekolah menengah juga diajarkan berbagai teknik ad hoc untuk memecahkan dalam situasi tertentu. Contoh persamaan kuadrat sebuah x 2 + b x + c = 0 dapat diselesaikan dengan penerapan prosedur “pemfaktoran”, atau “menyelesaikan kuadrat”, atau menggunakan rumus kuadrat: x = − b ± √ b 2 − 4 sebuah c 2 sebuah
4.1.1 Dari Persamaan ke Nol Fungsi Dengan semua penekanan ini pada prosedur seperti memfaktorkan dan memindahkan simbol bolak-balik di sekitar dan = tanda, siswa secara alami bertanya, “Bagaimana cara menyelesaikan persamaan di R?”
Jawabannya sangat sederhana, tetapi untuk memahaminya, Anda perlu memiliki perspektif yang berbeda tentang apa artinya “menyelesaikan” dan di mana konsep “persamaan” masuk.
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 tahu bentuk fungsinya f dan nilai keluarannya kamu untuk beberapa nilai input yang tidak diketahui x . Masalah Anda adalah menemukan input x diberikan fungsi f dan nilai keluaran kamu .
Salah satu cara untuk menyelesaikan masalah tersebut adalah dengan mencari invers dari f . Ini sering ditulis f
− 1 (yang oleh banyak siswa dapat dimengerti tetapi secara keliru diartikan 1 / f ( x ) ). Tetapi menemukan kebalikan dari f bisa sangat sulit dan berlebihan. Sebaliknya, masalahnya dapat ditangani dengan menemukan nol dari f .
Jika Anda dapat merencanakan fungsinya f ( x ) untuk berbagai x , Anda dapat dengan mudah menemukan nol. Temukan saja di mana x di mana fungsi melintasi kamu -sumbu. Ini berfungsi untuk fungsi apa pun, bahkan yang sangat rumit sehingga tidak ada prosedur aljabar untuk menemukan solusi. Sebagai ilustrasi, perhatikan 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 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")
Persimpangannya kira-kira x ≈ 1.6 . 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
Argumen xlimdigunakan untuk menyatakan di mana mencari solusi. (Karena bug perangkat lunak, itu selalu dipanggil xlimbahkan jika Anda menggunakan variabel selain xdalam ekspresi Anda.)
Anda hanya perlu memiliki gambaran kasar tentang di mana solusinya. Sebagai 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 Beberapa Solusi Fungsi findZeros( )akan mencoba menemukan beberapa solusi jika ada. Misalnya persamaan dosa x = 0.35 memiliki jumlah solusi yang tak 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
Perhatikan bahwa persamaan dosa x = 0.35 diubah menjadi fungsi sin(3) - 0.35.
4.1.3 Menyiapkan Masalah 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
Perhatikan bahwa nilai numerik untuk keduanya b dan t diberikan. Tapi dalam masalah aslinya, tidak ada pernyataan tentang nilai t . Ini menunjukkan salah satu keuntungan dari teknik aljabar. Jika Anda memecahkan masalah secara aljabar, Anda akan segera melihat bahwa t membatalkan di kedua sisi persamaan. 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
4.1.4 Latihan 4.1.4.1 Latihan 1 Selesaikan persamaan dosa ( karena ( 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 tersebut 3 e − t / 5 dosa ( 2 π 2 t ) yang berada di antara t = 1 dan t = 10 .
Tidak ada nol dalam interval itu.} Tidak ada 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:
3 x 2 + 7 x − 10
Dimana angka nolnya? sebuah. 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
MENJAWAB:
findZeros( 3*x^2 + 7*x - 10 ~ x, xlim=range(-100,100))
## x
## 1 -3.3334
## 2 1.0000
4 x 2 − 2 x + 20
Dimana angka nolnya? sebuah. 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
2 x 3 − 4 x 2 − 3 x − 10
Yang mana dari ini yang nol? {-1.0627,0,1.5432,1.8011,2.1223, 3.0363 ,tidak ada}
MENJAWAB:
findZeros(2*x^3 - 4*x^2 - 3*x - 10 ~ x, xlim=c(-10,10))
## x
## 1 3.0363
7 x 4 − 2 x 3 − 4 x 2 − 3 x − 10
Yang mana dari ini yang nol? { -1.0627 ,0,1.5432,1.8011,2.1223,3.0363,tidak ada}
MENJAWAB:
findZeros( 7*x^4 -2*x^3 - 4*x^2 - 3*x - 10 ~ x, xlim=c(-10,10))
## x
## 1 -1.0628
## 2 1.4123
6 x 5 − 7 x 4 − 2 x 3 − 4 x 2 − 3 x − 10
Yang mana dari ini yang nol? {-1.0627,0,1.5432, 1.8012 ,2.1223,3.0363,none}
MENJAWAB:
findZeros( 6*x^5-7*x^4 -2*x^3 - 4*x^2 - 3*x - 10 ~ x, xlim=c(-10,10))
## x
## 1 1.8012