@@ -258,32 +266,11 @@ solver is used.
Examples
#> time degradinol
-#> 1 0 100.0000000
-#> 2 1 74.0818221
-#> 3 2 54.8811636
-#> 4 3 40.6569660
-#> 5 4 30.1194212
-#> 6 5 22.3130160
-#> 7 6 16.5298888
-#> 8 7 12.2456428
-#> 9 8 9.0717953
-#> 10 9 6.7205513
-#> 11 10 4.9787068
-#> 12 11 3.6883167
-#> 13 12 2.7323722
-#> 14 13 2.0241911
-#> 15 14 1.4995577
-#> 16 15 1.1108997
-#> 17 16 0.8229747
-#> 18 17 0.6096747
-#> 19 18 0.4516581
-#> 20 19 0.3345965
-#> 21 20 0.2478752
#> time degradinol
+
SFO <- mkinmod(
degradinol = mkinsub(
"SFO"))
+
# Compare solution types
+
mkinpredict(
SFO,
c(
k_degradinol_sink = 0.3),
c(
degradinol = 100),
0:
20,
+
solution_type = "analytical")
#> Error in (function (t, parent_0, k) { parent = parent_0 * exp(-k * t)})(t = 0:20, parent.0 = c(degradinol = 100), k = 0.3): unbenutztes Argument (parent.0 = 100)
#> time degradinol
#> 1 0 100.0000000
#> 2 1 74.0818221
#> 3 2 54.8811636
@@ -304,8 +291,8 @@ solver is used.
#> 18 17 0.6096747
#> 19 18 0.4516581
#> 20 19 0.3345965
-#> 21 20 0.2478752
#> time degradinol
+#> 21 20 0.2478752
#> time degradinol
#> 1 0 100.0000000
#> 2 1 74.0818221
#> 3 2 54.8811636
@@ -326,8 +313,8 @@ solver is used.
#> 18 17 0.6096747
#> 19 18 0.4516581
#> 20 19 0.3345965
-#> 21 20 0.2478752
#> time degradinol
+#> 21 20 0.2478752
#> time degradinol
#> 1 0 100.0000000
#> 2 1 74.0818221
#> 3 2 54.8811636
@@ -349,92 +336,68 @@ solver is used.
#> 19 18 0.4516581
#> 20 19 0.3345965
#> 21 20 0.2478752
#> time degradinol
-#> 21 20 0.2478752
#> time degradinol
-#> 21 20 0.2478752
#> time degradinol
-#> 21 20 0.2478752
#> time degradinol
-#> 21 20 0.2480043
#> time degradinol
-#> 201 20 0.2478752
#> time degradinol
+
# Compare integration methods to analytical solution
+
mkinpredict(
SFO,
c(
k_degradinol_sink = 0.3),
c(
degradinol = 100),
0:
20,
+
solution_type = "analytical")[
21,]
#> Error in (function (t, parent_0, k) { parent = parent_0 * exp(-k * t)})(t = 0:20, parent.0 = c(degradinol = 100), k = 0.3): unbenutztes Argument (parent.0 = 100)
#> time degradinol
+#> 21 20 0.2478752
#> time degradinol
+#> 21 20 0.2478752
#> time degradinol
+#> 21 20 0.2480043
#> time degradinol
+#> 201 20 0.2478752
#> time degradinol
#> 2001 20 0.2478752
#> Successfully compiled differential equation model from auto-generated C code.
#> time parent m1
-#> 201 20 4.978707 27.46227
#> User System verstrichen
-#> 0.003 0.000 0.003
#> time parent m1
-#> 201 20 4.978707 27.46227
#> User System verstrichen
-#> 0.002 0.000 0.002
#> time parent m1
-#> 201 20 4.978707 27.46227
#> User System verstrichen
-#> 0.021 0.000 0.021
#> Ordinary least squares optimisation
#> Sum of squared residuals at call 1: 552.5739
-#> Sum of squared residuals at call 3: 552.5739
-#> Sum of squared residuals at call 4: 552.5739
-#> Sum of squared residuals at call 6: 279.9345
-#> Sum of squared residuals at call 7: 279.9344
-#> Sum of squared residuals at call 8: 279.9294
-#> Sum of squared residuals at call 9: 279.9294
-#> Sum of squared residuals at call 12: 200.3629
-#> Sum of squared residuals at call 13: 200.3629
-#> Sum of squared residuals at call 18: 197.904
-#> Sum of squared residuals at call 22: 197.904
-#> Sum of squared residuals at call 25: 196.6753
-#> Sum of squared residuals at call 27: 196.6753
-#> Sum of squared residuals at call 32: 196.5742
-#> Sum of squared residuals at call 33: 196.5742
-#> Sum of squared residuals at call 34: 196.5742
-#> Sum of squared residuals at call 38: 196.5361
-#> Sum of squared residuals at call 40: 196.5361
-#> Sum of squared residuals at call 44: 196.5336
-#> Sum of squared residuals at call 45: 196.5336
-#> Sum of squared residuals at call 50: 196.5334
-#> Sum of squared residuals at call 51: 196.5334
-#> Sum of squared residuals at call 52: 196.5334
-#> Sum of squared residuals at call 56: 196.5334
-#> Sum of squared residuals at call 58: 196.5334
-#> Sum of squared residuals at call 59: 196.5334
-#> Sum of squared residuals at call 65: 196.5334
-#> Negative log-likelihood at call 75: 26.64668
#> Optimisation successfully terminated.
#> time parent m1
+
# Check compiled model versions - they are faster than the eigenvalue based solutions!
+
SFO_SFO = mkinmod(
parent = list(
type = "SFO",
to = "m1"),
+
m1 = list(
type = "SFO"))
#> Successfully compiled differential equation model from auto-generated C code.
#> Lade nötiges Paket: rbenchmark
#> test replications elapsed relative user.self sys.self user.child
+#> 3 deSolve 10 0.229 28.625 0.229 0 0
+#> 2 deSolve_compiled 10 0.008 1.000 0.008 0 0
+#> 1 eigen 10 0.025 3.125 0.026 0 0
+#> sys.child
+#> 3 0
+#> 2 0
+#> 1 0
#> time parent m1
#> 1 0.0 82.49216 0.000000
#> 2 0.1 80.00563 1.179963
#> 3 0.2 77.59404 2.312596
#> 4 0.3 75.25515 3.399443
#> 5 0.4 72.98675 4.442000
-#> 6 0.5 70.78673 5.441717
# }
+#> 6 0.5 70.78673 5.441717
# }
-
@@ -445,7 +408,7 @@ solver is used.