@@ -39,21 +39,22 @@ sol = solve(prob, Tsit5())
39
39
@variables x (t) y (t) z (t)
40
40
eqs = [
41
41
D (x) ~ y
42
- D (y) ~ 2 * D (x )
42
+ D (D (y)) ~ 2 * x * D (y )
43
43
z ~ x + D (y)
44
44
]
45
45
@named sys1 = ODESystem (eqs, t)
46
46
47
47
@independent_variables s
48
- @named sys2 = ModelingToolkit. change_independent_variable (sys1, s, s^ 2 )
48
+ @named sys2 = ModelingToolkit. change_independent_variable (sys1, s, s^ 2 , √ (t) )
49
49
50
50
sys1 = structural_simplify (sys1)
51
51
sys2 = structural_simplify (sys2)
52
- prob1 = ODEProblem (sys1, unknowns ( sys1) . => 1.0 , ( 0.0 , 1 .0 ))
53
- prob2 = ODEProblem (sys2, unknowns ( sys2) . => 1.0 , ( 0.0 , 1 .0 ))
52
+ prob1 = ODEProblem (sys1, [ sys1. x => 1.0 , sys1 . y => 1.0 , Differential (t)(sys1 . y) => 0.0 ], ( 1.0 , 4 .0 ))
53
+ prob2 = ODEProblem (sys2, [ sys2. x => 1.0 , sys2 . y => 1.0 , Differential (s)(sys2 . y) => 0.0 ], ( 1.0 , 2 .0 ))
54
54
sol1 = solve (prob1, Tsit5 (); reltol = 1e-10 , abstol = 1e-10 )
55
55
sol2 = solve (prob2, Tsit5 (); reltol = 1e-10 , abstol = 1e-10 )
56
56
ts = range (0.0 , 1.0 , length = 50 )
57
57
ss = .√ (ts)
58
- @test isapprox (sol1 (ts), sol2 (ss); atol = 1e-8 )
58
+ @test all (isapprox .(sol1 (ts, idxs= sys1. x), sol2 (ss, idxs= sys2. x); atol = 1e-7 )) &&
59
+ all (isapprox .(sol1 (ts, idxs= sys1. y), sol2 (ss, idxs= sys2. y); atol = 1e-7 ))
59
60
end
0 commit comments