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

Seperti semua perhitungan, operator untuk mengambil turunan, D()mengambil masukan dan menghasilkan keluaran. Bahkan, dibandingkan dengan banyak operator, D()cukup sederhana: hanya membutuhkan satu masukan.

Input: ekspresi menggunakan ~notasi. Contoh: x^2~xatau sin(x^2)~xatauy*cos(x)~y

Di sebelah kiri ~adalah ekspresi matematika, ditulis dalam notasi R yang benar, yang akan dievaluasi menjadi angka ketika nilai numerik tersedia untuk semua besaran yang dirujuk. Di sebelah kanan ~adalah variabel yang akan diambil turunannya. Ini tidak perlu disebut xatau y; setiap nama variabel yang valid diperbolehkan.

Output yang dihasilkan oleh D()adalah fungsi. Fungsi akan mencantumkan sebagai argumen semua variabel yang terdapat dalam ekspresi masukan. Anda kemudian dapat mengevaluasi fungsi keluaran untuk nilai numerik tertentu dari argumen untuk menemukan nilai fungsi turunan.

contoh:

g <- D(x^2 ~ x)
g(1)
## [1] 2
g(3.5)
## [1] 7

7.1 Rumus dan Selisih Numerik

g
## function (x) 
## 2 * x
## <bytecode: 0x0000021e96636c38>

Untuk ekspresi input lainnya, D()akan mengembalikan fungsi yang didasarkan pada perkiraan numerik ke turunan — Anda tidak bisa lihat” turunannya, tetapi itu ada di dalam metode pendekatan numerik:

h <- D(sin(abs(x - 3) ) ~ x)
h
## function (x) 
## {
##     .e1 <- x - 3
##     cos(abs(.e1)) * sign(.e1)
## }

7.2 Parameter Simbolik

Anda dapat menyertakan parameter simbolik dalam ekspresi yang dimasukkan ke D(), misalnya:

s2 <- D(A  * sin(2 * pi * t / P) + C ~ t)

Parameter, dalam hal ini A, P, dan C, akan diubah menjadi argumen untuk s2()fungsi tersebut. Catatan yang pidipahami sebagai nomor π, bukan parameter.

s2
## function (t, A, C, P) 
## (2 * A * pi * cos((2 * pi * t)/P))/P

Fungsi s2()yang dibuat akan berfungsi seperti fungsi matematika lainnya, tetapi Anda perlu menentukan nilai numerik untuk parameter simbolik saat mengevaluasi fungsi:

s2
## function (t, A, C, P) 
## (2 * A * pi * cos((2 * pi * t)/P))/P
s2( t=3, A=2, P=10, C=4 )
## [1] -0.3883222
slice_plot(s2(t, A=2, P=10, C=4) ~ t, 
           domain(t=range(0,20)))

7.3 Derivatif Parsial

Turunan yang dihitung dengan D( )adalah turunan parsial . Artinya, mereka adalah turunan di mana variabel di sisi kanan ~diubah dan semua variabel lainnya tetap konstan.

7.3.1 Turunan Kedua

Turunan kedua hanyalah turunan dari turunan. Anda dapat menggunakan D( )operator dua kali untuk mencari turunan kedua, seperti ini.

df <- D(sin(x) ~ x)
ddf <- D(df(x) ~ x)

Untuk menghemat pengetikan, terutama bila ada lebih dari satu variabel yang terlibat dalam ekspresi, Anda dapat meletakkan banyak variabel di sebelah kanan ~tanda, seperti pada turunan kedua ini sehubungan dengan x :

another.ddf <- D(sin(x) ~ x & x)

Bentuk untuk turunan orde kedua dan lebih tinggi ini juga menghasilkan perhitungan yang lebih akurat.

sumber : https://dtkaplan.github.io/RforCalculus/derivatives-and-differentiation.html