Bab 1 Mewakili fungsi matematika
Seperti judulnya, dalambuku ini kita akan menggunakan bahasa komputer R untuk mengimplemantasikan operasi kalkulus bersama dengan operasi terkait seperti grafik dan penyelesaian. Topik kalkulus pada dasarnya adalah tentang fungsi matematika dan operasi yang dilakukan pada mereka. Konsep “fungsi matematika” adalah sebuah ide. Jika kita akan menggunakan bahasa komputer untuk bekerja dengan fungsi matematika, kita perlu menerjemahkan ke dalam beberapa entitas dalam bahasa komputer. Artinya, kita memerlukan kontruksi bahasa untuk merepresentasikan fungsi dan kualitas yang diambil fungsi sebagai input dan hasil sebagai output.Untuk pilihan representasi cukup jelas, untuk jumlah gunakan angka, untuk fungsi gunakan bahasa R. Tetapi seperti yang anda liat, situasi ini sedikit terlalu rumit dari itu. Tetapi kerumitan kecil itu perlu ditangani sejak awal.
1.1 Angka, besaran, dan nama
Kompleksitas yang disebutkan diibagian sebelumnya berasal dari penggunaan dan situasi dunia nyata di mana kita ingin dapat menerapkan ide matematis fungsi. Input yang diambil oleh fungsi dan output yang dihasilkannya belum tentu berupa angka. Seringkali, mereka adalah kuantitas. Bahasa komputer utama seperti R, Python dan JavaScript tidak menyediakan cara sistematis untuk menangani dimensi dan unit secara otomatis.
1.2 Fungsi bahasa R
R, adalah bahasa komputer, yang memiliki konstruksi pemograman untuk mewakili operasi yang mengambil satu atau lebih input yang menghasilkan output. Di R, ini disebut “fungsi”. Di R, semua yang anda lakukan melibatkan fungsi, baik secara eksplisit maupun implisit. Dalam R, fungsi sdapat dibuat dengan kata kunci function. Misalnya kita buat pendapatan harian dapat ditulis
as_daily_income <- function(yearly_income) {
yearly_income / 365
}
Kita dapat menamai fungsi “as_daily_income” adalah arbitrer. Setelah kata function ada tanda kurung , didalam tanda kurung adalah nama yang diberikan ke input fungsi. Ada baiknya untuk dibedakan antara nilai input dan peran yang akan di input dalam fungsi. Dapat digunakan kata argument untuk berbicara tentang peran yang dimainkan input. Hal yang menarik dari bahasa komputer R adalah nama yang diberikan untuk argumen tidak masalah sama sekali asalkan konsisten di badan fungsi.
as_daily_income <- function(x) {
x / 365
}
bisa juga
as_daily_income <- function(ghskelw) {
ghskelw / 365
}
selain itu nama- nama argumen bisa dicantumkan di antara tanda kurung setelah kata function, seperti ini
as_daily_income <- function(yearly_income, duration) {
yearly_income / duration
}
1.3 Literasi penggunaan argumen
Nama-nama yang dipilih oleh pemograman suatu funsi bersifat arbitrer. Sehingga dapat menggunakan fungsi dengan cara yang persis sama meskipun namanya berbeda. adapun untuk memperjelas arti setiap yang digunakan dalam perhitungan. contoh:
dose <- 100 # mg
duration <- 10 # days
time_constant <- 4 # days
dose * exp(- duration / time_constant)
## [1] 8.2085
## [1] 8.2085
Lebih baik lagi, anda bisa mendefinisikan fungsi yang melakukan perhitungan untuk anda:
drug_remaining <- function(dose, duration, time_constant) {
dose * exp(- duration / time_constant)
}
lalu kita masuk ke proses perhitungan dengan fungsi :
drug_remaining(dose = 100, duration = 10, time_constant = 4)
## [1] 8.2085
## [1] 8.2085
1.4 Sehubungan dengan …
Input diibaratkan seperti dosisnya, dan konstanta diibaratkan seperti obatnya. Didalam R, fungsi digunakan hampir didalam semua hal. Mulai dari membaca file data, menggambar grafik, hingga mengetahui jenis komputer yang digunakan.
Packages (paket) yang digunakan untuk operasi didalam buku ini menggunakan packages mosaic dan mosaicCalc untuk R. Notasi tilde “~” digunakan untuk mengekspresikan “sehubungan dengan.” Berikut cara menggambar grafik yang kita inginkan menggunakan slice_plot() dengan operasi packages:
library(mosaicCalc)
## Loading required package: mosaicCore
## Loading required package: Deriv
## Loading required package: Ryacas
##
## Attaching package: 'Ryacas'
## The following object is masked from 'package:stats':
##
## integrate
## The following objects are masked from 'package:base':
##
## %*%, diag, diag<-, lower.tri, upper.tri
## Registered S3 method overwritten by 'mosaic':
## method from
## fortify.SpatialPolygonsDataFrame ggplot2
##
## Attaching package: 'mosaicCalc'
## The following object is masked from 'package:stats':
##
## D
## Loading required package: mosaicCore
## Loading required package: Deriv
## Loading required package: Ryacas
##
## Attaching package: 'Ryacas'
## The following object is masked from 'package:stats':
##
## integrate
## The following objects are masked from 'package:base':
##
## %*%, diag, diag<-, lower.tri, upper.tri
## Registered S3 method overwritten by 'mosaic':
## method from
## fortify.SpatialPolygonsDataFrame ggplot2
##
## Attaching package: 'mosaicCalc'
## The following object is masked from 'package:stats':
##
##
slice_plot(
drug_remaining(dose = 100, time_constant = 4, duration = t) ~ t,
domain(t = 0:20))