Resume Materi Perkuliahan Minggu 10 Komputasi Statistik

Fikri Dwi Alpian - 120450022 - RB

Turunan dan Integral

Diferensial

  • R memiliki fungsi-fungsi untuk mendapatkan turunan dari suatu fungsi.
  • Fungsi yang digunakan dapat berupa satu peubah ataupun dua peubah.
  • Ada dua notasi yang dapat digunakan: D(expr, symbol) atau deriv(~fungsi, simbol).
  • Pertama, persamaan disajikan dalam bentuk ekspresi.
f = expression(4*x^2-9*x+1)
D(f, 'x')
## 4 * (2 * x) - 9
deriv(f, 'x')
## expression({
##     .value <- 4 * x^2 - 9 * x + 1
##     .grad <- array(0, c(length(.value), 1L), list(NULL, c("x")))
##     .grad[, "x"] <- 4 * (2 * x) - 9
##     attr(.value, "gradient") <- .grad
##     .value
## })

Latihan: Cobakan turunan dari fungsi berikut dalam R
- f(x) = sin(2x) + cos(5x)

f = expression(sin(2*x) + cos(5*x))
D(f, 'x')
## cos(2 * x) * 2 - sin(5 * x) * 5
  • f(x) = e^2x.sin(6x)
f = expression(exp(2*x) * sin(6*x))
D(f, 'x')
## exp(2 * x) * 2 * sin(6 * x) + exp(2 * x) * (cos(6 * x) * 6)
  • f(x) = ln(20x)
f = expression(log(20*x))
D(f, 'x')
## 20/(20 * x)
  • f(x) = 1 / x^2-2x+1
f = expression(1 / (x^2 - 2*x + 1))
D(f, 'x')
## -((2 * x - 2)/(x^2 - 2 * x + 1)^2)
  • Fungsi diferensial juga dapat digunakan untuk menurunkan fungsi dua atau lebih
  • Contoh: Turunkan terhadap x dari fungsi berikut:
  • f(x,y) = x^2 + yx^2
  • f(x,y) = cos(x) + cos(y)
  • f(x,y) = ln(xy)
  • Latihan: Turunkan terhadap y dari fungsi diatas
f = expression(x^2*y + y^2*x)
D(f, 'x')
## 2 * x * y + y^2
D(f, 'y')
## x^2 + 2 * y * x
f = expression(cos(x) + cos(y))
D(f, 'x')
## -sin(x)
D(f, 'y')
## -sin(y)
f = expression(log(x*y))
D(f, 'x')
## y/(x * y)
D(f, 'y')
## x/(x * y)

Turunan ke-n

  • Pada R, fungsi dasar d dapat dideklarasikan berulang-ulang untuk menyatakan bahwa suatu fungsi akan diturunkan berkali-kali
  • Untuk turunan ke-2 : D(D(f,‘x’),‘x’)
  • Untuk turunan ke-3 : D(D(D(f,‘x’),‘x’),‘x’)
  • Dan seterusnya Contoh:
f = expression(x^3-2*x^2+2*x-1)
D(D(f,'x'),'x')
## 3 * (2 * x) - 2 * 2

Latihan: Tentukan turunan ketiga dari fungsi berikut ni: - f(x) = ln(x)

f = expression(log(x))
D(D(D(f, 'x'), 'x'), 'x')
## 2 * x/(x^2)^2
  • g(x) = 2^x
g = expression(2^x)
D(D(D(g, 'x'), 'x'), 'x')
## 2^x * log(2) * log(2) * log(2)
  • Tetapi jika dikerjakan secara manual: tidak efektif
  • Terutama untuk n yang cukup besar, misalkan turunan ke-100
  • Gunakan perulangan for
f = expression(x^2)
for(i in (1:2)){
  f=D(f,'x')
}
f
## [1] 2
  • Turunan ke-10 dari f(x)=x^10
f = expression(x^10)
for(i in (1:10)){
  f = D(f,'x')
}
f
## 10 * (9 * (8 * (7 * (6 * (5 * (4 * (3 * 2)))))))
  • Latihan: Berikan turunan ke-100 dari fungsi f(x)=sin 2x
f = expression(sin(2*x))
for (i in (1:99)){
  f = D(f, 'x')
}
f
## -(cos(2 * x) * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 
##     2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 
##     2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 
##     2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 
##     2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 
##     2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 
##     2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2)

Turunan berbeda variabel

  • d^2f/dx dy : D(D(f,‘y’),‘x’)
  • d^2f/dy dx : D(D(f,‘x’),‘y’) Silahkan coba turunan d^2f/dx dy dan d^2f/dy dx dari fungsi f(x,y)=x^2 - xy + y^2. Apakah hasilnya sama?
f = expression(x^2-x*y+y^2)
D(D(f,'y'),'x')
## -1
D(D(f,'x'),'y')
## -1

Integral

  • Selain turunan pada fungsi sederhana, R juga memiliki fungsi untuk mendapatkan luas wilayah suatu fungsi dengan integral
  • integrate(function, lower, upper)
  • Berbeda dengan menentukan turunan, untuk integral, mendifinisikan fungsi menggunakan function(x)
  • f = function(x) x^2
f = function(x) x^2
integrate(f,0,1)
## 0.3333333 with absolute error < 3.7e-15
f = function(x) x^3-2*x+1
integrate(f,0,1)
## 0.25 with absolute error < 3.3e-15
  • Jika ingin menghitung integral tak hingga, gunakan Inf
  • Latihan: Hitung integral tentu dari:
f = function(x) sin(x)
integrate(f, 0, 8*pi)
## -3.339137e-15 with absolute error < 1.8e-13
f = function(x) 1/(x^2)
integrate(f, 1, Inf)
## 1 with absolute error < 1.1e-14
  • Contoh: Kita akan membuat fingsi ekuivalen dengan fungsi beta
b = function(p,q){
  f = function(x) x^(p-1)*(1-x)^(q-1)
  return (integrate(f,0,Inf))
}
  • Contoh: Kita akan membuat fungsi ekuivalen dengan fungsi gamma
g = function(a){
  f = function(x) x^(a-1) * exp(-x)
  return(integrate(f,0,Inf))
}
g(2)
## 1 with absolute error < 6.4e-06
  • Contoh: Kita akan membuat fungsi yang ekuivalen dengan pnorm(q,mean,sd)
  • Pnorm adalah fungsi distribusi kumulatif
  • Diperoleh dari fungsi kepadatan dari distribusi normal X~N(u,o^2)
  • Dibuat ke dalam nama fungsi cdf
cdf = function(p,mean,sd){
  f = function(x) (exp(-(x-mean)^2/(2*sd^2)))/(sqrt(2*pi*sd))
  return(integrate(f,-Inf,p))
}
cdf(0,0,1)
## 0.5 with absolute error < 4.7e-05
pnorm(0)
## [1] 0.5

Terima Kasih