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

Bab 8 Integral dan integrasi

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).

8.1 Antiturunan

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

8.2 Satu variabel menjadi dua argumen

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

8.3 The integral

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.