BAB 1 Mewakili Fungsi Matematika

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 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

Dalam buku ini kita akan menggunakan fungsi dan kalkulus untuk bekerja dengan kuantitas dunia nyata. 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

Kurangnya notasi komputer yang tepat untuk mewakili kuantitas berdimensi dengan satuannya, kita memerlukan beberapa cara lain untuk melacak berbagai hal.

1.2 Fungsi bahasa R

Mari kita lihat versi R dari fungsi matematika, eksponensial. Fungsi diberi nama expdan kita dapat melihat pemrograman yang dikandungnya

exp
## function (x)  .Primitive("exp")

1.3 Literasi penggunaan 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

Dengan menggunakan nama deskriptif yang baik dan secara eksplisit melabeli argumen yang mana, Anda menghasilkan dokumentasi yang jelas dan terpelajar tentang apa yang ingin Anda lakukan dan bagaimana orang lain, termasuk “Anda di masa depan”, harus mengubah hal-hal untuk mewakili situasi baru.

1.4 Sehubungan dengan … Kami telah menggunakan fungsi R untuk mewakili perhitungan jumlah dari input seperti dosis dan konstanta waktu obat.

Kami telah menggunakan fungsi R untuk mewakili perhitungan jumlah dari input seperti dosis dan konstanta waktu obat.

Dalam buku ini, kita akan menggunakan operasi yang disediakan oleh paket mosaicand mosaicCalcuntuk R. Operasi dari paket ini memiliki notasi yang sangat spesifik untuk diekspresikan sehubungan dengan . Notasi tersebut menggunakan karakter tilde, ~. Berikut cara menggambar grafik yang kita inginkan, menggunakan slice_plot()operasi paket:

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
library(mosaicCalc)
slice_plot(
  drug_remaining(dose = 100, time_constant = 4, duration = t) ~ t, 
  domain(t = 0:20))