library(mosaicCalc)
## Warning: package 'mosaicCalc' was built under R version 4.2.2
## Loading required package: mosaic
## Warning: package 'mosaic' was built under R version 4.2.2
## 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
## Warning: package 'mosaicCore' was built under R version 4.2.2
##
## 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
Dalam operator kalkulus dasar, diferensiasi, yang diimplementasikan
oleh fungsi R mosaicCalc/ D(). Operator
diferensiasi mengambil sebagai input fungsi dan variabel “sehubungan
dengan”. Outputnya adalah fungsi lain yang memiliki variabel “sehubungan
dengan” sebagai argumen, dan kemungkinan argumen lain juga.
f <- makeFun( A * x ^ 2 ~ x, A = 0.5)
f(1)
## [1] 0.5
f(2)
## [1] 2
f(3)
## [1] 4.5
df <- D(f(x) ~ x)
df(1)
## [1] 1
df(2)
## [1] 2
df(3)
## [1] 3
slice_plot(f(x) ~ x, domain(x = -1:1)) %>%
gf_labs(title = "Original function f(x)")
slice_plot(df(x) ~ x, domain(x =-1:1), color = "red") %>%
gf_labs(title = "New function df(x), the derivative of f(x)")
Gambar diatas menunjukkan grafik dari f(x) kurva smiley dan turunannya df(x).
Bayangkan kita mulai dengan df(x) dan ingin menemukan fungsi DF(x) dimana turunan dari DF(x) adalah f(x). Dengan kata lain, bayangkan menerapkan kebalikan dari D() operator ke fungsi df(x) menghasilkan f() (atau sesuatu seperti itu
Operator invers ini diimplementasikan dalam R/
mosaicCalcsebagai antiD()fungsi.
antiSeperti yang disarankan akhiran ,
antiD()“membatalkan” apa yang D() lakukan. Seperti ini:
DF <- antiD(df(x) ~ x)
DF(1,5)
## [1] 5
slice_plot(df(x) ~ x, domain(x=-1:1), color = "red") %>%
gf_labs(title = "Original function df(x)")
slice_plot(DF(1,5) ~ x, domain(x=-1:1)) %>%
gf_labs(title = "New function DF(x), the anti-derivative of df(x)")
Perhatikan bahwa fungsi DF diciptakan oleh anti-diferensiasi tidak f akan tetapi df dengan fungsi khusus dengan x. Hasilnya adalah fungsi yang seperti f. Kenapa dibalang seperti? karena nilai dari DF sama dengan nilai aslinya f.
Anda juga bisa menggunakan cara lain: anti-diferensiasi suatu fungsi dan kemudian mengambil turunannya untuk kembali ke fungsi aslinya.
h <- antiD( f(x) ~ x )
dh <- D(h(x) ~ x )
dh(1,5)
## [1] 5
dh(4,5)
## [1] 80
dh(6,5)
## [1] 180
Ada lebih dari satu cara untuk membatalkan turunan. Lihat lah fungsi-fungsi berikut, yang masing-masing berbeda:
f1 <- makeFun(sin(x ^ 2) ~ x)
f2 <- makeFun(sin(x ^ 2) + 3 ~ x)
f3 <- makeFun(sin(x ^ 2) - 100 ~ x)
f1(1)
## [1] 0.841471
f2(1)
## [1] 3.841471
f3(1)
## [1] -99.15853
Terlepas dari kenyataan bahwa fungsi f1(x),f2(x),dan f3(x) berbeda semuanya memiliki turunan yang sama
df1 = D(f1(x) ~ x)
df2 = D(f2(x) ~ x)
df3 = D(f3(x) ~ x)
df1(1)
## [1] 1.080605
df2(1)
## [1] 1.080605
df3(1)
## [1] 1.080605
Ingatlah bahwa turunan dari f itu sendiri adalah fungsi, dan fungsi
itu memiliki argumen yang sama dengan f. Jadi, karena
f(x)didefinisikan memiliki argumen bernama x,
fungsi yang dibuat oleh D(f(x) ~ x)juga memiliki argumen
bernama x(dan apa pun parameter lain yang terlibat):
f
## function (x, A = 0.5)
## A * x^2
## <bytecode: 0x000001690abd1860>
df
## function (x, A = 0.5)
## 2 * A * x
## <bytecode: 0x00000169067e2968>
Operasi anti-derivatif sedikit berbeda dalam hal ini. Saat Anda
menggunakan antiD(), nama variabel fungsi diganti dengan
dua argumen: nama sebenarnya (dalam contoh ini,xx) dan
konstanta C:
antiD(f(x) ~ x)
## function (x, A, C = 0)
## (x^3 * A)/3 + C
antiD(df(x) ~ x)
## function (x, A, C = 0)
## A * x^2 + C
Nilai Cset, secara implisit, ujung bawah rentang di mana
akumulasi akan terjadi.