Strategi dalam kalkulus adalah membagi masalah ke bagian yang lebih mudah lalu mengumpulkannya untuk menemukan solusi.
Memecahkan persamaan diferensial sama seperti menemukan nilai sebagai fungsi dari variabel bebas.
Fungsinya adalah integrateODE() yang dapat menyelesaikan
persaman diferensial biasa. Fungsi ini mengambil persamaan diferensial
sebagai input bersama dengan nilai awal. Objek yang dibuat oleh fungsi
tersebut adalah fungsi waktu. Contoh penerapannya adalah
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
variabel <- integrateODE(dx ~ r * x * (1 - x / K),
x = 97, K=9.8, r = 0.5,
tdur = list(from = 0, to = 20))
Berikut ini nilai-nilai dit = 0 - 13.
variabel$x(0:13)
## [1] 97.000000 21.550415 14.642432 12.258997 11.157439 10.580775 10.259170
## [8] 10.073459 9.964060 9.898856 9.859722 9.836137 9.821886 9.813263
Berikut ini solusi terhadap waktu dari fungsi tersebut.
library(mosaicCalc)
slice_plot(variabel$x(t) ~ t, domain(t=0:20))
Sistem persamaan variabel yang memiliki lebih dari satu variabel dapat juga ditangani. Contoh penerapannya adalah :
epi <- integrateODE(dS ~ -a * S * I,
dI ~ a * S * I - b * I,
a = 0.0026, b = 0.5, S=762, I = 1,
tdur = 20)
Sistem ini dapat diselesaikan untuk menghasilkan dua fungsi yakni S(t) dan I(t). Kodenya adalah :
slice_plot(epi$S(t) ~ t, domain(t=0:20)) %>%
slice_plot(epi$I(t) ~ t, color = "red")