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.

library(mosaicCalc)
## Loading required package: mosaicCore
## Loading required package: Deriv
## Loading required package: Ryacas
## 
## Attaching package: 'Ryacas'
## The following object is masked from 'package:stats':
## 
##     integrate
## The following objects are masked from 'package:base':
## 
##     %*%, diag, diag<-, lower.tri, upper.tri
## Registered S3 method overwritten by 'mosaic':
##   method                           from   
##   fortify.SpatialPolygonsDataFrame ggplot2
## 
## Attaching package: 'mosaicCalc'
## The following object is masked from 'package:stats':
## 
##     D
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-kurva smiley-dan turunannya.f(x)df(x).

ANTITURUNAN. kita bayangkan sedang menerapkan kebalikan dari ke fungsi menghasilkan / sesuatu yang serupa. Operator invers ini diimplementasikan dalam R/ mosaicCalcsebagai antiD()fungsi. antiSeperti yang disarankan akhiran , antiD()“membatalkan” apa yang dilakukan . Seperti ini: D()

DF <- antiD(df(x) ~ x)
DF(1)
## [1] 0.5
DF(2)
## [1] 2
DF(3)
## [1] 4.5
slice_plot(df(x) ~ x, domain(x=-1:1), color = "red") %>%
  gf_labs(title = "Original function df(x)")

slice_plot(DF(x) ~ x, domain(x=-1:1)) %>%
  gf_labs(title = "New function DF(x), the anti-derivative of df(x)")

Fungsi dan antiturunannya. Perhatikan bahwa fungsi dibuat dengan anti-diferensiasi bukan tetapi sehubungan dengan . Hasilnya adalah fungsi yang “seperti” . anda dapat melihat bahwa nilai sama dengan nilai aslinya .DFfdfxDFf 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)
## [1] 0.5
dh(2)
## [1] 2
dh(3)
## [1] 4.5

Seperti yang Anda lihat, antiD( )batalkan D( ), dan D( )batalkan antiD( ). Semudah itu. Tapi ada satu tangkapan: untuk fungsi apa pun ada banyak anti-turunan dari . f(x)f(x)

Satu variabel menjadi dua argumen Ini sering disebut “mengintegrasikan” suatu fungsi. “Integrasi” adalah istilah yang lebih pendek dan lebih bagus daripada “anti-diferensiasi”, dan merupakan istilah yang lebih umum digunakan. Fungsi yang dihasilkan oleh proses umumnya disebut “integral”. Istilah “integral tak tentu” dan “integral tak tentu” sering digunakan untuk membedakan antara fungsi yang dihasilkan oleh anti-diferensiasi dan nilai fungsi tersebut ketika dievaluasi pada masukan tertentu. Ini akan membingungkan pada awalnya, tetapi Anda akan segera merasakan apa yang terjadi. Seperti yang Anda ketahui, turunan memberi tahu Anda properti lokal dari suatu fungsi: bagaimana fungsi berubah ketika salah satu input diubah dengan jumlah kecil. Turunannya adalah semacam kemiringan. Anti-derivatif membatalkan turunan, tetapi apa artinya “membatalkan” properti lokal? Jawabannya adalah anti-turunan (atau, dengan kata lain, integral) memberi tahu Anda tentang beberapa properti global atau terdistribusi dari suatu fungsi: bukan hanya nilai pada suatu titik, tetapi nilai yang terakumulasi pada seluruh rentang titik. Sifat antiturunan global atau terdistribusi inilah yang membuat antiturunan sedikit lebih rumit daripada turunan, tetapi tidak lebih dari itu. Inti masalahnya adalah ada lebih dari satu cara untuk “membatalkan” turunan. Pertimbangkan 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(2)
## [1] -100.7568

Terlepas dari kenyataan bahwa fungsi , , dan , 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

Integral Derivatif memberi tahu Anda bagaimana suatu fungsi berubah secara lokal. Anti-derivatif mengumpulkan nilai-nilai lokal tersebut untuk memberi Anda nilai global; itu mempertimbangkan tidak hanya properti lokal dari fungsi pada satu nilai input tertentu tetapi juga nilai pada rentang input.

Ingatlah bahwa turunan dari itu sendiri adalah sebuah fungsi, dan fungsi tersebut memiliki argumen yang sama dengan . Jadi, karena didefinisikan memiliki argumen bernama , fungsi yang dibuat oleh juga memiliki argumen bernama (dan apa pun parameter lain yang terlibat).

f
## function (x, A = 0.5) 
## A * x^2
## <bytecode: 0x000001ff4de60630>
df
## function (x, A = 0.5) 
## 2 * (A * x)
## <bytecode: 0x000001ff4e837600>

Operasi anti-derivatif sedikit berbeda dalam hal ini. Saat Anda menggunakan antiD(), nama variabel fungsi diganti dengan dua argumen: nama sebenarnya (dalam contoh ini, ) dan konstanta :xC

antiD(f(x) ~ x)
## function (x, C = 0) 
## {
##     numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
##         formals(), from, ciName = intC, .tol)
## }
## <environment: 0x000001ff539c8fb8>
antiD(df(x) ~ x)
## function (x, C = 0) 
## {
##     numerical_integration(.newf, .wrt, as.list(match.call())[-1], 
##         formals(), from, ciName = intC, .tol)
## }
## <environment: 0x000001ff53aeeaf8>

Saat Anda mengevaluasi fungsi pada nilai numerik tertentu untuk argumen tersebut, Anda berakhir dengan “integral pasti”, sebuah angka:

#This doesn’t exist yet. FIX FIX FIX fun(x = 2) - fun(x = -1)

Untuk saat ini, ini adalah hal-hal penting yang perlu diingat:

1.Fungsi antiD( )akan menghitung antiturunan. 2.Seperti halnya turunan, antiturunan selalu diambil sehubungan dengan variabel, misalnya antiD( x^2 ~ x ). Variabel itu, di sini x, disebut (cukup masuk akal) “variabel integrasi”. Anda juga bisa mengatakan, “integral terhadap .” x 3. Integral pasti adalah fungsi dari variabel integrasi … semacam. Untuk lebih tepatnya, variabel integrasi muncul sebagai argumen dalam dua samaran karena integral pasti melibatkan dua evaluasi: satu di dan satu di . Batasan yang ditentukan oleh dan sering disebut “wilayah integrasi”.x = to x= fromfromto

LATIHAN Fungsi yang diintegrasikan dapat memiliki variabel atau parameter tambahan di luar variabel integrasi. Untuk mengevaluasi integral tertentu, Anda perlu menentukan nilai untuk variabel tambahan tersebut.

Misalnya, fungsi yang sangat penting dalam statistik dan fisika adalah Gaussian, yang memiliki grafik berbentuk lonceng:

gaussian <- 
  makeFun((1/sqrt(2*pi*sigma^2)) * 
            exp( -(x-mean)^2/(2*sigma^2)) ~ x,
          mean=2, sigma=2.5)
slice_plot(gaussian(x) ~ x, domain(x = -5:10)) %>%
  slice_plot(gaussian(x, mean=0, sigma=1) ~ x, color="red")