Skip to content

Commit 98ae3ab

Browse files
authored
Merge pull request #484 from SciML/more_examples
more examples
2 parents edba396 + 12a98da commit 98ae3ab

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed

test/identifiable_functions.jl

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1093,6 +1093,59 @@ ident_funcs = [
10931093
]
10941094
push!(test_cases, (ode = ode, ident_funcs = ident_funcs, with_states = false))
10951095
1096+
# Examples from https://doi.org/10.1016/j.mbs.2011.06.001
1097+
# From Section 6
1098+
ode = @ODEmodel(
1099+
x1'(t) = -(a1 + a2) * x1(t) * Vm / (Km + x1(t)) + k21 * x2(t) + b1 * u(t),
1100+
x2'(t) = a2 * x1(t) * Vm / (Km + x1(t)) - (k02 + k12) * x2(t),
1101+
y(t) = c * x1(t)
1102+
)
1103+
ident_funcs = [
1104+
k02 + k12,
1105+
b1 * c,
1106+
Km * c,
1107+
Vm * a1 * c + Vm * a2 * c,
1108+
(a2 * k21) // (a1 + a2), # this one is different
1109+
]
1110+
ident_funcs_states = [
1111+
k02 + k12,
1112+
b1 * c,
1113+
Km * c,
1114+
x1 * c,
1115+
x2 * c * k21,
1116+
(Vm * a2) // x2,
1117+
Vm * a1 * c + Vm * a2 * c,
1118+
]
1119+
push!(test_cases, (ode = ode, ident_funcs = ident_funcs, with_states = false))
1120+
push!(test_cases, (ode = ode, ident_funcs = ident_funcs_states, with_states = true))
1121+
1122+
# From Section 11
1123+
ode = @ODEmodel(
1124+
T'(t) = lambda - rho * T(t) - beta * T(t) * V(t),
1125+
Tast'(t) = beta * T(t) * V(t) - delta * Tast(t),
1126+
V'(t) = N * delta * Tast(t) - c * V(t),
1127+
y(t) = V(t)
1128+
)
1129+
ident_funcs = [
1130+
rho,
1131+
beta,
1132+
c + delta,
1133+
c * delta,
1134+
N * delta * lambda,
1135+
]
1136+
ident_funcs_states = [
1137+
rho,
1138+
beta,
1139+
V,
1140+
c + delta,
1141+
c * delta,
1142+
T // lambda,
1143+
N * delta * lambda,
1144+
Tast * N * delta + V * delta,
1145+
]
1146+
push!(test_cases, (ode = ode, ident_funcs = ident_funcs, with_states = false))
1147+
push!(test_cases, (ode = ode, ident_funcs = ident_funcs_states, with_states = true))
1148+
10961149
@testset "Identifiable functions of parameters" begin
10971150
p = 0.99
10981151
for case in test_cases

0 commit comments

Comments
 (0)