Dosen : Prof. Dr. Suhartono, M.Kom
Lembaga : Universitas Islam Negeri Maulana Malik Ibrahim Malang
Jurusan : Teknik Informatika
Fakultas : Sains dan Teknologi
Turunan/ derivatif dari fungsi mengukur tingkat di mana nilai fungsi berubah saat inputnya berubah. Perubahan nilai fungsi tergantung pada arah perubahan nilai variabel independen.
Diferensiasi adalah proses menemukan turunan dari fungsi yang dapat dibedakan. Perbedaan keduanya adalah derivatif mengacu pada tingkat perubahan fungsi sedangkan diferensiasi adalah proses menemukan turunan dari suatu fungsi.
Dalam pemrograman R, turunan dari suatu fungsi dapat digunakan menghitung dan fungsi. Ini digunakan untuk menghitung turunan dari ekspresi sederhana. deriv() D()
Syntax 1. deriv(expr,name) 2. D(expr,name)
Output yang dihasilkan adalah fungsi. Fungsi akan mencantumkan sebagai argumen semua variabel yang terkandung dalam ekpresi input. Lalu, mengevaluasi fungsi output untuk nilai numerik tertentu untuk menemukan nilai fungsi turunan.
Kita bisa menggunakan fungsi D() untuk menghitung diferensiasi sebuah fungsi.
Misalnya:
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
## The legacy packages maptools, rgdal, and rgeos, underpinning the sp package,
## which was just loaded, will retire in October 2023.
## Please refer to R-spatial evolution reports for details, especially
## https://r-spatial.org/r/2023/05/15/evolution4.html.
## It may be desirable to make the sf package available;
## package maintainers should consider adding sf to Suggests:.
## The sp package is now running under evolution status 2
## (status 2 uses the sf package in place of rgdal)
##
## Attaching package: 'mosaicCalc'
## The following object is masked from 'package:stats':
##
## D
g <- D(x^4 ~ x)
g(2)
## [1] 32
g(5.5)
## [1] 665.5
Di bawah ini merupakan cara membuat fungsi, yaitu :
library(mosaicCalc)
my_function <- function(x) {
return (5 * x^3)
}
my_function(2)
## [1] 40
Mengaplikasikan fungsi (my_function) dalam diferensiasi pemrograman R
g<-D(my_function(x)~x)
g(20)
## [1] 6000
Pengaplikasian diferensial dalam pemrograman R dengan fungsi berisi variabel dan trigonometri serta definisi variabel.
s2 <- D(A * sin(2 * pi * t / P) + C ~ t)
s2( t=3, A=2, P=10, C=4 )
## [1] -0.3883222
Terakhir adalah membuat grafik dengan slice_plot dalam aplikasi diferensial pemrograman bahasa R yang fungsi terdiri dari trigonometri dan variabel.
slice_plot(s2(t, A=5, P=20, C=100) ~ t,
domain(t=range(0,20)))
Contoh derivative/ turunan lainnya adalah :
# Ekspresi
f = expression(x^2 + 5*x + 1)
# Turunan
cat("Menggunakan fungsi deriv() :\n")
## Menggunakan fungsi deriv() :
print(deriv(f, "x"))
## expression({
## .value <- x^2 + 5 * x + 1
## .grad <- array(0, c(length(.value), 1L), list(NULL, c("x")))
## .grad[, "x"] <- 2 * x + 5
## attr(.value, "gradient") <- .grad
## .value
## })
cat("\nMenggunakan fungsi D() :\n")
##
## Menggunakan fungsi D() :
print(D(f, 'x'))
## 2 * x + 5
Pertama, menerapkan fungsi deriv() ke rumus seperti ini :
test_deriv <- deriv(~ x^3 + 2 * x, "x")
Selanjutnya, menentukan nilai x yang ingin dievaluasi (yaitu 5) :
x <- 5
Menerapkan fungsi eval untuk mengevaluasi ekspresi :
eval(test_deriv)
## [1] 135
## attr(,"gradient")
## x
## [1,] 77
Fungsi eval telah mengembalikan hasil 135 yaitu (3^3 + 2*3 + 5 = 135)
Referensi
https://rpubs.com/fikrifirdiansyah00/tugas8-Kalkulus-19650043