Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions benchmarks/AstroChem/astrochem.jmd
Original file line number Diff line number Diff line change
Expand Up @@ -292,7 +292,7 @@ tspan = (0.0, 1e6*seconds_per_year)

params = [dust2gas => 0.01, radiation_field => 1e-1, cosmic_ionisation_rate => 1e-17]

println("Lets try to solve the ODE:")
println("Attempting to solve the ODE...")

sys = convert(ODESystem, complete(system))
# oprob = ODEProblemExpr(sys, [], tspan, params)
Expand All @@ -302,7 +302,7 @@ ssys = structural_simplify(sys)

```julia
oprob = ODEProblem(ssys, [], tspan, params)
println("Created the ODEproblem.")
println("ODEProblem created successfully.")
sol = solve(oprob, Rodas5()) # Rodas5()) # Tsit5()

# Generate a solution using high precision arithmetic
Expand Down Expand Up @@ -385,15 +385,15 @@ tspan = (0.0, 1e6*seconds_per_year)

params = [dust2gas => 0.01, radiation_field => 1e-1, cosmic_ionisation_rate => 1e-17]

println("Lets try to solve the ODE:")
println("Attempting to solve the ODE...")

sys = convert(ODESystem, complete(system))
# oprob = ODEProblemExpr(sys, [], tspan, params)

ssys = structural_simplify(sys)

oprob = ODEProblem(ssys, [], tspan, params)
println("Created the ODEproblem.")
println("ODEProblem created successfully.")
refsol = solve(oprob, Rodas5P(), abstol = 1e-14, reltol = 1e-14)
```

Expand Down
2 changes: 1 addition & 1 deletion benchmarks/BayesianInference/DiffEqBayesLorenz.jmd
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@ model = fitlv(data, sprob)
## Conclusion

Due to the chaotic nature of Lorenz Equation, it is a very hard problem to estimate as it has the property of exponentially increasing errors.
Its uncertainty plot points to its chaotic behaviour and goes awry for different values of tolerance, we use 1e-8 as the tolerance as it makes its uncertainty small enough to be trusted in `(0,30)` time span.
Its uncertainty plot demonstrates chaotic behavior and exhibits instability for different tolerance values. We use 1e-8 as the tolerance as it makes its uncertainty small enough to be trusted in the `(0,30)` time span.

```julia, echo = false
using SciMLBenchmarks
Expand Down
2 changes: 1 addition & 1 deletion benchmarks/Bio/BCR.jmd
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ show(to)

```julia
@show numspecies(rn) # Number of ODEs
@show numreactions(rn) # Apprx. number of terms in the ODE
@show numreactions(rn) # Approx. number of terms in the ODE
@show length(parameters(rn)); # Number of Parameters
```

Expand Down
2 changes: 1 addition & 1 deletion benchmarks/Bio/egfr_net.jmd
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ show(to)

```julia
@show numspecies(rn) # Number of ODEs
@show numreactions(rn) # Apprx. number of terms in the ODE
@show numreactions(rn) # Approx. number of terms in the ODE
@show length(parameters(rn)); # Number of Parameters
```

Expand Down
2 changes: 1 addition & 1 deletion benchmarks/Bio/fceri_gamma2.jmd
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ oprob_sparse = ODEProblem{true, SciMLBase.FullSpecialize}(

```julia
@show numspecies(rn) # Number of ODEs
@show numreactions(rn) # Apprx. number of terms in the ODE
@show numreactions(rn) # Approx. number of terms in the ODE
@show length(parameters(rn)); # Number of Parameters
```

Expand Down
2 changes: 1 addition & 1 deletion benchmarks/Bio/multisite2.jmd
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ show(to)

```julia
@show numspecies(rn) # Number of ODEs
@show numreactions(rn) # Apprx. number of terms in the ODE
@show numreactions(rn) # Approx. number of terms in the ODE
@show length(parameters(rn)); # Number of Parameters
```

Expand Down
2 changes: 1 addition & 1 deletion benchmarks/Bio/multistate.jmd
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ show(to)

```julia
@show numspecies(rn) # Number of ODEs
@show numreactions(rn) # Apprx. number of terms in the ODE
@show numreactions(rn) # Approx. number of terms in the ODE
@show length(parameters(rn)); # Number of Parameters
```

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ obj_short = build_loss_objective(prob_short, Vern9(), L2Loss(t_short, data_short
tstops = t_short, reltol = 1e-9, abstol = 1e-9)
optprob = OptimizationProblem(obj_short, glo_init, lb = first.(glo_bounds), ub = last.(glo_bounds))
@btime res1 = solve(optprob, BBO_adaptive_de_rand_1_bin(), maxiters = 7e3)
# using the moe accurate Vern9() reduces the fitness marginally and leads to some increase in time taken
# using the more accurate Vern9() reduces the fitness marginally and leads to some increase in time taken
```

