@@ -66,7 +66,7 @@ $$\begin{align}
6666
6767with parameter values $s=77.27$, $w=0.161$, and $q=8.375 \times 10^{-6}$, and
6868initial conditions $x(0)=1$, $y(0)=2$, and $z(0)=3$. Use
69- [the tutorial on solving ODEs](http://docs.juliadiffeq.org/latest /tutorials/ode_example.html)
69+ [the tutorial on solving ODEs](http://docs.juliadiffeq.org/dev /tutorials/ode_example.html)
7070to solve this differential equation on the
7171timespan of $t\in[0,360]$ with the default ODE solver. To investigate the result,
7272plot the solution of all components over time, and plot the phase space plot of
@@ -77,7 +77,7 @@ the solution (hint: use `vars=(1,2,3)`). What shape is being drawn in phase spac
7777Because the reaction rates of `q` vs `s` is very large, this model has a "fast"
7878system and a "slow" system. This is typical of ODEs which exhibit a property
7979known as stiffness. Stiffness changes the ODE solvers which can handle the
80- equation well. [Take a look at the ODE solver page](http://docs.juliadiffeq.org/latest /solvers/ode_solve.html)
80+ equation well. [Take a look at the ODE solver page](http://docs.juliadiffeq.org/dev /solvers/ode_solve.html)
8181and investigate solving the equation using methods for non-stiff equations
8282(ex: `Tsit5`) and stiff equations (ex: `Rodas5`).
8383
@@ -92,7 +92,7 @@ the Jacobian is costly, and thus it can be beneficial to provide the analytical
9292solution.
9393
9494Use the
95- [ODEFunction definition page](http://docs.juliadiffeq.org/latest /features/performance_overloads.html)
95+ [ODEFunction definition page](http://docs.juliadiffeq.org/dev /features/performance_overloads.html)
9696to define an `ODEFunction` which holds both the OREGO ODE and its Jacobian, and solve using `Rodas5`.
9797
9898## (Optional) Part 4: Automatic Symbolicification and Analytical Jacobian Calculations
@@ -122,9 +122,9 @@ dz &= w(x - z)dt + \sigma_3 z dW_3\end{align}$$
122122
123123with $\sigma_i = 0.1$ where the `dW` terms describe a Brownian motion, a
124124continuous random process with normally distributed increments. Use the
125- [tutorial on solving SDEs](http://docs.juliadiffeq.org/latest /tutorials/sde_example.html)
125+ [tutorial on solving SDEs](http://docs.juliadiffeq.org/dev /tutorials/sde_example.html)
126126to solve simulate this model. Then,
127- [use the `EnsembleProblem`](http://docs.juliadiffeq.org/latest /features/ensemble.html)
127+ [use the `EnsembleProblem`](http://docs.juliadiffeq.org/dev /features/ensemble.html)
128128to generate and plot 100 trajectories of the stochastic model, and use
129129`EnsembleSummary` to plot the mean and 5%-95% region over time.
130130
@@ -154,7 +154,7 @@ B + Z -> Y
154154
155155where reactions take place at a rate which is propoertional to its components,
156156i.e. the first reaction has a rate `k*A*Y` for some `k`.
157- Use the [tutorial on Gillespie SSA models](http://docs.juliadiffeq.org/latest /tutorials/discrete_stochastic_example.html)
157+ Use the [tutorial on Gillespie SSA models](http://docs.juliadiffeq.org/dev /tutorials/discrete_stochastic_example.html)
158158to implement the `JumpProblem` for this model, and use the `EnsembleProblem`
159159and `EnsembleSummary` to characterize the stochastic trajectories.
160160
@@ -176,7 +176,7 @@ data = [1.0 2.05224 2.11422 2.1857 2.26827 2.3641 2.47618 2.60869 2.7677 2.96232
176176 3.0 2.82065 2.68703 2.58974 2.52405 2.48644 2.47449 2.48686 2.52337 2.58526 2.67563 2.80053 2.9713 3.21051 3.5712 4.23706 12.0266 14868.8 24987.8 23453.4 19202.2 15721.6 12872.0 10538.8 8628.66 7064.73 5784.29 4735.96 3877.66 3174.94 2599.6]
177177```
178178
179- [Follow the exmaples on the parameter estimation page](http://docs.juliadiffeq.org/latest /analysis/parameter_estimation.html#Bayesian-Methods-1)
179+ [Follow the exmaples on the parameter estimation page](http://docs.juliadiffeq.org/dev /analysis/parameter_estimation.html#Bayesian-Methods-1)
180180to perform a Bayesian parameter estimation. What are the most likely parameters
181181for the model given the posterior parameter distributions?
182182
@@ -190,7 +190,7 @@ parallelism section for details on how to accelerate this.
190190DiffEqBiological.jl is a helper library for the DifferentialEquations.jl
191191ecosystem for defining chemical reaction systems at a high leevel for easy
192192simulation in these various forms. Use the descrption
193- [from the Chemical Reaction Networks documentation page](http://docs.juliadiffeq.org/latest /models/biological.html)
193+ [from the Chemical Reaction Networks documentation page](http://docs.juliadiffeq.org/dev /models/biological.html)
194194to build a reaction network and generate the ODE/SDE/jump equations, and
195195compare the result to your handcoded versions.
196196
@@ -223,7 +223,7 @@ $$\begin{align}
223223
224224with $t \in [0,90]$, $u_0 = [100.0,0]$, and $p=[K_a,K_e]=[2.268,0.07398]$.
225225
226- With this model, use [the event handling documentation page](http://docs.juliadiffeq.org/latest /features/callback_functions.html)
226+ With this model, use [the event handling documentation page](http://docs.juliadiffeq.org/dev /features/callback_functions.html)
227227to define a `DiscreteCallback` which fires at `t ∈ [24,48,72]` and adds a
228228dose of 100 into `[Depot]`. (Hint: you'll want to set `tstops=[24,48,72]` to
229229force the ODE solver to step at these times).
@@ -241,7 +241,7 @@ $$\begin{align}
241241\frac{d[Central]}{dt} &= K_a [Depot](t-\tau) - K_e [Central]\end{align}$$
242242
243243where the parameter $τ = 6.0$.
244- [Use the DDE tutorial](http://docs.juliadiffeq.org/latest /tutorials/dde_example.html)
244+ [Use the DDE tutorial](http://docs.juliadiffeq.org/dev /tutorials/dde_example.html)
245245to define and solve this delayed version of the hybrid model.
246246
247247## Part 3: Automatic Differentiation (AD) for Optimization (I)
@@ -254,7 +254,7 @@ do this is via Automatic Differentition (AD). For small numbers of parameters
254254we will make use of ForwardDiff.jl to use Dual number arithmetic to retrive
255255both the solution and its derivative w.r.t. parameters in a single solve.
256256
257- [Use the information from the page on local sensitvity analysis](http://docs.juliadiffeq.org/latest /analysis/sensitivity.html)
257+ [Use the information from the page on local sensitvity analysis](http://docs.juliadiffeq.org/dev /analysis/sensitivity.html)
258258to define the input dual numbers, solve the equation, and plot both the solution
259259over time and the derivative of the solution w.r.t. the parameters.
260260
@@ -268,7 +268,7 @@ data = [100.0 0.246196 0.000597933 0.24547 0.000596251 0.245275 0.000595453 0.24
268268 0.0 53.7939 16.8784 58.7789 18.3777 59.1879 18.5003 59.2611]
269269```
270270
271- Use [the parameter estimation page](http://docs.juliadiffeq.org/latest /analysis/parameter_estimation.html)
271+ Use [the parameter estimation page](http://docs.juliadiffeq.org/dev /analysis/parameter_estimation.html)
272272to define a loss function with `build_loss_objective` and optimize the parameters
273273against the data. What parameters were used to generate the data?
274274
@@ -282,15 +282,15 @@ concentration falls below 25. To model this effect, we will need to use
282282`ContinuousCallbacks` to define a callback that triggers when `[Central]` falls
283283below the threshold value.
284284
285- [Use the documentation on the event handling page](http://docs.juliadiffeq.org/latest /features/callback_functions.html) to define such a callback,
285+ [Use the documentation on the event handling page](http://docs.juliadiffeq.org/dev /features/callback_functions.html) to define such a callback,
286286and plot the solution over time. How many times does the auto-doser administer
287287a dose? How much does this change as you change the delay time $\tau$?
288288
289289## Part 6: Global Sensitivity Analysis with the Morris and Sobol Methods
290290
291291To understand how the parameters effect the solution in a global sense, one
292292wants to use Global Sensitivity Analysis. Use the
293- [GSA documentation page](http://docs.juliadiffeq.org/latest /analysis/global_sensitivity.html)
293+ [GSA documentation page](http://docs.juliadiffeq.org/dev /analysis/global_sensitivity.html)
294294perform global sensitivity analysis and quantify the effect of the various
295295parameters on the solution.
296296
@@ -327,14 +327,14 @@ $$\begin{align}
327327
328328with $y(0) = [1,0,0]$ and $dy(0) = [-0.04,0.04,0.0]$ using the mass-matrix
329329formulation and `Rodas5()`. Use the
330- [ODEProblem page](http://docs.juliadiffeq.org/latest /types/ode_types.html)
330+ [ODEProblem page](http://docs.juliadiffeq.org/dev /types/ode_types.html)
331331to find out how to declare a mass matrix.
332332
333333(Hint: what if the last row has all zeros?)
334334
335335## Part 2: Solving the Implicit Robertson Equations with IDA
336336
337- Use the [DAE Tutorial](http://docs.juliadiffeq.org/latest /tutorials/dae_example.html)
337+ Use the [DAE Tutorial](http://docs.juliadiffeq.org/dev /tutorials/dae_example.html)
338338to define a DAE in its implicit form and solve the Robertson equation with IDA.
339339Why is `differential_vars = [true,true,false]`?
340340
@@ -455,7 +455,7 @@ your needs.
455455
456456Use the `sparsity!` function from [SparseDiffTools](https://github.com/JuliaDiffEq/SparseDiffTools.jl)
457457to generate the sparsity pattern for the Jacobian of this problem. Follow
458- the documentations [on the DiffEqFunction page](http://docs.juliadiffeq.org/latest /features/performance_overloads.html)
458+ the documentations [on the DiffEqFunction page](http://docs.juliadiffeq.org/dev /features/performance_overloads.html)
459459to specify the sparsity pattern of the Jacobian. Generate an add the color
460460vector to speed up the computation of the Jacobian.
461461
@@ -473,15 +473,15 @@ solve with an analytical sparse Jacobian.
473473
474474## Part 6: Utilizing Preconditioned-GMRES Linear Solvers
475475
476- Use the [linear solver specification page](http://docs.juliadiffeq.org/latest /features/linear_nonlinear.html)
476+ Use the [linear solver specification page](http://docs.juliadiffeq.org/dev /features/linear_nonlinear.html)
477477to solve the equation with `TRBDF2` with GMRES. Use the Sundials documentation
478478to solve the equation with `CVODE_BDF` with Sundials' special internal GMRES.
479479To both of these, use the [AlgebraicMultigrid.jl](https://github.com/JuliaLinearAlgebra/AlgebraicMultigrid.jl)
480480to add a preconditioner to the GMRES solver.
481481
482482## Part 7: Exploring IMEX and Exponential Integrator Techniques (E)
483483
484- Instead of using the standard `ODEProblem`, define a [`SplitODEProblem`](http://docs.juliadiffeq.org/latest /types/split_ode_types.html)
484+ Instead of using the standard `ODEProblem`, define a [`SplitODEProblem`](http://docs.juliadiffeq.org/dev /types/split_ode_types.html)
485485to move some of the equation to the "non-stiff part". Try different splits
486486and solve with `KenCarp4` to see if the solution can be accelerated.
487487
@@ -514,7 +514,7 @@ where forward sensitivity analysis (forward-mode automatic differentiation)
514514is no longer suitable, and for these cases one uses adjoint sensitivity analysis.
515515
516516Rewrite the PDE so the constant terms are parameters, and use the
517- [adjoint sensitivity analysis](http://docs.juliadiffeq.org/latest /analysis/sensitivity.html#Adjoint-Sensitivity-Analysis-1)
517+ [adjoint sensitivity analysis](http://docs.juliadiffeq.org/dev /analysis/sensitivity.html#Adjoint-Sensitivity-Analysis-1)
518518documentation to solve for the solution gradient with a cost function being the
519519L2 distance of the solution from the value 1. Solve with interpolated and
520520checkpointed adjoints. Play with using reverse-mode automatic differentiation
@@ -549,7 +549,7 @@ Solve this system over the timespan $t\in[0,1000]$
549549## (Optional) Part 2: Alternative Dynamical Implmentations of Henon-Heiles (B)
550550
551551The Henon-Heiles defines a Hamiltonian system with certain structures which
552- can be utilized for a more efficient solution. Use [the Dynamical problems page](http://docs.juliadiffeq.org/latest /types/dynamical_types.html)
552+ can be utilized for a more efficient solution. Use [the Dynamical problems page](http://docs.juliadiffeq.org/dev /types/dynamical_types.html)
553553to define a `SecondOrderODEProblem` corresponding to the acceleration terms:
554554
555555$$\begin{align}
@@ -568,7 +568,7 @@ Solve this problem using the `HamiltonianProblem` constructor from DiffEqPhysics
568568
569569To understand the orbits of the Henon-Heiles system, it can be useful to solve
570570the system with many different initial conditions. Use the
571- [ensemble interface](http://docs.juliadiffeq.org/latest /features/ensemble.html)
571+ [ensemble interface](http://docs.juliadiffeq.org/dev /features/ensemble.html)
572572to solve with randomized initial conditions in parallel using threads with
573573`EnsembleThreads()`. Then, use `addprocs()` to add more cores and solve using
574574`EnsembleDistributed()`. The former will solve using all of the cores on a
0 commit comments