Skip to content

Commit a4c75fc

Browse files
authored
Merge pull request #970 from SciML/docs___update___simulation_introduction
Simulation introduction doc page update
2 parents 33254f3 + d42214e commit a4c75fc

File tree

3 files changed

+64
-3
lines changed

3 files changed

+64
-3
lines changed

docs/Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ ModelingToolkit = "9.16.0"
5555
NonlinearSolve = "3.12"
5656
Optim = "1.9"
5757
Optimization = "3.25"
58-
OptimizationBBO = "0.2.1"
58+
OptimizationBBO = "0.3"
5959
OptimizationNLopt = "0.2.1"
6060
OptimizationOptimJL = "0.3.1"
6161
OptimizationOptimisers = "0.2.1"

docs/src/inverse_problems/optimization_ode_param_fitting.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ nothing # hide
170170
```
171171

172172
---
173-
## [Citation](@id structural_identifiability_citation)
173+
## [Citation](@id optimization_parameter_fitting_citation)
174174
If you use this functionality in your research, please cite the following paper to support the authors of the Optimization.jl package:
175175
```
176176
@software{vaibhav_kumar_dixit_2023_7738525,

docs/src/model_simulation/simulation_introduction.md

Lines changed: 62 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,17 @@ sol = solve(sprob, STrapezoid(); seed = 12345, abstol = 1e-1, reltol = 1e-1) # h
222222
plot(sol)
223223
```
224224

225+
### [SDE simulations with fixed time stepping](@id simulation_intro_SDEs_fixed_dt)
226+
StochasticDiffEq implements SDE solvers with adaptive time stepping. However, when using a non-adaptive solver (or using the `adaptive = false` argument to turn adaptive time stepping off for an adaptive solver) a fixed time step `dt` must be designated. Here we simulate the same `SDEProblem` which we struggled with previously, but using the non-adaptive [`EM`](https://en.wikipedia.org/wiki/Euler%E2%80%93Maruyama_method) solver and a fixed `dt`:
227+
```@example simulation_intro_sde
228+
sol = solve(sprob, EM(); dt = 0.001)
229+
sol = solve(sprob, EM(); dt = 0.001, seed = 1234567) # hide
230+
plot(sol)
231+
```
232+
We note that this approach also enables us to successfully simulate the SDE we previously struggled with.
233+
234+
Generally, using a smaller fixed `dt` provides a more exact simulation, but also increases simulation runtime.
235+
225236
### [Scaling the noise in the chemical Langevin equation](@id simulation_intro_SDEs_noise_saling)
226237
When using the CLE to generate SDEs from a CRN, it can sometimes be desirable to scale the magnitude of the noise. This can be done by introducing a *noise scaling term*, with each noise term generated by the CLE being multiplied with this term. A noise scaling term can be set using the `@default_noise_scaling` option:
227238
```@example simulation_intro_sde
@@ -336,4 +347,54 @@ circadian_model = @reaction_network begin
336347
d, P --> 0
337348
end
338349
```
339-
This type of model will generate so called *variable rate jumps*. Simulation of such model is non-trivial (and Catalyst currently lacks a good interface for this). A detailed description of how to carry out jump simulations for models with time-dependant rates can be found [here](https://docs.sciml.ai/JumpProcesses/stable/tutorials/simple_poisson_process/#VariableRateJumps-for-processes-that-are-not-constant-between-jumps).
350+
This type of model will generate so called *variable rate jumps*. Simulation of such model is non-trivial (and Catalyst currently lacks a good interface for this). A detailed description of how to carry out jump simulations for models with time-dependant rates can be found [here](https://docs.sciml.ai/JumpProcesses/stable/tutorials/simple_poisson_process/#VariableRateJumps-for-processes-that-are-not-constant-between-jumps).
351+
352+
353+
---
354+
## [Citation](@id simulation_intro_citation)
355+
When you simulate Catalyst models in your research, please cite the corresponding paper(s) to support the simulation package authors. For ODE simulations:
356+
```
357+
@article{DifferentialEquations.jl-2017,
358+
author = {Rackauckas, Christopher and Nie, Qing},
359+
doi = {10.5334/jors.151},
360+
journal = {The Journal of Open Research Software},
361+
keywords = {Applied Mathematics},
362+
note = {Exported from https://app.dimensions.ai on 2019/05/05},
363+
number = {1},
364+
pages = {},
365+
title = {DifferentialEquations.jl – A Performant and Feature-Rich Ecosystem for Solving Differential Equations in Julia},
366+
url = {https://app.dimensions.ai/details/publication/pub.1085583166 and http://openresearchsoftware.metajnl.com/articles/10.5334/jors.151/galley/245/download/},
367+
volume = {5},
368+
year = {2017}
369+
}
370+
```
371+
For SDE simulations:
372+
```
373+
@article{rackauckas2017adaptive,
374+
title={Adaptive methods for stochastic differential equations via natural embeddings and rejection sampling with memory},
375+
author={Rackauckas, Christopher and Nie, Qing},
376+
journal={Discrete and continuous dynamical systems. Series B},
377+
volume={22},
378+
number={7},
379+
pages={2731},
380+
year={2017},
381+
publisher={NIH Public Access}
382+
}
383+
```
384+
For jump simulations:
385+
```
386+
@misc{2022JumpProcesses,
387+
author = {Isaacson, S. A. and Ilin, V. and Rackauckas, C. V.},
388+
title = {{JumpProcesses.jl}},
389+
howpublished = {\url{https://github.com/SciML/JumpProcesses.jl/}},
390+
year = {2022}
391+
}
392+
@misc{zagatti_extending_2023,
393+
title = {Extending {JumpProcess}.jl for fast point process simulation with time-varying intensities},
394+
url = {http://arxiv.org/abs/2306.06992},
395+
doi = {10.48550/arXiv.2306.06992},
396+
publisher = {arXiv},
397+
author = {Zagatti, Guilherme Augusto and Isaacson, Samuel A. and Rackauckas, Christopher and Ilin, Vasily and Ng, See-Kiong and Bressan, Stéphane},
398+
year = {2023},
399+
}
400+
```

0 commit comments

Comments
 (0)