## Using NLopt
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ obj_short = build_loss_objective(prob_short, Vern9(), L2Loss(t_short, data_short
tstops = t_short, reltol = 1e-9, abstol = 1e-9)
optprob = OptimizationProblem(obj_short, loc_init, lb = first.(loc_bounds), ub = last.(loc_bounds))
@btime res1 = solve(optprob, BBO_adaptive_de_rand_1_bin(); maxiters = 7e3)
# using the moe accurate Vern9() reduces the fitness marginally and leads to some increase in time taken
# using the more accurate Vern9() reduces the fitness marginally and leads to some increase in time taken
```

# Using NLopt
Expand Down Expand Up @@ -146,7 +146,7 @@ opt = Opt(:GN_ESCH, 4)
@btime res1 = solve(optprob, opt, maxiters = 10000, xtol_rel = 1e-12)
```

Now local optimization algorithms are used to check the global ones, these use the local constraints, different initial values and time step
Now local optimization algorithms are used to verify the global ones. These use the local constraints, different initial values and time step.

```julia
optprob = OptimizationProblem(obj_short, loc_init, lb = first.(loc_bounds), ub = last.(loc_bounds))
Expand Down Expand Up @@ -199,7 +199,7 @@ opt = Opt(:LD_TNEWTON_PRECOND_RESTART, 4)

## Now the longer problem is solved for a global solution

Vern9 solver with reltol=1e-9 and abstol=1e-9 is used and the dataset is increased to 3000 observations per variable with the same integration time step of 0.01.
The Vern9 solver with reltol=1e-9 and abstol=1e-9 is used, and the dataset is increased to 3000 observations per variable with the same integration time step of 0.01.

```julia
t_concrete = collect(0.0:dt:tf)
Expand Down Expand Up @@ -259,7 +259,7 @@ opt = Opt(:LD_SLSQP, 4)

# Conclusion

In general we observe that lower tolerance lead to higher accuracy but too low tolerance could affect the convergence time drastically. Also fitting a shorter timespan seems to be easier in comparison (quite intuitively). NLOpt methods seem to give great accuracy in the shorter problem with a lot of the algorithms giving 0 fitness, BBO performs very well on it with marginal change with `tol` values. In case of global optimization of the longer problem there is some difference in the performance amongst the algorithms with `LD_SLSQP` `GN_ESCH` `GN_ISRES` `GN_ORIG_DIRECT_L` performing among the worse, BBO also gives a bit high fitness in comparison. QuadDIRECT gives accurate results in the case of the shorter problem but doesn't perform very well in the longer problem case.
In general we observe that lower tolerances lead to higher accuracy but too low tolerance could affect the convergence time drastically. Also fitting a shorter timespan seems to be easier in comparison (quite intuitively). NLOpt methods seem to give great accuracy in the shorter problem with a lot of the algorithms giving 0 fitness, BBO performs very well on it with marginal change with `tol` values. In the case of global optimization for the longer problem, there is some difference in performance among the algorithms with `LD_SLSQP` `GN_ESCH` `GN_ISRES` `GN_ORIG_DIRECT_L` performing among the worst, BBO also gives a bit high fitness in comparison. QuadDIRECT gives accurate results in the case of the shorter problem but doesn't perform very well in the longer problem case.

```julia, echo = false
using SciMLBenchmarks
Expand Down
3 changes: 1 addition & 2 deletions benchmarks/StiffODE/Hires.jmd
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,7 @@ plot(sol, tspan = (0.0, 5.0))
## Omissions

The following were omitted from the tests due to convergence failures. ODE.jl's
adaptivity is not able to stabilize its algorithms, while
GeometricIntegratorsDiffEq has not upgraded to Julia 1.0.
adaptivity is not able to stabilize its algorithms.
GeometricIntegrators.jl's methods used to either fail to converge at
comparable dts (or on some computers had errors due to type conversions).

Expand Down
3 changes: 1 addition & 2 deletions benchmarks/StiffODE/Orego.jmd
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,7 @@ plot(sol,yscale=:log10)
## Omissions and Tweaking

The following were omitted from the tests due to convergence failures. ODE.jl's
adaptivity is not able to stabilize its algorithms, while
GeometricIntegratorsDiffEq has not upgraded to Julia 1.0.
adaptivity is not able to stabilize its algorithms.
GeometricIntegrators.jl's methods used to either fail to converge at
comparable dts (or on some computers had errors due to type conversions).

Expand Down
3 changes: 1 addition & 2 deletions benchmarks/StiffODE/Pollution.jmd
Original file line number Diff line number Diff line change
Expand Up @@ -218,8 +218,7 @@ plot(sol,tspan=(0.0,5.0))
## Omissions

The following were omitted from the tests due to convergence failures. ODE.jl's
adaptivity is not able to stabilize its algorithms, while
GeometricIntegratorsDiffEq has not upgraded to Julia 1.0.
adaptivity is not able to stabilize its algorithms.
GeometricIntegrators.jl's methods used to either fail to converge at
comparable dts (or on some computers had errors due to type conversions).

Expand Down
3 changes: 1 addition & 2 deletions benchmarks/StiffODE/ROBER.jmd
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,7 @@ plot(sol,labels=["y1","y2","y3"])
## Omissions And Tweaking

The following were omitted from the tests due to convergence failures. ODE.jl's
adaptivity is not able to stabilize its algorithms, while
GeometricIntegratorsDiffEq has not upgraded to Julia 1.0.
adaptivity is not able to stabilize its algorithms.
GeometricIntegrators.jl's methods used to either fail to converge at
comparable dts (or on some computers had errors due to type conversions).

Expand Down
3 changes: 1 addition & 2 deletions benchmarks/StiffODE/VanDerPol.jmd
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,7 @@ plot(sol)
## Omissions And Tweaking

The following were omitted from the tests due to convergence failures. ODE.jl's
adaptivity is not able to stabilize its algorithms, while
GeometricIntegratorsDiffEq has not upgraded to Julia 1.0.
adaptivity is not able to stabilize its algorithms.
GeometricIntegrators.jl's methods used to either fail to converge at
comparable dts (or on some computers had errors due to type conversions).

Expand Down
Loading