1
1
using ModelingToolkit, DelayDiffEq, Test
2
+ using SymbolicIndexingInterface: is_markovian
2
3
using ModelingToolkit: t_nounits as t, D_nounits as D
3
4
4
5
p0 = 0.2 ;
@@ -39,6 +40,7 @@ eqs = [D(x₀) ~ (v0 / (1 + beta0 * (x₂(t - tau)^2))) * (p0 - q0) * x₀ - d0
39
40
D (x₂ (t)) ~ (v1 / (1 + beta1 * (x₂ (t - tau)^ 2 ))) * (1 - p1 + q1) * x₁ - d2 * x₂ (t)]
40
41
@mtkbuild sys = System (eqs, t)
41
42
@test ModelingToolkit. is_dde (sys)
43
+ @test ! is_markovian (sys)
42
44
prob = DDEProblem (sys,
43
45
[x₀ => 1.0 , x₁ => 1.0 , x₂ (t) => 1.0 ],
44
46
tspan,
@@ -81,6 +83,7 @@ sol = solve(prob, RKMil())
81
83
eqs = [D (x (t)) ~ a * x (t) + b * x (t - τ) + c + (α * x (t) + γ) * η]
82
84
@mtkbuild sys = System (eqs, t)
83
85
@test ModelingToolkit. is_dde (sys)
86
+ @test ! is_markovian (sys)
84
87
@test equations (sys) == [D (x (t)) ~ a * x (t) + b * x (t - τ) + c]
85
88
@test isequal (ModelingToolkit. get_noiseeqs (sys), [α * x (t) + γ])
86
89
prob_mtk = SDDEProblem (sys, [x (t) => 1.0 + t], tspan; constant_lags = (τ,));
@@ -106,8 +109,10 @@ eqs = [osc1.jcn ~ osc2.delx,
106
109
@named coupledOsc = System (eqs, t)
107
110
@named coupledOsc = compose (coupledOsc, systems)
108
111
@test ModelingToolkit. is_dde (coupledOsc)
112
+ @test ! is_markovian (coupledOsc)
109
113
@named coupledOsc2 = System (eqs, t; systems)
110
114
@test ModelingToolkit. is_dde (coupledOsc2)
115
+ @test ! is_markovian (coupledOsc2)
111
116
for coupledOsc in [coupledOsc, coupledOsc2]
112
117
local sys = structural_simplify (coupledOsc)
113
118
@test length (equations (sys)) == 4
0 commit comments