diff --git a/benchmarks/hodgkinhuxley.jmd b/benchmarks/hodgkinhuxley.jmd index dc612d9e7..d99f78d29 100644 --- a/benchmarks/hodgkinhuxley.jmd +++ b/benchmarks/hodgkinhuxley.jmd @@ -9,7 +9,7 @@ - [Results are similar for fixed time steps.](@ref hh_fixed_steps) -```julia +```julia, results="hidden" using LinearAlgebra, Statistics, Distributions using DiffEqDevTools, SciMLBase, OrdinaryDiffEq, Plots, SimpleUnPack using ProbNumDiffEq @@ -111,6 +111,33 @@ wp = WorkPrecisionSet( ) plot(wp, title="Adaptive steps - no smoothing", color=colors) + + +_ref_setups = [ + "Tsit5" => Dict(:alg => Tsit5()) + "Vern7" => Dict(:alg => Vern7()) + "RadauIIA5" => Dict(:alg => RadauIIA5()) +] +ref_labels = first.(_ref_setups) +ref_setups = last.(_ref_setups) +ref_wp_final = WorkPrecisionSet( + prob, abstols ./ 1000, reltols ./ 1000, ref_setups; + names = ref_labels, + appxsol = test_sol, + dense = false, + save_everystep = false, + maxiters = Int(1e7), +) +ref_wp_dense = WorkPrecisionSet( + prob, abstols ./ 1000, reltols ./ 1000, ref_setups; + names = ref_labels, + appxsol = test_sol, + dense = true, + save_everystep = true, + maxiters = Int(1e7), +) + +plot!(ref_wp_final, x=:final, color=:gray, alpha=0.7, linestyle=:dash) ``` ### With smoothing @@ -146,6 +173,7 @@ wp = WorkPrecisionSet( ) plot(wp, title="Adaptive steps - with smoothing", color=colors) +plot!(ref_wp_dense, x=:final, color=:gray, alpha=0.7, linestyle=:dash) ``` ```@raw html @@ -153,6 +181,7 @@ plot(wp, title="Adaptive steps - with smoothing", color=colors) ``` ```julia plot(wp, x=:L2, title="Adaptive steps - with smoothing", color=colors) +plot!(ref_wp_dense, x=:L2, color=:gray, alpha=0.7, linestyle=:dash) ``` ```@raw html diff --git a/benchmarks/lotkavolterra.jmd b/benchmarks/lotkavolterra.jmd index 738332518..0f39dc556 100644 --- a/benchmarks/lotkavolterra.jmd +++ b/benchmarks/lotkavolterra.jmd @@ -20,7 +20,7 @@ Benchmark adapted from [SciMLBenchmarks.jl](https://docs.sciml.ai/SciMLBenchmarksOutput/stable/NonStiffODE/LotkaVolterra_wpd/). -```julia +```julia, results="hidden" using LinearAlgebra, Statistics, Distributions using DiffEqDevTools, ParameterizedFunctions, SciMLBase, OrdinaryDiffEq, Plots using ProbNumDiffEq @@ -32,6 +32,14 @@ Plots.theme( margin=5Plots.mm, xticks=10.0 .^ (-16:1:16), ) + +function plot_chisq_interval!(df, q=0.01) + dist = Chisq(df) + low, high, mid = quantile(dist, [q, 1-q])..., mean(dist) + hline!([low, high], linestyle=:dash, color=:black, label="", + fill_between=[high nothing], fillcolor=:green, fillalpha=0.15) + hline!([mid], linestyle=:solid, color=:black, label="") +end ``` ```julia @@ -75,6 +83,32 @@ wp = WorkPrecisionSet( ) plot(wp, palette=Plots.palette([:blue, :red], length(_setups))) + +_ref_setups = [ + "Tsit5" => Dict(:alg => Tsit5()) + "Vern7" => Dict(:alg => Vern7()) + "RadauIIA5" => Dict(:alg => RadauIIA5()) +] +ref_labels = first.(_ref_setups) +ref_setups = last.(_ref_setups) +ref_wp_final = WorkPrecisionSet( + prob, abstols, reltols, ref_setups; + names = ref_labels, + appxsol = test_sol, + dense = false, + save_everystep = false, + maxiters = Int(1e7), +) +ref_wp_dense = WorkPrecisionSet( + prob, abstols, reltols, ref_setups; + names = ref_labels, + appxsol = test_sol, + dense = true, + save_everystep = true, + maxiters = Int(1e7), +) + +plot!(ref_wp_final, x=:final, color=:gray, alpha=0.7, linestyle=:dash) ``` ```@raw html @@ -105,6 +139,7 @@ wp = WorkPrecisionSet( ) plot(wp, x=:l2, palette=Plots.palette([:blue, :red], length(_setups))) +plot!(ref_wp_dense, x=:l2, color=:gray, alpha=0.7, linestyle=:dash) ``` ```@raw html @@ -115,6 +150,7 @@ plot(wp, x=:l2, palette=Plots.palette([:blue, :red], length(_setups))) ``` ```julia plot(wp, x=:L2, palette=Plots.palette([:blue, :red], length(_setups))) +plot!(ref_wp_dense, x=:L2, color=:gray, alpha=0.7, linestyle=:dash) ``` ```@raw html @@ -147,6 +183,7 @@ wp = WorkPrecisionSet( ) plot(wp, palette=Plots.palette([:blue, :red], length(_setups))) +plot!(ref_wp_final, x=:final, color=:gray, alpha=0.7, linestyle=:dash) ``` ```@raw html @@ -177,6 +214,7 @@ wp = WorkPrecisionSet( ) plot(wp, x=:l2, palette=Plots.palette([:blue, :red], length(_setups))) +plot!(ref_wp_dense, x=:l2, color=:gray, alpha=0.7, linestyle=:dash) ``` ```@raw html @@ -187,6 +225,7 @@ plot(wp, x=:l2, palette=Plots.palette([:blue, :red], length(_setups))) ``` ```julia plot(wp, x=:L2, palette=Plots.palette([:blue, :red], length(_setups))) +plot!(ref_wp_dense, x=:L2, color=:gray, alpha=0.7, linestyle=:dash) ``` ```@raw html @@ -225,6 +264,7 @@ wp = WorkPrecisionSet( ) plot(wp, color=[1 1 1 1 2 2 2 2]) +plot!(ref_wp_final, x=:final, color=:gray, alpha=0.7, linestyle=:dash) ``` ```@raw html @@ -261,6 +301,7 @@ wp = WorkPrecisionSet( ) plot(wp, x=:L2, color=[1 1 1 1 2 2 2 2]) +plot!(ref_wp_dense, x=:L2, color=:gray, alpha=0.7, linestyle=:dash) ``` ```@raw html @@ -269,15 +310,6 @@ plot(wp, x=:L2, color=[1 1 1 1 2 2 2 2]) ## [`EK0`](@ref) vs. [`EK1`](@ref): Calibration ```julia plot(wp, x=:final, y=:chi2_final, color=[1 1 1 1 2 2 2 2], yguide="Chi-squared (final)") - -# Should be distributed according to a Chi-squared distribution: -function plot_chisq_interval!(df, q=0.01) - dist = Chisq(df) - low, high, mid = quantile(dist, [q, 1-q])..., mean(dist) - hline!([low, high], linestyle=:dash, color=:black, label="", - fill_between=[high nothing], fillcolor=:green, fillalpha=0.15) - hline!([mid], linestyle=:solid, color=:black, label="") -end plot_chisq_interval!(2) ``` diff --git a/benchmarks/orego.jmd b/benchmarks/orego.jmd index e7553f835..11c90dcd7 100644 --- a/benchmarks/orego.jmd +++ b/benchmarks/orego.jmd @@ -2,13 +2,14 @@ !!! note "Summary" - TODO + - [**The `EK1` is able to solve mass-matrix DAEs.** To achieve low error, use order 4 or higher.](@ref orego_results) + - The order-to-error-tolerance heuristic holds: lower tolerance level ``\rightarrow`` higher order. Adapted from [SciMLBenchmarks.jl](https://docs.sciml.ai/SciMLBenchmarksOutput/stable/DAE/OregoDAE/). -```julia +```julia, results="hidden" using LinearAlgebra, Statistics, Distributions using DiffEqDevTools, ParameterizedFunctions, SciMLBase, OrdinaryDiffEq, Sundials, Plots using ModelingToolkit @@ -21,9 +22,15 @@ Plots.theme( margin=5Plots.mm, xticks=10.0 .^ (-16:1:16), ) -``` -### OREGO problem definition +function plot_chisq_interval!(df, q=0.01) + dist = Chisq(df) + low, high, mid = quantile(dist, [q, 1-q])..., mean(dist) + hline!([low, high], linestyle=:dash, color=:black, label="", + fill_between=[high nothing], fillcolor=:green, fillalpha=0.15) + hline!([mid], linestyle=:solid, color=:black, label="") +end +``` ```julia @variables t y1(t)=1.0 y2(t)=2.0 y3(t)=3.0 @@ -47,7 +54,7 @@ ref_sol = solve(daeprob,IDA(),abstol=1/10^14,reltol=1/10^14) plot(ref_sol, title="OREGO Solution", legend=false, xticks=:auto) ``` -## EK1 accross orders +## [`EK1` across orders](@id orego_results) ```julia DENSE = false; @@ -55,14 +62,14 @@ SAVE_EVERYSTEP = false; _setups = [ "EK1($order)" => Dict(:alg => EK1(order=order, smooth=DENSE)) - for order in 2:4 + for order in 2:6 ] labels = first.(_setups) setups = last.(_setups) -abstols = 1.0 ./ 10.0 .^ (4:8) -reltols = 1.0 ./ 10.0 .^ (1:5) +abstols = 1.0 ./ 10.0 .^ (6:10) +reltols = 1.0 ./ 10.0 .^ (3:7) wp = WorkPrecisionSet( mmprob, abstols, reltols, setups; @@ -75,6 +82,24 @@ wp = WorkPrecisionSet( ) plot(wp, palette=Plots.palette([:blue, :red], length(_setups))) + + +_ref_setups = [ + "Rosenbrock23" => Dict(:alg => Rosenbrock23()) + "Rodas4P" => Dict(:alg => Rodas4P()) + "RadauIIA" => Dict(:alg => RadauIIA5()) +] +ref_labels = first.(_ref_setups) +ref_setups = last.(_ref_setups) +ref_wp = WorkPrecisionSet( + mmprob, abstols, reltols, ref_setups; + names = ref_labels, + appxsol = ref_sol, + dense = DENSE, + save_everystep = SAVE_EVERYSTEP, + maxiters = Int(1e7), +) +plot!(ref_wp, x=:final, color=:gray, alpha=0.7, linestyle=:dash) ``` ### Calibration @@ -82,14 +107,6 @@ plot(wp, palette=Plots.palette([:blue, :red], length(_setups))) ```julia plot(wp; x=:final, y=:chi2_final, yguide="Chi-squared (final)", palette=Plots.palette([:blue, :red], length(_setups))) - -function plot_chisq_interval!(df, q=0.01) - dist = Chisq(df) - low, high, mid = quantile(dist, [q, 1-q])..., mean(dist) - hline!([low, high], linestyle=:dash, color=:black, label="", - fill_between=[high nothing], fillcolor=:green, fillalpha=0.15) - hline!([mid], linestyle=:solid, color=:black, label="") -end plot_chisq_interval!(3) ``` diff --git a/benchmarks/pleiades.jmd b/benchmarks/pleiades.jmd index 64b5e7b58..c13dcab9e 100644 --- a/benchmarks/pleiades.jmd +++ b/benchmarks/pleiades.jmd @@ -3,11 +3,11 @@ !!! note "Summary" Pleiades is a medium-dimensional, non-stiff, second-order ODE. We see that: - - The `EK0` is _much_ faster than the `EK1` as it scales linearly with the ODE dimension. - - If the problem is a second-order ODE, _implement it as a second-order ODE_! + - [**The `EK0` is _much_ faster than the `EK1` as it scales linearly with the ODE dimension.**](@ref pleiades_results) + - [**If the problem is a second-order ODE, _implement it as a second-order ODE_!**](@ref pleiades_results) -```julia +```julia, results="hidden" using LinearAlgebra, Statistics, Distributions using DiffEqDevTools, ParameterizedFunctions, SciMLBase, OrdinaryDiffEq, Sundials, Plots, ODEInterfaceDiffEq using ModelingToolkit @@ -20,9 +20,15 @@ Plots.theme( margin=5Plots.mm, xticks=10.0 .^ (-16:1:16), ) -``` -### Pleiades problem definition +function plot_chisq_interval!(df, q=0.01) + dist = Chisq(df) + low, high, mid = quantile(dist, [q, 1-q])..., mean(dist) + hline!([low, high], linestyle=:dash, color=:black, label="", + fill_between=[high nothing], fillcolor=:green, fillalpha=0.15) + hline!([mid], linestyle=:solid, color=:black, label="") +end +``` ```julia # first-order ODE @@ -83,7 +89,7 @@ plot(ref_sol1, idxs=[(14+i,21+i) for i in 1:7], title="Pleiades Solution", legen scatter!(ref_sol1.u[end][15:21], ref_sol1.u[end][22:end], color=1:7) ``` -## EK0 vs EK1 & first-order vs. second-order +## [`EK0` vs `EK1` & first-order vs. second-order](@id pleiades_results) ```julia DENSE = false; SAVE_EVERYSTEP = false; @@ -97,9 +103,6 @@ _setups = [ "EK1(5) (1st order ODE)" => Dict(:alg => EK1(order=5, smooth=DENSE), :prob_choice => 1) "EK1(4) (2nd order ODE)" => Dict(:alg => EK1(order=4, smooth=DENSE), :prob_choice => 2) "EK1(6) (2nd order ODE)" => Dict(:alg => EK1(order=6, smooth=DENSE), :prob_choice => 2) - "Classic: Tsit5" => Dict(:alg => Tsit5(), :prob_choice => 1) - "Classic: RadauIIA5" => Dict(:alg => RadauIIA5(), :prob_choice => 1) - "Classic: DPRKN6" => Dict(:alg => DPRKN6(), :prob_choice => 2) ] labels = first.(_setups) @@ -118,30 +121,32 @@ wp = WorkPrecisionSet( maxiters = Int(1e7), ) -plot(wp, - color=[1 1 1 1 2 2 2 2 3 3 3], - linestyle=[:solid :solid :dash :dash :solid :solid :dash :dash :solid :solid :dash], - alpha=[1 1 1 1 1 1 1 1 0.5 0.5 0.5], +color = [1 1 1 1 2 2 2 2] +linestyle = [:solid :solid :dash :dash :solid :solid :dash :dash] +plot(wp; color, linestyle) + +_ref_setups = [ + "Classic: Tsit5" => Dict(:alg => Tsit5(), :prob_choice => 1) + "Classic: RadauIIA5" => Dict(:alg => RadauIIA5(), :prob_choice => 1) + "Classic: DPRKN6" => Dict(:alg => DPRKN6(), :prob_choice => 2) +] +ref_labels = first.(_ref_setups) +ref_setups = last.(_ref_setups) +ref_wp = WorkPrecisionSet( + probs, abstols ./ 1000, reltols ./ 1000, ref_setups; + names = ref_labels, + appxsol = ref_sols, + dense = false, + save_everystep = false, + maxiters = Int(1e7), ) +plot!(ref_wp, x=:final, color=:gray, alpha=0.7, linestyle=[:solid :solid :dash]) ``` ### Calibration ```julia -# We can only evaluate calibration for the PN solvers -_wp = WorkPrecisionSet(wp.wps[1:end-3], wp.N-3, wp.abstols, wp.reltols, wp.prob, wp.setups[1:end-3], - wp.names[1:end-3], wp.error_estimate, wp.numruns) -plot(_wp; x=:final, y=:chi2_final, - color=[1 1 1 1 2 2 2 2], - linestyle=[:solid :solid :dash :dash :solid :solid :dash :dash], -) -function plot_chisq_interval!(df, q=0.01) - dist = Chisq(df) - low, high, mid = quantile(dist, [q, 1-q])..., mean(dist) - hline!([low, high], linestyle=:dash, color=:black, label="", - fill_between=[high nothing], fillcolor=:green, fillalpha=0.15) - hline!([mid], linestyle=:solid, color=:black, label="") -end +plot(wp; x=:final, y=:chi2_final, color, linestyle) plot_chisq_interval!(length(u0)*2) ``` diff --git a/benchmarks/rober.jmd b/benchmarks/rober.jmd index df379859e..f24a9accf 100644 --- a/benchmarks/rober.jmd +++ b/benchmarks/rober.jmd @@ -2,14 +2,14 @@ !!! note "Summary" - - The `EK1` can solve mass-matrix DAEs! But it only really works well for low tolerances. - - Order 3 seems to work well here. But the order-to-error-tolerance heuristic should in principle still hold: lower tolerance level ``\rightarrow`` higher order. + - [**The `EK1` can solve mass-matrix DAEs.** But for this problem, it only works well for low tolerances.](@ref rober_results) + - For this problem it only works well for low tolerances, but the order-to-error-tolerance heuristic should in principle still hold: lower tolerance level ``\rightarrow`` higher order. Adapted from [SciMLBenchmarks.jl](https://docs.sciml.ai/SciMLBenchmarksOutput/stable/DAE/ROBERDAE/). -```julia +```julia, results="hidden" using LinearAlgebra, Statistics, Distributions using DiffEqDevTools, ParameterizedFunctions, SciMLBase, OrdinaryDiffEq, Sundials, Plots using ModelingToolkit @@ -22,9 +22,15 @@ Plots.theme( margin=5Plots.mm, xticks=10.0 .^ (-16:1:16), ) -``` -### ROBER problem definition +function plot_chisq_interval!(df, q=0.01) + dist = Chisq(df) + low, high, mid = quantile(dist, [q, 1-q])..., mean(dist) + hline!([low, high], linestyle=:dash, color=:black, label="", + fill_between=[high nothing], fillcolor=:green, fillalpha=0.15) + hline!([mid], linestyle=:solid, color=:black, label="") +end +``` ```julia @variables t y₁(t)=1.0 y₂(t)=0.0 y₃(t)=0.0 @@ -44,7 +50,7 @@ ref_sol = solve(daeprob,IDA(),abstol=1/10^14,reltol=1/10^14) plot(ref_sol, idxs=[y₁,y₂,y₃], title="ROBER Solution", legend=false, ylims=(0, 1), xticks=:auto) ``` -## EK1 across orders +## [`EK1` across orders](@id rober_results) ```julia DENSE = false; @@ -58,8 +64,8 @@ _setups = [ labels = first.(_setups) setups = last.(_setups) -abstols = 1.0 ./ 10.0 .^ (4:8) -reltols = 1.0 ./ 10.0 .^ (1:5) +abstols = 1.0 ./ 10.0 .^ (4:7) +reltols = 1.0 ./ 10.0 .^ (1:4) wp = WorkPrecisionSet( mmprob, abstols, reltols, setups; @@ -72,6 +78,24 @@ wp = WorkPrecisionSet( ) plot(wp, palette=Plots.palette([:blue, :red], length(_setups))) + + +_ref_setups = [ + "Rosenbrock23" => Dict(:alg => Rosenbrock23()) + "Rodas4P" => Dict(:alg => Rodas4P()) + "RadauIIA" => Dict(:alg => RadauIIA5()) +] +ref_labels = first.(_ref_setups) +ref_setups = last.(_ref_setups) +ref_wp = WorkPrecisionSet( + mmprob, abstols ./ 10000, reltols ./ 10000, ref_setups; + names = ref_labels, + appxsol = ref_sol, + dense = DENSE, + save_everystep = SAVE_EVERYSTEP, + maxiters = Int(1e7), +) +plot!(ref_wp, x=:final, color=:gray, alpha=0.7, linestyle=:dash) ``` ### Calibration @@ -79,14 +103,6 @@ plot(wp, palette=Plots.palette([:blue, :red], length(_setups))) ```julia plot(wp; x=:final, y=:chi2_final, yguide="Chi-squared (final)", palette=Plots.palette([:blue, :red], length(_setups))) - -function plot_chisq_interval!(df, q=0.01) - dist = Chisq(df) - low, high, mid = quantile(dist, [q, 1-q])..., mean(dist) - hline!([low, high], linestyle=:dash, color=:black, label="", - fill_between=[high nothing], fillcolor=:green, fillalpha=0.15) - hline!([mid], linestyle=:solid, color=:black, label="") -end plot_chisq_interval!(3) ``` diff --git a/benchmarks/vanderpol.jmd b/benchmarks/vanderpol.jmd index 6cf0eb5f4..ed7e37683 100644 --- a/benchmarks/vanderpol.jmd +++ b/benchmarks/vanderpol.jmd @@ -3,11 +3,13 @@ !!! note "Summary" Van der Pol is a low-dimensional, stiff, second-order ODE. We see that: - - The `EK1` is very well able to solve stiff problems. - - Since Van der Pol is actually a second-order ODE, _do solve it as a second-order ODE_. + - [**The `EK1` is very well able to solve stiff problems.**](@ref vdp_main_results) + - [**Since Van der Pol is actually a second-order ODE, _do solve it as a second-order ODE_.**](@ref vdp_second_order) + - [**Use the `TaylorInit` or `ForwardDiffInit` initialization.**](@ref vdp_initialization) + While `SimpleInit` works well for lower orders, it fails for higher orders. And since Taylor-mode initialization is fast and works well, there is no reason not to use it. -```julia +```julia, results="hidden" using LinearAlgebra, Statistics, Distributions using DiffEqDevTools, ParameterizedFunctions, SciMLBase, OrdinaryDiffEq, Plots using ProbNumDiffEq @@ -19,9 +21,15 @@ Plots.theme( margin=5Plots.mm, xticks = 10.0 .^ (-16:1:16) ) -``` -### Van der Pol problem definition +function plot_chisq_interval!(df, q=0.01) + dist = Chisq(df) + low, high, mid = quantile(dist, [q, 1-q])..., mean(dist) + hline!([low, high], linestyle=:dash, color=:black, label="", + fill_between=[high nothing], fillcolor=:green, fillalpha=0.15) + hline!([mid], linestyle=:solid, color=:black, label="") +end +``` ```julia function vanderpol!(du, u, p, t) @@ -37,11 +45,8 @@ test_sol = solve(prob, RadauIIA5(), abstol=1/10^14, reltol=1/10^14) plot(test_sol, title="Van der Pol Solution", legend=false, ylims=(-5, 5), xticks=:auto) ``` -## EK1 across orders - -### Final value only +## [`EK1` across orders](@id vdp_main_results) -This does not require smoothing or saving intermediate values. ```julia DENSE = false; SAVE_EVERYSTEP = false; @@ -68,11 +73,37 @@ wp = WorkPrecisionSet( ) plot(wp, palette=Plots.palette([:blue, :red], length(_setups))) -``` -### Full trajectory +_ref_setups = [ + "Rosenbrock23" => Dict(:alg => Rosenbrock23()) + "Rodas4P" => Dict(:alg => Rodas4P()) + "RadauIIA5" => Dict(:alg => RadauIIA5()) +] +ref_labels = first.(_ref_setups) +ref_setups = last.(_ref_setups) +ref_wp_final = WorkPrecisionSet( + prob, abstols, reltols, ref_setups; + names = ref_labels, + appxsol = test_sol, + dense = false, + save_everystep = false, + maxiters = Int(1e7), +) +ref_wp_dense = WorkPrecisionSet( + prob, abstols, reltols, ref_setups; + names = ref_labels, + appxsol = test_sol, + dense = true, + save_everystep = true, + maxiters = Int(1e7), +) + +plot!(ref_wp_final, x=:final, color=:gray, alpha=0.7, linestyle=:dash) +``` -This does require smoothing or saving intermediate values. +```@raw html +
Discrete time-series errors (l2): +``` ```julia DENSE = true; SAVE_EVERYSTEP = true; @@ -99,30 +130,31 @@ wp = WorkPrecisionSet( ) plot(wp, x=:l2, palette=Plots.palette([:blue, :red], length(_setups))) +plot!(ref_wp_dense, x=:l2, color=:gray, alpha=0.7, linestyle=:dash) +``` +```@raw html +
``` -Interpolation errors: +```@raw html +
Interpolation errors (L2): +``` ```julia plot(wp, x=:L2, palette=Plots.palette([:blue, :red], length(_setups))) +plot!(ref_wp_dense, x=:L2, color=:gray, alpha=0.7, linestyle=:dash) +``` +```@raw html +
``` ## Calibration ```julia plot(wp, x=:final, y=:chi2_final, yguide="Chi-squared (final)", palette=Plots.palette([:blue, :red], length(_setups))) - -# Should be distributed according to a Chi-squared distribution: -function plot_chisq_interval!(df, q=0.01) - dist = Chisq(df) - low, high, mid = quantile(dist, [q, 1-q])..., mean(dist) - hline!([low, high], linestyle=:dash, color=:black, label="", - fill_between=[high nothing], fillcolor=:green, fillalpha=0.15) - hline!([mid], linestyle=:solid, color=:black, label="") -end plot_chisq_interval!(2) ``` -## Comparison of the different initialization schemes +## [Comparison of the different initialization schemes](@id vdp_initialization) ```julia DENSE = false; @@ -200,7 +232,7 @@ plot(wp, palette=Plots.palette([:blue, :red], length(_setups)), xticks = 10.0 .^ ``` -## Solving the first- vs second-order ODE +## [Solving the first- vs second-order ODE](@id vdp_second_order) ```julia function vanderpol2!(ddu, du, u, p, t) @@ -213,7 +245,8 @@ du0 = [0.0] prob2 = SecondOrderODEProblem(vanderpol2!, du0, u0, tspan, p) test_sol2 = solve(prob2, RadauIIA5(), abstol=1/10^14, reltol=1/10^14) -plot(test_sol2, title="Van der Pol Solution (2nd order)", legend=false, ylims=(-5, 5), xticks=:auto) +# plot(test_sol2, title="Van der Pol Solution (2nd order)", legend=false, ylims=(-5, 5), xticks=:auto) +nothing ``` ```julia @@ -249,10 +282,18 @@ wp = WorkPrecisionSet( color = [1 1 1 1 2 2 2 2] plot(wp; x=:final, color) +plot!(ref_wp_dense, x=:final, color=:gray, alpha=0.7, linestyle=:dash) ``` +```@raw html +
Interpolation errors (L2): +``` ```julia plot(wp; x=:L2, color) +plot!(ref_wp_dense, x=:L2, color=:gray, alpha=0.7, linestyle=:dash) +``` +```@raw html +
``` ### Calibration diff --git a/docs/make.jl b/docs/make.jl index 00e753117..5d25d8a69 100644 --- a/docs/make.jl +++ b/docs/make.jl @@ -59,8 +59,8 @@ makedocs( "Pleiades" => "benchmarks/pleiades.md", ], "Differential-Algebraic Equations (DAEs)" => [ - "ROBER" => "benchmarks/rober.md", "OREGO" => "benchmarks/orego.md", + "ROBER" => "benchmarks/rober.md", ], ], "Internals" => [ diff --git a/docs/src/benchmarks/figures/hodgkinhuxley_2_1.svg b/docs/src/benchmarks/figures/hodgkinhuxley_2_1.svg index f1d89cda8..57e779959 100644 --- a/docs/src/benchmarks/figures/hodgkinhuxley_2_1.svg +++ b/docs/src/benchmarks/figures/hodgkinhuxley_2_1.svg @@ -1,444 +1,444 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/src/benchmarks/figures/hodgkinhuxley_3_1.svg b/docs/src/benchmarks/figures/hodgkinhuxley_3_1.svg index 622cb30b3..7427671dd 100644 --- a/docs/src/benchmarks/figures/hodgkinhuxley_3_1.svg +++ b/docs/src/benchmarks/figures/hodgkinhuxley_3_1.svg @@ -1,208 +1,246 @@ - + - + - + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/src/benchmarks/figures/hodgkinhuxley_4_1.svg b/docs/src/benchmarks/figures/hodgkinhuxley_4_1.svg index 574202cb0..30288f79a 100644 --- a/docs/src/benchmarks/figures/hodgkinhuxley_4_1.svg +++ b/docs/src/benchmarks/figures/hodgkinhuxley_4_1.svg @@ -1,204 +1,246 @@ - + - + - + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/src/benchmarks/figures/hodgkinhuxley_5_1.svg b/docs/src/benchmarks/figures/hodgkinhuxley_5_1.svg index f3e57ba7a..c320fa281 100644 --- a/docs/src/benchmarks/figures/hodgkinhuxley_5_1.svg +++ b/docs/src/benchmarks/figures/hodgkinhuxley_5_1.svg @@ -1,390 +1,432 @@ - + - + - + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/src/benchmarks/figures/hodgkinhuxley_6_1.svg b/docs/src/benchmarks/figures/hodgkinhuxley_6_1.svg index e82dac113..da798d5ca 100644 --- a/docs/src/benchmarks/figures/hodgkinhuxley_6_1.svg +++ b/docs/src/benchmarks/figures/hodgkinhuxley_6_1.svg @@ -1,265 +1,265 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/src/benchmarks/figures/hodgkinhuxley_7_1.svg b/docs/src/benchmarks/figures/hodgkinhuxley_7_1.svg index 0168ee42c..3d4fa2459 100644 --- a/docs/src/benchmarks/figures/hodgkinhuxley_7_1.svg +++ b/docs/src/benchmarks/figures/hodgkinhuxley_7_1.svg @@ -1,172 +1,174 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/src/benchmarks/figures/hodgkinhuxley_8_1.svg b/docs/src/benchmarks/figures/hodgkinhuxley_8_1.svg index c852c755d..90d26f609 100644 --- a/docs/src/benchmarks/figures/hodgkinhuxley_8_1.svg +++ b/docs/src/benchmarks/figures/hodgkinhuxley_8_1.svg @@ -1,164 +1,164 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/src/benchmarks/figures/lotkavolterra_10_1.svg b/docs/src/benchmarks/figures/lotkavolterra_10_1.svg index e4d14ab77..dc3d6cda3 100644 --- a/docs/src/benchmarks/figures/lotkavolterra_10_1.svg +++ b/docs/src/benchmarks/figures/lotkavolterra_10_1.svg @@ -1,330 +1,404 @@ - + - + - + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/src/benchmarks/figures/lotkavolterra_11_1.svg b/docs/src/benchmarks/figures/lotkavolterra_11_1.svg index 6c24acc55..018fda313 100644 --- a/docs/src/benchmarks/figures/lotkavolterra_11_1.svg +++ b/docs/src/benchmarks/figures/lotkavolterra_11_1.svg @@ -1,431 +1,431 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/src/benchmarks/figures/lotkavolterra_12_1.svg b/docs/src/benchmarks/figures/lotkavolterra_12_1.svg index 75371f6fa..7d5e59c2d 100644 --- a/docs/src/benchmarks/figures/lotkavolterra_12_1.svg +++ b/docs/src/benchmarks/figures/lotkavolterra_12_1.svg @@ -1,308 +1,308 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/src/benchmarks/figures/lotkavolterra_13_1.svg b/docs/src/benchmarks/figures/lotkavolterra_13_1.svg index 33ab498cb..6581609c6 100644 --- a/docs/src/benchmarks/figures/lotkavolterra_13_1.svg +++ b/docs/src/benchmarks/figures/lotkavolterra_13_1.svg @@ -1,509 +1,509 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/src/benchmarks/figures/lotkavolterra_14_1.svg b/docs/src/benchmarks/figures/lotkavolterra_14_1.svg index 9c2305e46..caebe21b0 100644 --- a/docs/src/benchmarks/figures/lotkavolterra_14_1.svg +++ b/docs/src/benchmarks/figures/lotkavolterra_14_1.svg @@ -1,280 +1,280 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/src/benchmarks/figures/lotkavolterra_15_1.svg b/docs/src/benchmarks/figures/lotkavolterra_15_1.svg index da6cbf463..11b20c0e5 100644 --- a/docs/src/benchmarks/figures/lotkavolterra_15_1.svg +++ b/docs/src/benchmarks/figures/lotkavolterra_15_1.svg @@ -1,515 +1,515 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/src/benchmarks/figures/lotkavolterra_16_1.svg b/docs/src/benchmarks/figures/lotkavolterra_16_1.svg index 8db471f54..663848b0e 100644 --- a/docs/src/benchmarks/figures/lotkavolterra_16_1.svg +++ b/docs/src/benchmarks/figures/lotkavolterra_16_1.svg @@ -1,980 +1,980 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/src/benchmarks/figures/lotkavolterra_2_1.svg b/docs/src/benchmarks/figures/lotkavolterra_2_1.svg index 100812383..aa6df4d06 100644 --- a/docs/src/benchmarks/figures/lotkavolterra_2_1.svg +++ b/docs/src/benchmarks/figures/lotkavolterra_2_1.svg @@ -1,148 +1,148 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/src/benchmarks/figures/lotkavolterra_3_1.svg b/docs/src/benchmarks/figures/lotkavolterra_3_1.svg index e6352a621..a568ed880 100644 --- a/docs/src/benchmarks/figures/lotkavolterra_3_1.svg +++ b/docs/src/benchmarks/figures/lotkavolterra_3_1.svg @@ -1,292 +1,362 @@ - + - + - + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/src/benchmarks/figures/lotkavolterra_4_1.svg b/docs/src/benchmarks/figures/lotkavolterra_4_1.svg index 5465f8458..5de32ddbc 100644 --- a/docs/src/benchmarks/figures/lotkavolterra_4_1.svg +++ b/docs/src/benchmarks/figures/lotkavolterra_4_1.svg @@ -1,290 +1,366 @@ - + - + - + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/src/benchmarks/figures/lotkavolterra_5_1.svg b/docs/src/benchmarks/figures/lotkavolterra_5_1.svg index b8f9a290c..3017f307c 100644 --- a/docs/src/benchmarks/figures/lotkavolterra_5_1.svg +++ b/docs/src/benchmarks/figures/lotkavolterra_5_1.svg @@ -1,292 +1,366 @@ - + - + - + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/src/benchmarks/figures/lotkavolterra_6_1.svg b/docs/src/benchmarks/figures/lotkavolterra_6_1.svg index fa6b63484..bcb36ad23 100644 --- a/docs/src/benchmarks/figures/lotkavolterra_6_1.svg +++ b/docs/src/benchmarks/figures/lotkavolterra_6_1.svg @@ -1,298 +1,380 @@ - + - + - + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/src/benchmarks/figures/lotkavolterra_7_1.svg b/docs/src/benchmarks/figures/lotkavolterra_7_1.svg index 22f374fa8..814d6cc20 100644 --- a/docs/src/benchmarks/figures/lotkavolterra_7_1.svg +++ b/docs/src/benchmarks/figures/lotkavolterra_7_1.svg @@ -1,294 +1,380 @@ - + - + - + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/src/benchmarks/figures/lotkavolterra_8_1.svg b/docs/src/benchmarks/figures/lotkavolterra_8_1.svg index 0fa8061f1..58288a0a3 100644 --- a/docs/src/benchmarks/figures/lotkavolterra_8_1.svg +++ b/docs/src/benchmarks/figures/lotkavolterra_8_1.svg @@ -1,292 +1,380 @@ - + - + - + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/src/benchmarks/figures/lotkavolterra_9_1.svg b/docs/src/benchmarks/figures/lotkavolterra_9_1.svg index 1527b08fc..ae11ee8f3 100644 --- a/docs/src/benchmarks/figures/lotkavolterra_9_1.svg +++ b/docs/src/benchmarks/figures/lotkavolterra_9_1.svg @@ -1,330 +1,404 @@ - + - + - + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/src/benchmarks/figures/orego_2_1.svg b/docs/src/benchmarks/figures/orego_2_1.svg index ea10d69f9..557d9c007 100644 --- a/docs/src/benchmarks/figures/orego_2_1.svg +++ b/docs/src/benchmarks/figures/orego_2_1.svg @@ -1,109 +1,109 @@ - + - - + + - + - - + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/src/benchmarks/figures/orego_3_1.svg b/docs/src/benchmarks/figures/orego_3_1.svg index 2c760b260..a5e3d4f55 100644 --- a/docs/src/benchmarks/figures/orego_3_1.svg +++ b/docs/src/benchmarks/figures/orego_3_1.svg @@ -1,178 +1,256 @@ - + - - + + - + - - + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/src/benchmarks/figures/orego_4_1.svg b/docs/src/benchmarks/figures/orego_4_1.svg index 896b8e967..0f444da8b 100644 --- a/docs/src/benchmarks/figures/orego_4_1.svg +++ b/docs/src/benchmarks/figures/orego_4_1.svg @@ -1,465 +1,335 @@ - + - - + + - + - - + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/src/benchmarks/figures/pleiades_2_1.svg b/docs/src/benchmarks/figures/pleiades_2_1.svg index d6639496d..8f7ff4ddf 100644 --- a/docs/src/benchmarks/figures/pleiades_2_1.svg +++ b/docs/src/benchmarks/figures/pleiades_2_1.svg @@ -1,156 +1,156 @@ - + - - + + - + - - + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/src/benchmarks/figures/pleiades_3_1.svg b/docs/src/benchmarks/figures/pleiades_3_1.svg index 8e64c437b..c77fc7da1 100644 --- a/docs/src/benchmarks/figures/pleiades_3_1.svg +++ b/docs/src/benchmarks/figures/pleiades_3_1.svg @@ -1,323 +1,317 @@ - + - - + + - + - - + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/src/benchmarks/figures/pleiades_4_1.svg b/docs/src/benchmarks/figures/pleiades_4_1.svg index 63facbeb8..40671f86c 100644 --- a/docs/src/benchmarks/figures/pleiades_4_1.svg +++ b/docs/src/benchmarks/figures/pleiades_4_1.svg @@ -1,359 +1,359 @@ - + - - + + - + - - + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/src/benchmarks/figures/rober_2_1.svg b/docs/src/benchmarks/figures/rober_2_1.svg index 05c86cd71..7a6c02c48 100644 --- a/docs/src/benchmarks/figures/rober_2_1.svg +++ b/docs/src/benchmarks/figures/rober_2_1.svg @@ -1,131 +1,131 @@ - + - - + + - + - - + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/src/benchmarks/figures/rober_3_1.svg b/docs/src/benchmarks/figures/rober_3_1.svg index 4c0644d39..67479e88f 100644 --- a/docs/src/benchmarks/figures/rober_3_1.svg +++ b/docs/src/benchmarks/figures/rober_3_1.svg @@ -1,148 +1,210 @@ - + - - + + - + - - + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/src/benchmarks/figures/rober_4_1.svg b/docs/src/benchmarks/figures/rober_4_1.svg index 15bfd70cb..ad26bd764 100644 --- a/docs/src/benchmarks/figures/rober_4_1.svg +++ b/docs/src/benchmarks/figures/rober_4_1.svg @@ -1,489 +1,480 @@ - + - - + + - + - - + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/src/benchmarks/figures/vanderpol_10_1.svg b/docs/src/benchmarks/figures/vanderpol_10_1.svg index 0df21955c..fd4cf8618 100644 --- a/docs/src/benchmarks/figures/vanderpol_10_1.svg +++ b/docs/src/benchmarks/figures/vanderpol_10_1.svg @@ -1,236 +1,291 @@ - + - - + + - + - - + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/src/benchmarks/figures/vanderpol_11_1.svg b/docs/src/benchmarks/figures/vanderpol_11_1.svg index 05fa97b69..b6a82c88d 100644 --- a/docs/src/benchmarks/figures/vanderpol_11_1.svg +++ b/docs/src/benchmarks/figures/vanderpol_11_1.svg @@ -1,220 +1,279 @@ - + - - + + - + - - + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/src/benchmarks/figures/vanderpol_12_1.svg b/docs/src/benchmarks/figures/vanderpol_12_1.svg index 23bf05bf1..4aa8b946b 100644 --- a/docs/src/benchmarks/figures/vanderpol_12_1.svg +++ b/docs/src/benchmarks/figures/vanderpol_12_1.svg @@ -1,347 +1,347 @@ - + - - + + - + - - + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/src/benchmarks/figures/vanderpol_2_1.svg b/docs/src/benchmarks/figures/vanderpol_2_1.svg index f77d37a03..ca8fe5ab5 100644 --- a/docs/src/benchmarks/figures/vanderpol_2_1.svg +++ b/docs/src/benchmarks/figures/vanderpol_2_1.svg @@ -1,110 +1,110 @@ - + - - + + - + - - + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/src/benchmarks/figures/vanderpol_3_1.svg b/docs/src/benchmarks/figures/vanderpol_3_1.svg index eb4a0b157..7e016e357 100644 --- a/docs/src/benchmarks/figures/vanderpol_3_1.svg +++ b/docs/src/benchmarks/figures/vanderpol_3_1.svg @@ -1,191 +1,250 @@ - + - - + + - + - - + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/src/benchmarks/figures/vanderpol_4_1.svg b/docs/src/benchmarks/figures/vanderpol_4_1.svg index ca5b2a45f..59b34af75 100644 --- a/docs/src/benchmarks/figures/vanderpol_4_1.svg +++ b/docs/src/benchmarks/figures/vanderpol_4_1.svg @@ -1,330 +1,393 @@ - + - - + + - + - - + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/src/benchmarks/figures/vanderpol_5_1.svg b/docs/src/benchmarks/figures/vanderpol_5_1.svg index 4c0dc8140..15cfa1468 100644 --- a/docs/src/benchmarks/figures/vanderpol_5_1.svg +++ b/docs/src/benchmarks/figures/vanderpol_5_1.svg @@ -1,352 +1,415 @@ - + - - + + - + - - + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/src/benchmarks/figures/vanderpol_6_1.svg b/docs/src/benchmarks/figures/vanderpol_6_1.svg index b90ea6571..a470aee3f 100644 --- a/docs/src/benchmarks/figures/vanderpol_6_1.svg +++ b/docs/src/benchmarks/figures/vanderpol_6_1.svg @@ -1,374 +1,374 @@ - + - - + + - + - - + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/src/benchmarks/figures/vanderpol_7_1.svg b/docs/src/benchmarks/figures/vanderpol_7_1.svg index 078d0d0f6..2b34ba07a 100644 --- a/docs/src/benchmarks/figures/vanderpol_7_1.svg +++ b/docs/src/benchmarks/figures/vanderpol_7_1.svg @@ -1,491 +1,491 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/src/benchmarks/figures/vanderpol_8_1.svg b/docs/src/benchmarks/figures/vanderpol_8_1.svg index 47230ee44..381fae3ab 100644 --- a/docs/src/benchmarks/figures/vanderpol_8_1.svg +++ b/docs/src/benchmarks/figures/vanderpol_8_1.svg @@ -1,167 +1,167 @@ - + - - + + - + - - + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/src/benchmarks/figures/vanderpol_9_1.svg b/docs/src/benchmarks/figures/vanderpol_9_1.svg index cd5c40cde..4ca40d9dd 100644 --- a/docs/src/benchmarks/figures/vanderpol_9_1.svg +++ b/docs/src/benchmarks/figures/vanderpol_9_1.svg @@ -1,110 +1,110 @@ - + - - + + - + - - + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/src/benchmarks/hodgkinhuxley.md b/docs/src/benchmarks/hodgkinhuxley.md index c190dcbd6..2b60fafa8 100644 --- a/docs/src/benchmarks/hodgkinhuxley.md +++ b/docs/src/benchmarks/hodgkinhuxley.md @@ -131,6 +131,33 @@ wp = WorkPrecisionSet( ) plot(wp, title="Adaptive steps - no smoothing", color=colors) + + +_ref_setups = [ + "Tsit5" => Dict(:alg => Tsit5()) + "Vern7" => Dict(:alg => Vern7()) + "RadauIIA5" => Dict(:alg => RadauIIA5()) +] +ref_labels = first.(_ref_setups) +ref_setups = last.(_ref_setups) +ref_wp_final = WorkPrecisionSet( + prob, abstols ./ 1000, reltols ./ 1000, ref_setups; + names = ref_labels, + appxsol = test_sol, + dense = false, + save_everystep = false, + maxiters = Int(1e7), +) +ref_wp_dense = WorkPrecisionSet( + prob, abstols ./ 1000, reltols ./ 1000, ref_setups; + names = ref_labels, + appxsol = test_sol, + dense = true, + save_everystep = true, + maxiters = Int(1e7), +) + +plot!(ref_wp_final, x=:final, color=:gray, alpha=0.7, linestyle=:dash) ``` ```@raw html @@ -176,6 +203,7 @@ wp = WorkPrecisionSet( ) plot(wp, title="Adaptive steps - with smoothing", color=colors) +plot!(ref_wp_dense, x=:final, color=:gray, alpha=0.7, linestyle=:dash) ``` ```@raw html @@ -193,6 +221,7 @@ plot(wp, title="Adaptive steps - with smoothing", color=colors) ``` ```julia plot(wp, x=:L2, title="Adaptive steps - with smoothing", color=colors) +plot!(ref_wp_dense, x=:L2, color=:gray, alpha=0.7, linestyle=:dash) ``` ```@raw html diff --git a/docs/src/benchmarks/lotkavolterra.md b/docs/src/benchmarks/lotkavolterra.md index 965f9d229..a04c32fa9 100644 --- a/docs/src/benchmarks/lotkavolterra.md +++ b/docs/src/benchmarks/lotkavolterra.md @@ -35,6 +35,14 @@ Plots.theme( margin=5Plots.mm, xticks=10.0 .^ (-16:1:16), ) + +function plot_chisq_interval!(df, q=0.01) + dist = Chisq(df) + low, high, mid = quantile(dist, [q, 1-q])..., mean(dist) + hline!([low, high], linestyle=:dash, color=:black, label="", + fill_between=[high nothing], fillcolor=:green, fillalpha=0.15) + hline!([mid], linestyle=:solid, color=:black, label="") +end ``` ```@raw html @@ -95,6 +103,32 @@ wp = WorkPrecisionSet( ) plot(wp, palette=Plots.palette([:blue, :red], length(_setups))) + +_ref_setups = [ + "Tsit5" => Dict(:alg => Tsit5()) + "Vern7" => Dict(:alg => Vern7()) + "RadauIIA5" => Dict(:alg => RadauIIA5()) +] +ref_labels = first.(_ref_setups) +ref_setups = last.(_ref_setups) +ref_wp_final = WorkPrecisionSet( + prob, abstols, reltols, ref_setups; + names = ref_labels, + appxsol = test_sol, + dense = false, + save_everystep = false, + maxiters = Int(1e7), +) +ref_wp_dense = WorkPrecisionSet( + prob, abstols, reltols, ref_setups; + names = ref_labels, + appxsol = test_sol, + dense = true, + save_everystep = true, + maxiters = Int(1e7), +) + +plot!(ref_wp_final, x=:final, color=:gray, alpha=0.7, linestyle=:dash) ``` ```@raw html @@ -135,6 +169,7 @@ wp = WorkPrecisionSet( ) plot(wp, x=:l2, palette=Plots.palette([:blue, :red], length(_setups))) +plot!(ref_wp_dense, x=:l2, color=:gray, alpha=0.7, linestyle=:dash) ``` ```@raw html @@ -155,6 +190,7 @@ plot(wp, x=:l2, palette=Plots.palette([:blue, :red], length(_setups))) ``` ```julia plot(wp, x=:L2, palette=Plots.palette([:blue, :red], length(_setups))) +plot!(ref_wp_dense, x=:L2, color=:gray, alpha=0.7, linestyle=:dash) ``` ```@raw html @@ -197,6 +233,7 @@ wp = WorkPrecisionSet( ) plot(wp, palette=Plots.palette([:blue, :red], length(_setups))) +plot!(ref_wp_final, x=:final, color=:gray, alpha=0.7, linestyle=:dash) ``` ```@raw html @@ -237,6 +274,7 @@ wp = WorkPrecisionSet( ) plot(wp, x=:l2, palette=Plots.palette([:blue, :red], length(_setups))) +plot!(ref_wp_dense, x=:l2, color=:gray, alpha=0.7, linestyle=:dash) ``` ```@raw html @@ -257,6 +295,7 @@ plot(wp, x=:l2, palette=Plots.palette([:blue, :red], length(_setups))) ``` ```julia plot(wp, x=:L2, palette=Plots.palette([:blue, :red], length(_setups))) +plot!(ref_wp_dense, x=:L2, color=:gray, alpha=0.7, linestyle=:dash) ``` ```@raw html @@ -305,6 +344,7 @@ wp = WorkPrecisionSet( ) plot(wp, color=[1 1 1 1 2 2 2 2]) +plot!(ref_wp_final, x=:final, color=:gray, alpha=0.7, linestyle=:dash) ``` ```@raw html @@ -351,6 +391,7 @@ wp = WorkPrecisionSet( ) plot(wp, x=:L2, color=[1 1 1 1 2 2 2 2]) +plot!(ref_wp_dense, x=:L2, color=:gray, alpha=0.7, linestyle=:dash) ``` ```@raw html @@ -369,15 +410,6 @@ plot(wp, x=:L2, color=[1 1 1 1 2 2 2 2]) ``` ```julia plot(wp, x=:final, y=:chi2_final, color=[1 1 1 1 2 2 2 2], yguide="Chi-squared (final)") - -# Should be distributed according to a Chi-squared distribution: -function plot_chisq_interval!(df, q=0.01) - dist = Chisq(df) - low, high, mid = quantile(dist, [q, 1-q])..., mean(dist) - hline!([low, high], linestyle=:dash, color=:black, label="", - fill_between=[high nothing], fillcolor=:green, fillalpha=0.15) - hline!([mid], linestyle=:solid, color=:black, label="") -end plot_chisq_interval!(2) ``` ```@raw html diff --git a/docs/src/benchmarks/orego.md b/docs/src/benchmarks/orego.md index 422b27630..56cc9b871 100644 --- a/docs/src/benchmarks/orego.md +++ b/docs/src/benchmarks/orego.md @@ -2,7 +2,8 @@ !!! note "Summary" - TODO + - [**The `EK1` is able to solve mass-matrix DAEs.** To achieve low error, use order 4 or higher.](@ref orego_results) + - The order-to-error-tolerance heuristic holds: lower tolerance level ``\rightarrow`` higher order. Adapted from @@ -24,16 +25,20 @@ Plots.theme( margin=5Plots.mm, xticks=10.0 .^ (-16:1:16), ) + +function plot_chisq_interval!(df, q=0.01) + dist = Chisq(df) + low, high, mid = quantile(dist, [q, 1-q])..., mean(dist) + hline!([low, high], linestyle=:dash, color=:black, label="", + fill_between=[high nothing], fillcolor=:green, fillalpha=0.15) + hline!([mid], linestyle=:solid, color=:black, label="") +end ``` ```@raw html ``` - - -### OREGO problem definition - ```@raw html
Code: ``` @@ -66,7 +71,7 @@ plot(ref_sol, title="OREGO Solution", legend=false, xticks=:auto) -## EK1 accross orders +## [`EK1` across orders](@id orego_results) ```@raw html
Code: @@ -77,14 +82,14 @@ SAVE_EVERYSTEP = false; _setups = [ "EK1($order)" => Dict(:alg => EK1(order=order, smooth=DENSE)) - for order in 2:4 + for order in 2:6 ] labels = first.(_setups) setups = last.(_setups) -abstols = 1.0 ./ 10.0 .^ (4:8) -reltols = 1.0 ./ 10.0 .^ (1:5) +abstols = 1.0 ./ 10.0 .^ (6:10) +reltols = 1.0 ./ 10.0 .^ (3:7) wp = WorkPrecisionSet( mmprob, abstols, reltols, setups; @@ -97,6 +102,24 @@ wp = WorkPrecisionSet( ) plot(wp, palette=Plots.palette([:blue, :red], length(_setups))) + + +_ref_setups = [ + "Rosenbrock23" => Dict(:alg => Rosenbrock23()) + "Rodas4P" => Dict(:alg => Rodas4P()) + "RadauIIA" => Dict(:alg => RadauIIA5()) +] +ref_labels = first.(_ref_setups) +ref_setups = last.(_ref_setups) +ref_wp = WorkPrecisionSet( + mmprob, abstols, reltols, ref_setups; + names = ref_labels, + appxsol = ref_sol, + dense = DENSE, + save_everystep = SAVE_EVERYSTEP, + maxiters = Int(1e7), +) +plot!(ref_wp, x=:final, color=:gray, alpha=0.7, linestyle=:dash) ``` ```@raw html
@@ -114,14 +137,6 @@ plot(wp, palette=Plots.palette([:blue, :red], length(_setups))) ```julia plot(wp; x=:final, y=:chi2_final, yguide="Chi-squared (final)", palette=Plots.palette([:blue, :red], length(_setups))) - -function plot_chisq_interval!(df, q=0.01) - dist = Chisq(df) - low, high, mid = quantile(dist, [q, 1-q])..., mean(dist) - hline!([low, high], linestyle=:dash, color=:black, label="", - fill_between=[high nothing], fillcolor=:green, fillalpha=0.15) - hline!([mid], linestyle=:solid, color=:black, label="") -end plot_chisq_interval!(3) ``` ```@raw html @@ -182,7 +197,7 @@ Status `~/.julia/dev/ProbNumDiffEq/benchmarks/Project.toml` [7f56f5a3] LSODA v0.7.5 [e6f89c97] LoggingExtras v1.0.3 [e2752cbe] MATLABDiffEq v1.2.0 - [961ee093] ModelingToolkit v8.73.0 +⌃ [961ee093] ModelingToolkit v8.73.0 [54ca160b] ODEInterface v0.5.0 [09606e27] ODEInterfaceDiffEq v3.13.3 [1dea7af3] OrdinaryDiffEq v6.59.1 @@ -196,6 +211,7 @@ Status `~/.julia/dev/ProbNumDiffEq/benchmarks/Project.toml` [c3572dad] Sundials v4.20.1 [44d3d7a6] Weave v0.10.12 [0518478a] deSolveDiffEq v0.1.1 +Info Packages marked with ⌃ have new versions available and may be upgradable. ``` ```@raw html @@ -246,7 +262,7 @@ Status `~/.julia/dev/ProbNumDiffEq/benchmarks/Manifest.toml` [a33af91c] CompositionsBase v0.1.2 [2569d6c7] ConcreteStructs v0.2.3 [f0e56b4a] ConcurrentUtilities v2.3.0 - [8f4d0f93] Conda v1.9.1 +⌃ [8f4d0f93] Conda v1.9.1 [187b0558] ConstructionBase v1.5.4 [d38c429a] Contour v0.6.2 [587fd27a] CovarianceEstimation v0.2.9 @@ -345,7 +361,7 @@ Status `~/.julia/dev/ProbNumDiffEq/benchmarks/Manifest.toml` [739be429] MbedTLS v1.1.8 [442fdcdd] Measures v0.3.2 [e1d29d7a] Missings v1.1.0 - [961ee093] ModelingToolkit v8.73.0 +⌃ [961ee093] ModelingToolkit v8.73.0 [46d2c3a1] MuladdMacro v0.2.4 [102ac46a] MultivariatePolynomials v0.5.2 [ffc61752] Mustache v1.0.19 @@ -389,7 +405,7 @@ Status `~/.julia/dev/ProbNumDiffEq/benchmarks/Manifest.toml` [33c8b6b6] ProgressLogging v0.1.4 [438e738f] PyCall v1.96.2 [1fd47b50] QuadGK v2.9.1 - [8a4e6c94] QuasiMonteCarlo v0.3.2 +⌃ [8a4e6c94] QuasiMonteCarlo v0.3.2 [6f49c342] RCall v0.13.18 [74087812] Random123 v1.6.1 [fb686558] RandomExtensions v0.4.4 @@ -425,7 +441,7 @@ Status `~/.julia/dev/ProbNumDiffEq/benchmarks/Manifest.toml` [ed01d8cd] Sobol v1.5.0 [b85f4697] SoftGlobalScope v1.1.0 [a2af1166] SortingAlgorithms v1.2.0 - [47a9eef4] SparseDiffTools v2.11.0 +⌃ [47a9eef4] SparseDiffTools v2.11.0 [e56a9233] Sparspak v0.3.9 [276daf66] SpecialFunctions v2.3.1 [928aab9d] SpecialMatrices v3.0.0 @@ -610,7 +626,7 @@ Status `~/.julia/dev/ProbNumDiffEq/benchmarks/Manifest.toml` [8e850b90] libblastrampoline_jll v5.8.0+0 [8e850ede] nghttp2_jll v1.52.0+1 [3f19e933] p7zip_jll v17.4.0+0 -Info Packages marked with ⌅ have new versions available but compatibility constraints restrict them from upgrading. To see why use `status --outdated -m` +Info Packages marked with ⌃ and ⌅ have new versions available. Those with ⌃ may be upgradable, but those with ⌅ are restricted by compatibility constraints from upgrading. To see why use `status --outdated -m` ``` ```@raw html diff --git a/docs/src/benchmarks/pleiades.md b/docs/src/benchmarks/pleiades.md index 48ac5b92e..1a10ebd50 100644 --- a/docs/src/benchmarks/pleiades.md +++ b/docs/src/benchmarks/pleiades.md @@ -3,8 +3,8 @@ !!! note "Summary" Pleiades is a medium-dimensional, non-stiff, second-order ODE. We see that: - - The `EK0` is _much_ faster than the `EK1` as it scales linearly with the ODE dimension. - - If the problem is a second-order ODE, _implement it as a second-order ODE_! + - [**The `EK0` is _much_ faster than the `EK1` as it scales linearly with the ODE dimension.**](@ref pleiades_results) + - [**If the problem is a second-order ODE, _implement it as a second-order ODE_!**](@ref pleiades_results) ```@raw html @@ -23,16 +23,20 @@ Plots.theme( margin=5Plots.mm, xticks=10.0 .^ (-16:1:16), ) + +function plot_chisq_interval!(df, q=0.01) + dist = Chisq(df) + low, high, mid = quantile(dist, [q, 1-q])..., mean(dist) + hline!([low, high], linestyle=:dash, color=:black, label="", + fill_between=[high nothing], fillcolor=:green, fillalpha=0.15) + hline!([mid], linestyle=:solid, color=:black, label="") +end ``` ```@raw html
``` - - -### Pleiades problem definition - ```@raw html
Code: ``` @@ -102,7 +106,7 @@ scatter!(ref_sol1.u[end][15:21], ref_sol1.u[end][22:end], color=1:7) -## EK0 vs EK1 & first-order vs. second-order +## [`EK0` vs `EK1` & first-order vs. second-order](@id pleiades_results) ```@raw html
Code: ``` @@ -119,9 +123,6 @@ _setups = [ "EK1(5) (1st order ODE)" => Dict(:alg => EK1(order=5, smooth=DENSE), :prob_choice => 1) "EK1(4) (2nd order ODE)" => Dict(:alg => EK1(order=4, smooth=DENSE), :prob_choice => 2) "EK1(6) (2nd order ODE)" => Dict(:alg => EK1(order=6, smooth=DENSE), :prob_choice => 2) - "Classic: Tsit5" => Dict(:alg => Tsit5(), :prob_choice => 1) - "Classic: RadauIIA5" => Dict(:alg => RadauIIA5(), :prob_choice => 1) - "Classic: DPRKN6" => Dict(:alg => DPRKN6(), :prob_choice => 2) ] labels = first.(_setups) @@ -140,11 +141,26 @@ wp = WorkPrecisionSet( maxiters = Int(1e7), ) -plot(wp, - color=[1 1 1 1 2 2 2 2 3 3 3], - linestyle=[:solid :solid :dash :dash :solid :solid :dash :dash :solid :solid :dash], - alpha=[1 1 1 1 1 1 1 1 0.5 0.5 0.5], +color = [1 1 1 1 2 2 2 2] +linestyle = [:solid :solid :dash :dash :solid :solid :dash :dash] +plot(wp; color, linestyle) + +_ref_setups = [ + "Classic: Tsit5" => Dict(:alg => Tsit5(), :prob_choice => 1) + "Classic: RadauIIA5" => Dict(:alg => RadauIIA5(), :prob_choice => 1) + "Classic: DPRKN6" => Dict(:alg => DPRKN6(), :prob_choice => 2) +] +ref_labels = first.(_ref_setups) +ref_setups = last.(_ref_setups) +ref_wp = WorkPrecisionSet( + probs, abstols ./ 1000, reltols ./ 1000, ref_setups; + names = ref_labels, + appxsol = ref_sols, + dense = false, + save_everystep = false, + maxiters = Int(1e7), ) +plot!(ref_wp, x=:final, color=:gray, alpha=0.7, linestyle=[:solid :solid :dash]) ``` ```@raw html
@@ -160,20 +176,7 @@ plot(wp,
Code: ``` ```julia -# We can only evaluate calibration for the PN solvers -_wp = WorkPrecisionSet(wp.wps[1:end-3], wp.N-3, wp.abstols, wp.reltols, wp.prob, wp.setups[1:end-3], - wp.names[1:end-3], wp.error_estimate, wp.numruns) -plot(_wp; x=:final, y=:chi2_final, - color=[1 1 1 1 2 2 2 2], - linestyle=[:solid :solid :dash :dash :solid :solid :dash :dash], -) -function plot_chisq_interval!(df, q=0.01) - dist = Chisq(df) - low, high, mid = quantile(dist, [q, 1-q])..., mean(dist) - hline!([low, high], linestyle=:dash, color=:black, label="", - fill_between=[high nothing], fillcolor=:green, fillalpha=0.15) - hline!([mid], linestyle=:solid, color=:black, label="") -end +plot(wp; x=:final, y=:chi2_final, color, linestyle) plot_chisq_interval!(length(u0)*2) ``` ```@raw html @@ -234,7 +237,7 @@ Status `~/.julia/dev/ProbNumDiffEq/benchmarks/Project.toml` [7f56f5a3] LSODA v0.7.5 [e6f89c97] LoggingExtras v1.0.3 [e2752cbe] MATLABDiffEq v1.2.0 - [961ee093] ModelingToolkit v8.73.0 +⌃ [961ee093] ModelingToolkit v8.73.0 [54ca160b] ODEInterface v0.5.0 [09606e27] ODEInterfaceDiffEq v3.13.3 [1dea7af3] OrdinaryDiffEq v6.59.1 @@ -248,6 +251,7 @@ Status `~/.julia/dev/ProbNumDiffEq/benchmarks/Project.toml` [c3572dad] Sundials v4.20.1 [44d3d7a6] Weave v0.10.12 [0518478a] deSolveDiffEq v0.1.1 +Info Packages marked with ⌃ have new versions available and may be upgradable. ``` ```@raw html @@ -298,7 +302,7 @@ Status `~/.julia/dev/ProbNumDiffEq/benchmarks/Manifest.toml` [a33af91c] CompositionsBase v0.1.2 [2569d6c7] ConcreteStructs v0.2.3 [f0e56b4a] ConcurrentUtilities v2.3.0 - [8f4d0f93] Conda v1.9.1 +⌃ [8f4d0f93] Conda v1.9.1 [187b0558] ConstructionBase v1.5.4 [d38c429a] Contour v0.6.2 [587fd27a] CovarianceEstimation v0.2.9 @@ -397,7 +401,7 @@ Status `~/.julia/dev/ProbNumDiffEq/benchmarks/Manifest.toml` [739be429] MbedTLS v1.1.8 [442fdcdd] Measures v0.3.2 [e1d29d7a] Missings v1.1.0 - [961ee093] ModelingToolkit v8.73.0 +⌃ [961ee093] ModelingToolkit v8.73.0 [46d2c3a1] MuladdMacro v0.2.4 [102ac46a] MultivariatePolynomials v0.5.2 [ffc61752] Mustache v1.0.19 @@ -441,7 +445,7 @@ Status `~/.julia/dev/ProbNumDiffEq/benchmarks/Manifest.toml` [33c8b6b6] ProgressLogging v0.1.4 [438e738f] PyCall v1.96.2 [1fd47b50] QuadGK v2.9.1 - [8a4e6c94] QuasiMonteCarlo v0.3.2 +⌃ [8a4e6c94] QuasiMonteCarlo v0.3.2 [6f49c342] RCall v0.13.18 [74087812] Random123 v1.6.1 [fb686558] RandomExtensions v0.4.4 @@ -477,7 +481,7 @@ Status `~/.julia/dev/ProbNumDiffEq/benchmarks/Manifest.toml` [ed01d8cd] Sobol v1.5.0 [b85f4697] SoftGlobalScope v1.1.0 [a2af1166] SortingAlgorithms v1.2.0 - [47a9eef4] SparseDiffTools v2.11.0 +⌃ [47a9eef4] SparseDiffTools v2.11.0 [e56a9233] Sparspak v0.3.9 [276daf66] SpecialFunctions v2.3.1 [928aab9d] SpecialMatrices v3.0.0 @@ -662,7 +666,7 @@ Status `~/.julia/dev/ProbNumDiffEq/benchmarks/Manifest.toml` [8e850b90] libblastrampoline_jll v5.8.0+0 [8e850ede] nghttp2_jll v1.52.0+1 [3f19e933] p7zip_jll v17.4.0+0 -Info Packages marked with ⌅ have new versions available but compatibility constraints restrict them from upgrading. To see why use `status --outdated -m` +Info Packages marked with ⌃ and ⌅ have new versions available. Those with ⌃ may be upgradable, but those with ⌅ are restricted by compatibility constraints from upgrading. To see why use `status --outdated -m` ``` ```@raw html diff --git a/docs/src/benchmarks/rober.md b/docs/src/benchmarks/rober.md index d6e7384a4..97f454674 100644 --- a/docs/src/benchmarks/rober.md +++ b/docs/src/benchmarks/rober.md @@ -2,8 +2,8 @@ !!! note "Summary" - - The `EK1` can solve mass-matrix DAEs! But it only really works well for low tolerances. - - Order 3 seems to work well here. But the order-to-error-tolerance heuristic should in principle still hold: lower tolerance level ``\rightarrow`` higher order. + - [**The `EK1` can solve mass-matrix DAEs.** But for this problem, it only works well for low tolerances.](@ref rober_results) + - For this problem it only works well for low tolerances, but the order-to-error-tolerance heuristic should in principle still hold: lower tolerance level ``\rightarrow`` higher order. Adapted from @@ -25,16 +25,20 @@ Plots.theme( margin=5Plots.mm, xticks=10.0 .^ (-16:1:16), ) + +function plot_chisq_interval!(df, q=0.01) + dist = Chisq(df) + low, high, mid = quantile(dist, [q, 1-q])..., mean(dist) + hline!([low, high], linestyle=:dash, color=:black, label="", + fill_between=[high nothing], fillcolor=:green, fillalpha=0.15) + hline!([mid], linestyle=:solid, color=:black, label="") +end ``` ```@raw html
``` - - -### ROBER problem definition - ```@raw html
Code: ``` @@ -63,7 +67,7 @@ plot(ref_sol, idxs=[y₁,y₂,y₃], title="ROBER Solution", legend=false, ylims -## EK1 across orders +## [`EK1` across orders](@id rober_results) ```@raw html
Code: @@ -80,8 +84,8 @@ _setups = [ labels = first.(_setups) setups = last.(_setups) -abstols = 1.0 ./ 10.0 .^ (4:8) -reltols = 1.0 ./ 10.0 .^ (1:5) +abstols = 1.0 ./ 10.0 .^ (4:7) +reltols = 1.0 ./ 10.0 .^ (1:4) wp = WorkPrecisionSet( mmprob, abstols, reltols, setups; @@ -94,6 +98,24 @@ wp = WorkPrecisionSet( ) plot(wp, palette=Plots.palette([:blue, :red], length(_setups))) + + +_ref_setups = [ + "Rosenbrock23" => Dict(:alg => Rosenbrock23()) + "Rodas4P" => Dict(:alg => Rodas4P()) + "RadauIIA" => Dict(:alg => RadauIIA5()) +] +ref_labels = first.(_ref_setups) +ref_setups = last.(_ref_setups) +ref_wp = WorkPrecisionSet( + mmprob, abstols ./ 10000, reltols ./ 10000, ref_setups; + names = ref_labels, + appxsol = ref_sol, + dense = DENSE, + save_everystep = SAVE_EVERYSTEP, + maxiters = Int(1e7), +) +plot!(ref_wp, x=:final, color=:gray, alpha=0.7, linestyle=:dash) ``` ```@raw html
@@ -111,14 +133,6 @@ plot(wp, palette=Plots.palette([:blue, :red], length(_setups))) ```julia plot(wp; x=:final, y=:chi2_final, yguide="Chi-squared (final)", palette=Plots.palette([:blue, :red], length(_setups))) - -function plot_chisq_interval!(df, q=0.01) - dist = Chisq(df) - low, high, mid = quantile(dist, [q, 1-q])..., mean(dist) - hline!([low, high], linestyle=:dash, color=:black, label="", - fill_between=[high nothing], fillcolor=:green, fillalpha=0.15) - hline!([mid], linestyle=:solid, color=:black, label="") -end plot_chisq_interval!(3) ``` ```@raw html @@ -179,7 +193,7 @@ Status `~/.julia/dev/ProbNumDiffEq/benchmarks/Project.toml` [7f56f5a3] LSODA v0.7.5 [e6f89c97] LoggingExtras v1.0.3 [e2752cbe] MATLABDiffEq v1.2.0 - [961ee093] ModelingToolkit v8.73.0 +⌃ [961ee093] ModelingToolkit v8.73.0 [54ca160b] ODEInterface v0.5.0 [09606e27] ODEInterfaceDiffEq v3.13.3 [1dea7af3] OrdinaryDiffEq v6.59.1 @@ -193,6 +207,7 @@ Status `~/.julia/dev/ProbNumDiffEq/benchmarks/Project.toml` [c3572dad] Sundials v4.20.1 [44d3d7a6] Weave v0.10.12 [0518478a] deSolveDiffEq v0.1.1 +Info Packages marked with ⌃ have new versions available and may be upgradable. ``` ```@raw html @@ -243,7 +258,7 @@ Status `~/.julia/dev/ProbNumDiffEq/benchmarks/Manifest.toml` [a33af91c] CompositionsBase v0.1.2 [2569d6c7] ConcreteStructs v0.2.3 [f0e56b4a] ConcurrentUtilities v2.3.0 - [8f4d0f93] Conda v1.9.1 +⌃ [8f4d0f93] Conda v1.9.1 [187b0558] ConstructionBase v1.5.4 [d38c429a] Contour v0.6.2 [587fd27a] CovarianceEstimation v0.2.9 @@ -342,7 +357,7 @@ Status `~/.julia/dev/ProbNumDiffEq/benchmarks/Manifest.toml` [739be429] MbedTLS v1.1.8 [442fdcdd] Measures v0.3.2 [e1d29d7a] Missings v1.1.0 - [961ee093] ModelingToolkit v8.73.0 +⌃ [961ee093] ModelingToolkit v8.73.0 [46d2c3a1] MuladdMacro v0.2.4 [102ac46a] MultivariatePolynomials v0.5.2 [ffc61752] Mustache v1.0.19 @@ -386,7 +401,7 @@ Status `~/.julia/dev/ProbNumDiffEq/benchmarks/Manifest.toml` [33c8b6b6] ProgressLogging v0.1.4 [438e738f] PyCall v1.96.2 [1fd47b50] QuadGK v2.9.1 - [8a4e6c94] QuasiMonteCarlo v0.3.2 +⌃ [8a4e6c94] QuasiMonteCarlo v0.3.2 [6f49c342] RCall v0.13.18 [74087812] Random123 v1.6.1 [fb686558] RandomExtensions v0.4.4 @@ -422,7 +437,7 @@ Status `~/.julia/dev/ProbNumDiffEq/benchmarks/Manifest.toml` [ed01d8cd] Sobol v1.5.0 [b85f4697] SoftGlobalScope v1.1.0 [a2af1166] SortingAlgorithms v1.2.0 - [47a9eef4] SparseDiffTools v2.11.0 +⌃ [47a9eef4] SparseDiffTools v2.11.0 [e56a9233] Sparspak v0.3.9 [276daf66] SpecialFunctions v2.3.1 [928aab9d] SpecialMatrices v3.0.0 @@ -607,9 +622,10 @@ Status `~/.julia/dev/ProbNumDiffEq/benchmarks/Manifest.toml` [8e850b90] libblastrampoline_jll v5.8.0+0 [8e850ede] nghttp2_jll v1.52.0+1 [3f19e933] p7zip_jll v17.4.0+0 -Info Packages marked with ⌅ have new versions available but compatibility constraints restrict them from upgrading. To see why use `status --outdated -m` +Info Packages marked with ⌃ and ⌅ have new versions available. Those with ⌃ may be upgradable, but those with ⌅ are restricted by compatibility constraints from upgrading. To see why use `status --outdated -m` ``` ```@raw html
``` + diff --git a/docs/src/benchmarks/vanderpol.md b/docs/src/benchmarks/vanderpol.md index 2cd65e261..16cae70bd 100644 --- a/docs/src/benchmarks/vanderpol.md +++ b/docs/src/benchmarks/vanderpol.md @@ -3,8 +3,10 @@ !!! note "Summary" Van der Pol is a low-dimensional, stiff, second-order ODE. We see that: - - The `EK1` is very well able to solve stiff problems. - - Since Van der Pol is actually a second-order ODE, _do solve it as a second-order ODE_. + - [**The `EK1` is very well able to solve stiff problems.**](@ref vdp_main_results) + - [**Since Van der Pol is actually a second-order ODE, _do solve it as a second-order ODE_.**](@ref vdp_second_order) + - [**Use the `TaylorInit` or `ForwardDiffInit` initialization.**](@ref vdp_initialization) + While `SimpleInit` works well for lower orders, it fails for higher orders. And since Taylor-mode initialization is fast and works well, there is no reason not to use it. ```@raw html @@ -22,16 +24,20 @@ Plots.theme( margin=5Plots.mm, xticks = 10.0 .^ (-16:1:16) ) + +function plot_chisq_interval!(df, q=0.01) + dist = Chisq(df) + low, high, mid = quantile(dist, [q, 1-q])..., mean(dist) + hline!([low, high], linestyle=:dash, color=:black, label="", + fill_between=[high nothing], fillcolor=:green, fillalpha=0.15) + hline!([mid], linestyle=:solid, color=:black, label="") +end ``` ```@raw html
``` - - -### Van der Pol problem definition - ```@raw html
Code: ``` @@ -56,11 +62,8 @@ plot(test_sol, title="Van der Pol Solution", legend=false, ylims=(-5, 5), xticks -## EK1 across orders - -### Final value only +## [`EK1` across orders](@id vdp_main_results) -This does not require smoothing or saving intermediate values. ```@raw html
Code: ``` @@ -90,6 +93,32 @@ wp = WorkPrecisionSet( ) plot(wp, palette=Plots.palette([:blue, :red], length(_setups))) + +_ref_setups = [ + "Rosenbrock23" => Dict(:alg => Rosenbrock23()) + "Rodas4P" => Dict(:alg => Rodas4P()) + "RadauIIA5" => Dict(:alg => RadauIIA5()) +] +ref_labels = first.(_ref_setups) +ref_setups = last.(_ref_setups) +ref_wp_final = WorkPrecisionSet( + prob, abstols, reltols, ref_setups; + names = ref_labels, + appxsol = test_sol, + dense = false, + save_everystep = false, + maxiters = Int(1e7), +) +ref_wp_dense = WorkPrecisionSet( + prob, abstols, reltols, ref_setups; + names = ref_labels, + appxsol = test_sol, + dense = true, + save_everystep = true, + maxiters = Int(1e7), +) + +plot!(ref_wp_final, x=:final, color=:gray, alpha=0.7, linestyle=:dash) ``` ```@raw html
@@ -99,9 +128,9 @@ plot(wp, palette=Plots.palette([:blue, :red], length(_setups))) -### Full trajectory - -This does require smoothing or saving intermediate values. +```@raw html +
Discrete time-series errors (l2): +``` ```@raw html
Code: ``` @@ -131,6 +160,7 @@ wp = WorkPrecisionSet( ) plot(wp, x=:l2, palette=Plots.palette([:blue, :red], length(_setups))) +plot!(ref_wp_dense, x=:l2, color=:gray, alpha=0.7, linestyle=:dash) ``` ```@raw html
@@ -139,13 +169,19 @@ plot(wp, x=:l2, palette=Plots.palette([:blue, :red], length(_setups))) ![](figures/vanderpol_4_1.svg) +```@raw html +
+``` -Interpolation errors: +```@raw html +
Interpolation errors (L2): +``` ```@raw html
Code: ``` ```julia plot(wp, x=:L2, palette=Plots.palette([:blue, :red], length(_setups))) +plot!(ref_wp_dense, x=:L2, color=:gray, alpha=0.7, linestyle=:dash) ``` ```@raw html
@@ -154,6 +190,9 @@ plot(wp, x=:L2, palette=Plots.palette([:blue, :red], length(_setups))) ![](figures/vanderpol_5_1.svg) +```@raw html +
+``` ## Calibration ```@raw html @@ -162,15 +201,6 @@ plot(wp, x=:L2, palette=Plots.palette([:blue, :red], length(_setups))) ```julia plot(wp, x=:final, y=:chi2_final, yguide="Chi-squared (final)", palette=Plots.palette([:blue, :red], length(_setups))) - -# Should be distributed according to a Chi-squared distribution: -function plot_chisq_interval!(df, q=0.01) - dist = Chisq(df) - low, high, mid = quantile(dist, [q, 1-q])..., mean(dist) - hline!([low, high], linestyle=:dash, color=:black, label="", - fill_between=[high nothing], fillcolor=:green, fillalpha=0.15) - hline!([mid], linestyle=:solid, color=:black, label="") -end plot_chisq_interval!(2) ``` ```@raw html @@ -181,7 +211,7 @@ plot_chisq_interval!(2) -## Comparison of the different initialization schemes +## [Comparison of the different initialization schemes](@id vdp_initialization) ```@raw html
Code: @@ -277,7 +307,7 @@ plot(wp, palette=Plots.palette([:blue, :red], length(_setups)), xticks = 10.0 .^ -## Solving the first- vs second-order ODE +## [Solving the first- vs second-order ODE](@id vdp_second_order) ```@raw html
Code: @@ -293,13 +323,13 @@ du0 = [0.0] prob2 = SecondOrderODEProblem(vanderpol2!, du0, u0, tspan, p) test_sol2 = solve(prob2, RadauIIA5(), abstol=1/10^14, reltol=1/10^14) -plot(test_sol2, title="Van der Pol Solution (2nd order)", legend=false, ylims=(-5, 5), xticks=:auto) +# plot(test_sol2, title="Van der Pol Solution (2nd order)", legend=false, ylims=(-5, 5), xticks=:auto) +nothing ``` ```@raw html
``` -![](figures/vanderpol_9_1.svg) ```@raw html
Code: @@ -337,6 +367,7 @@ wp = WorkPrecisionSet( color = [1 1 1 1 2 2 2 2] plot(wp; x=:final, color) +plot!(ref_wp_dense, x=:final, color=:gray, alpha=0.7, linestyle=:dash) ``` ```@raw html
@@ -344,11 +375,17 @@ plot(wp; x=:final, color) ![](figures/vanderpol_10_1.svg) + + +```@raw html +
Interpolation errors (L2): +``` ```@raw html
Code: ``` ```julia plot(wp; x=:L2, color) +plot!(ref_wp_dense, x=:L2, color=:gray, alpha=0.7, linestyle=:dash) ``` ```@raw html
@@ -357,6 +394,9 @@ plot(wp; x=:L2, color) ![](figures/vanderpol_11_1.svg) +```@raw html +
+``` ### Calibration @@ -425,7 +465,7 @@ Status `~/.julia/dev/ProbNumDiffEq/benchmarks/Project.toml` [7f56f5a3] LSODA v0.7.5 [e6f89c97] LoggingExtras v1.0.3 [e2752cbe] MATLABDiffEq v1.2.0 - [961ee093] ModelingToolkit v8.73.0 +⌃ [961ee093] ModelingToolkit v8.73.0 [54ca160b] ODEInterface v0.5.0 [09606e27] ODEInterfaceDiffEq v3.13.3 [1dea7af3] OrdinaryDiffEq v6.59.1 @@ -439,6 +479,7 @@ Status `~/.julia/dev/ProbNumDiffEq/benchmarks/Project.toml` [c3572dad] Sundials v4.20.1 [44d3d7a6] Weave v0.10.12 [0518478a] deSolveDiffEq v0.1.1 +Info Packages marked with ⌃ have new versions available and may be upgradable. ``` ```@raw html @@ -489,7 +530,7 @@ Status `~/.julia/dev/ProbNumDiffEq/benchmarks/Manifest.toml` [a33af91c] CompositionsBase v0.1.2 [2569d6c7] ConcreteStructs v0.2.3 [f0e56b4a] ConcurrentUtilities v2.3.0 - [8f4d0f93] Conda v1.9.1 +⌃ [8f4d0f93] Conda v1.9.1 [187b0558] ConstructionBase v1.5.4 [d38c429a] Contour v0.6.2 [587fd27a] CovarianceEstimation v0.2.9 @@ -588,7 +629,7 @@ Status `~/.julia/dev/ProbNumDiffEq/benchmarks/Manifest.toml` [739be429] MbedTLS v1.1.8 [442fdcdd] Measures v0.3.2 [e1d29d7a] Missings v1.1.0 - [961ee093] ModelingToolkit v8.73.0 +⌃ [961ee093] ModelingToolkit v8.73.0 [46d2c3a1] MuladdMacro v0.2.4 [102ac46a] MultivariatePolynomials v0.5.2 [ffc61752] Mustache v1.0.19 @@ -632,7 +673,7 @@ Status `~/.julia/dev/ProbNumDiffEq/benchmarks/Manifest.toml` [33c8b6b6] ProgressLogging v0.1.4 [438e738f] PyCall v1.96.2 [1fd47b50] QuadGK v2.9.1 - [8a4e6c94] QuasiMonteCarlo v0.3.2 +⌃ [8a4e6c94] QuasiMonteCarlo v0.3.2 [6f49c342] RCall v0.13.18 [74087812] Random123 v1.6.1 [fb686558] RandomExtensions v0.4.4 @@ -668,7 +709,7 @@ Status `~/.julia/dev/ProbNumDiffEq/benchmarks/Manifest.toml` [ed01d8cd] Sobol v1.5.0 [b85f4697] SoftGlobalScope v1.1.0 [a2af1166] SortingAlgorithms v1.2.0 - [47a9eef4] SparseDiffTools v2.11.0 +⌃ [47a9eef4] SparseDiffTools v2.11.0 [e56a9233] Sparspak v0.3.9 [276daf66] SpecialFunctions v2.3.1 [928aab9d] SpecialMatrices v3.0.0 @@ -853,9 +894,10 @@ Status `~/.julia/dev/ProbNumDiffEq/benchmarks/Manifest.toml` [8e850b90] libblastrampoline_jll v5.8.0+0 [8e850ede] nghttp2_jll v1.52.0+1 [3f19e933] p7zip_jll v17.4.0+0 -Info Packages marked with ⌅ have new versions available but compatibility constraints restrict them from upgrading. To see why use `status --outdated -m` +Info Packages marked with ⌃ and ⌅ have new versions available. Those with ⌃ may be upgradable, but those with ⌅ are restricted by compatibility constraints from upgrading. To see why use `status --outdated -m` ``` ```@raw html
``` +