|
25 | 25 | p = rnd_ps(exponential_decay, rng; factor)
|
26 | 26 | prob = ODEProblem(exponential_decay, u0, (0.0, t_stops[end]), p)
|
27 | 27 |
|
28 |
| - sol = solve(prob, Rosenbrock23(), saveat = t_stops, abstol = 1e-14, reltol = 1e-14) |
| 28 | + sol = solve(prob, Vern7(), saveat = t_stops, abstol = 1e-10, reltol = 1e-10) |
29 | 29 | analytic_sol = [u0[1][2] * exp(-p[1][2] * t) for t in t_stops]
|
30 | 30 | @test sol[:X] ≈ analytic_sol
|
31 | 31 | end
|
|
44 | 44 | u0 = rnd_u0(known_equilibrium, rng; factor)
|
45 | 45 | p = rnd_ps(known_equilibrium, rng; factor, min = 0.1)
|
46 | 46 | prob = ODEProblem(known_equilibrium, u0, (0.0, 100000.0), p)
|
47 |
| - sol = solve(prob, Vern7(); abstol = 1e-12, reltol = 1e-12) |
| 47 | + sol = solve(prob, Rosenbrock23()) |
48 | 48 |
|
49 |
| - @test sol[:X1][end] / sol[:X2][end] ≈ prob.ps[:k2] / prob.ps[:k1] atol=1e-8 |
50 |
| - @test sol[:X3][end] * sol[:X4][end] / sol[:X5][end] ≈ prob.ps[:k4] / prob.ps[:k3] atol=1e-8 |
51 |
| - @test (sol[:X6][end]^2 / factorial(2)) / (sol[:X7][end]^3 / factorial(3)) ≈ prob.ps[:k6] / prob.ps[:k5] atol=1e-8 |
52 |
| - @test sol[:X8][end] ≈ prob.ps[:k7] / prob.ps[:k8] atol=1e-8 |
| 49 | + @test sol[:X1][end] / sol[:X2][end] ≈ prob.ps[:k2] / prob.ps[:k1] |
| 50 | + @test sol[:X3][end] * sol[:X4][end] / sol[:X5][end] ≈ prob.ps[:k4] / prob.ps[:k3] |
| 51 | + @test (sol[:X6][end]^2 / factorial(2)) / (sol[:X7][end]^3 / factorial(3)) ≈ prob.ps[:k6] / prob.ps[:k5] |
| 52 | + @test sol[:X8][end] ≈ prob.ps[:k7] / prob.ps[:k8] |
53 | 53 | end
|
54 | 54 | end
|
55 | 55 |
|
|
0 commit comments