library(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
Bab 1 Representasi Fungsi Matematika
Kalkulus adalah fungsi matematika dan operasi matematika. Konsep “fungsi matematika” adalah sebuah ide. Jika kita akan menggunakan bahasa komputer untuk bekerja dengan fungsi matematika, kita perlu menerjemahkannya ke dalam beberapa entitas dalam bahasa komputer. Artinya, kita memerlukan konstruksi bahasa untuk merepresentasikan fungsi dan kuantitas yang diambil fungsi sebagai input dan dihasilkan sebagai output.
1.1 Angka, Besaran, dan Nama Input yang diambil oleh fungsi dan output yang dihasilkannya belum tentu berupa angka. Seringkali, mereka adalah kuantitas.
Kita tidak bisa mengabaikan dimensi dan satuan. Sayangnya, bahasa komputer utama seperti R dan Python dan JavaScript tidak menyediakan cara sistematis untuk menangani dimensi dan unit secara otomatis. Di R, misalnya, kita dapat dengan mudah menulis
x <- 7
1.2 Fungsi bahasa R
Kebanyakan bahasa komputer, memiliki konstruksi pemrograman untuk mewakili operasi yang mengambil satu atau lebih input dan menghasilkan output. Di R, ini disebut “fungsi.” Di R, semua yang Anda lakukan melibatkan fungsi, baik secara eksplisit maupun implisit.
Dalam R, fungsi dapat dibuat dengan kata kunci function. Misalnya, untuk membuat fungsi yang menerjemahkan pendapatan tahunan menjadi pendapatan harian, kita dapat menulis:
as_daily_income <- function(x) {
x / 365
}
atau juga bisa
as_daily_income <- function(ghskelw) {
ghskelw / 365
}
Seringkali, fungsi memiliki lebih dari satu argumen. Nama-nama argumen dicantumkan di antara tanda kurung setelah fungsi kata kunci, seperti ini:
as_daily_income <- function(yearly_income, duration) {
yearly_income / duration
}
1.3 Literasi Penggunaan Argumen
Ingatlah bahwa nama-nama yang dipilih oleh pemrogram suatu fungsi bersifat arbitrer. Anda akan menggunakan fungsi dengan cara yang persis sama meskipun namanya berbeda. Demikian pula, saat menggunakan fungsi, Anda dapat memilih sendiri ekspresi apa yang akan menjadi nilai argumen. Dalam menulis perhitungan, ada baiknya untuk memperjelas dan menjelaskan arti dari setiap besaran yang digunakan dalam perhitungan. Jadi, alih-alih 100 * exp(-2.5), Anda mungkin ingin menulis:
dose <- 100 # mg
duration <- 10 # days
time_constant <- 4 # days
dose * exp(- duration / time_constant)
## [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)
}
Kemudian, melakukan perhitungan untuk situasi tertentu yang dijelaskan di atas adalah masalah penggunaan fungsi:
drug_remaining(dose = 100, duration = 10, time_constant = 4)
## [1] 8.2085
1.4 Sehubungan dengan … Kami telah menggunakan fungsi R untuk mewakili perhitungan jumlah dari input seperti dosis dan konstanta waktu obat.
Tetapi fungsi R memainkan peran yang jauh lebih besar dari itu. Fungsi digunakan untuk hampir semua hal, mulai dari membaca file data hingga menggambar grafik hingga mengetahui jenis komputer apa yang digunakan. Yang menarik bagi kami di sini adalah penggunaan fungsi untuk mewakili dan mengimplementasikan operasi kalkulus. Operasi ini memiliki nama yang mungkin atau mungkin belum Anda kenal: diferensiasi, integrasi, dll. Dalam buku ini, kita akan menggunakan operasi yang disediakan oleh paket mosaic dan mosaicCalc untuk R. Operasi dari paket ini memiliki notasi yang sangat spesifik untuk diekspresikan. Notasi tersebut menggunakan karakter tilde, ~. Berikut cara menggambar grafik yang kita inginkan, menggunakan operasi slice_plot() paket:
library(mosaicCalc)
## 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
library(mosaicCalc)
drug_remaining <- function(dose, duration, time_constant) {
dose * exp(- duration / time_constant)
}
library(mosaicCalc)
t = 0:20
plotFun(drug_remaining(dose = 100, time_constant = 4, duration = t) ~ t, t.lim = range(0:20))
DAFTAR PUSTAKA