Diferensiasi adalah proses mencari slope atau kemiringan suatu garis pada titik yang diberikan. Secara umum proses diferensiasi dinyatakan melalui persamaan dapat kita lihat pada persamaan dibawah ini.
findiff <- function(f, x, h, method=NULL){
if(is.null(method)){
warning("please select a method")
}else{
if(method == "forward"){
return((f(x+h)-f(x))/h)
}else if(method=="backward"){
return((f(x)-f(x-h))/h)
}else if(method=="central"){
return((f(x+h)-f(x-h))/(2*h))
}else{
warning("you can use method: forward, bacward, or central")
}
}
}
Berikut merupakan pengoperasian Diferensiasi Numerik dengan metode beda tengah melalui persoalan.
1.Hitunglah turunan pertama f(x)= 3x8 - 5x6 + x4 - x + 11
Penyelesaian Secara Manual :
f(x) = 3x8 - 5x6 + x4 - x + 11
f’(x) = ( 8 * 3x8-1 ) - ( 6 * 5x6-1 ) + ( 4 x4-1 ) - ( 1 * x1-1 )
f’(x) = 24x7 - 30x5 + 4x3 - 1
Penyelesaian Menggunakan RStudio :
Hitunglah turunan pertama f(x)= 3x8 - 5x6 + x4 - x + 11 dengan x = 1, dan h = 0.05
findiff(function(x)
3*(x^8) + 5*(x^6) + x*4-x + 11, x=1, h=0.05,
method="central")
## [1] 57.67124
2.Hitunglan turunan pertama dari y = 3x4 + 2x2 + x
Penyelesaian Secara Manual :
y = 3x4 + 2x2 + x
y’ = (4 * 3x4-3 ) + ( 2 * 2x2-1 ) + ( 1 * x1-1 )
y’ = 12x3 + 4x + 1
Penyelesaian Menggunakan RStudio :
Hitunglan turunan pertama dari y = 3x4 + 2x2 + x dengan x = 5 dan h = 0.05
findiff(function(x)
3*(x^4) + 2*(x^2) + x , x=5, h=0.05,
method="central")
## [1] 1521.15
3.Hitunglan turunan pertama dari y = x3 + 3x2
Penyelesaian Secara Manual :
y = x3 + 3x2
y’ =( 3 * x3-1 ) + ( 2 *3x2-1 )
y’ = 3x2 + 6x
Penyelesaian Menggunakan RStudio :
Hitunglan turunan pertama dari y = x3 + 3x2 dengan x = 5 dan h = 0.05
findiff(function(x)
3*x + 3*(x^2) + x , x=5, h=0.05,
method="central")
## [1] 34