library(mosaicCalc)
## 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
## 
## 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
library(mosaic)
library(mosaicCore)
library(mosaicData)

Strategi dasar dalam kalkulus adalah membagi masalah yang menantang menjadi bagian-bagian yang lebih mudah, dan kemudian mengumpulkan bagian-bagian tersebut untuk menemukan solusi keseluruhan. Dengan demikian, area direduksi menjadi ketinggian yang terintegrasi. Volume berasal dari integrasi area. Persamaan diferensial memberikan pengaturan yang penting dan menarik untuk mengilustrasikan strategi kalkulus, sekaligus memberikan wawasan tentang pendekatan pemodelan dan pemahaman yang lebih baik tentang fenomena dunia nyata. Persamaan diferensial menghubungkan “keadaan” sesaat suatu sistem dengan perubahan keadaan sesaat.

Memecahkan Persamaan Diferensial

“Memecahkan” persamaan diferensial sama dengan menemukan nilai keadaan sebagai fungsi dari variabel bebas. Dalam “persamaan diferensial biasa”, hanya ada satu variabel bebas, biasanya disebut waktu. Dalam “persamaan diferensial parsial”, ada dua atau lebih variabel dependen, misalnya waktu dan ruang.

Fungsi tersebut integrateODE()menyelesaikan persamaan diferensial biasa yang dimulai dari kondisi awal keadaan tertentu.

Fungsi integrateODE()mengambil persamaan diferensial sebagai input, bersama dengan nilai awal keadaan. Nilai numerik untuk semua parameter harus ditentukan, karena mereka akan menggambar grafik solusinya. Selain itu, Anda harus menentukan rentang waktu yang Anda inginkan untuk fungsi tersebut x(t). Misalnya, inilah solusi untuk waktu berjalan dari 0 hingga 20.

"soln <- integrateODE(dx ~ r * x * (1 - x / K),
                     x = 1, K = 10, r = 0.5,
                     tdur = list(from=0, to=20))"
## [1] "soln <- integrateODE(dx ~ r * x * (1 - x / K),\n                     x = 1, K = 10, r = 0.5,\n                     tdur = list(from=0, to=20))"
"soln$x(0:5)"
## [1] "soln$x(0:5)"
"slice_plot(soln$x(t) ~ t, domain(t=0:20))"
## [1] "slice_plot(soln$x(t) ~ t, domain(t=0:20))"

Sistem Persamaan Diferensial

"epi <- integrateODE(dS ~ -a * S * I,
                    dI ~ a * S * I - b * I,
                    a = 0.0026, b = 0.5, S=762, I = 1,
                    tdur = 20)"
## [1] "epi <- integrateODE(dS ~ -a * S * I,\n                    dI ~ a * S * I - b * I,\n                    a = 0.0026, b = 0.5, S=762, I = 1,\n                    tdur = 20)"
"slice_plot(epi$S(t) ~ t, domain(t=0:20)) %>%
  slice_plot(epi$I(t) ~ t, color = red)"
## [1] "slice_plot(epi$S(t) ~ t, domain(t=0:20)) %>%\n  slice_plot(epi$I(t) ~ t, color = red)"