=====================================================
Nama Mahasiswa : Yoza Setya Febriyanti
NIM : 220605110062
Kelas : C
Mata Kuliah : Kalkulus
Dosen Pengampuh : Prof.Dr.Suhartono,M.Kom
Jurusan : Teknik Informatika
Universitas : UIN Maulana Malik Ibrahim Malang
=====================================================
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 y 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 sumbu-y. 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 melintasi sumbu (y ) di suatu tempat antara (x = 1 ) dan (x = 2 ) . Anda bisa mendapatkan detail lebih lanjut dengan memperbesar solusi perkiraan:
slice_plot(g(x) ~ x, domain(x=1:2)) %>%
gf_hline(yintercept = 0, color = "red")
Persilangan berada di kira-kira (x sekitar 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
Argumentis digunakan untuk menyatakan di mana mencari solusi. (Karena bug perangkat lunak, selalu disebut jika Anda menggunakan variabel selain dalam ekspresi Anda.)xlimxlimx
Anda hanya perlu memiliki gambaran kasar tentang di mana solusinya. Misalnya:
findZeros(g(x) ~ x, xlim = range(-1000, 1000))
## x
## 1 1.5576
Fungsi ini akan mencoba menemukan beberapa solusi jika ada. Misalnya, persamaan ( sin x = 0,35 ) memiliki jumlah solusi yang tak terbatas. Inilah beberapa di antaranya:findZeros( )
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
Seperti namanya, menemukan nol fungsi. Anda dapat mengatur masalah solusi apa pun dalam formulir ini. Misalnya, Anda ingin menyelesaikan (4 + e ^ {k t} = 2 ^ {b t}) untuk (b ), membiarkan parameter (k ) be (k = 0,00035 ) . Anda mungkin, tentu saja, ingat bagaimana melakukan masalah ini menggunakan logaritma. Tapi inilah pengaturan untuk:findZeros( )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. Tetapi dalam masalah aslinya, tidak ada pernyataan nilai (t ) . Ini menunjukkan salah satu keunggulan teknik aljabar. Jika Anda menyelesaikan masalah secara aljabar, Anda akan segera melihat bahwa (t ) membatalkan di kedua sisi persamaan. Fungsi numerik tidak mengetahui aturan aljabar, jadi tidak dapat mengetahuinya. Tentu saja, Anda dapat mencoba nilai lain dari (t ) untuk memastikan bahwa (t ) tidak masalah.findZeros( )
findZeros( g(b, t=2) ~ b, xlim=range(-1000,1000) )
## b
## 1 1.1611