Skip to content

Commit 51b39c0

Browse files
kanav99ChrisRackauckas
authored andcommitted
fix links
1 parent 3868209 commit 51b39c0

32 files changed

+129
-129
lines changed

docs/src/analysis/parameter_estimation.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -312,8 +312,8 @@ parameter list.
312312
### turing_inference
313313

314314
```julia
315-
function turing_inference(prob::DiffEqBase.DEProblem,alg,t,data,priors;
316-
likelihood_dist_priors, likelihood, num_samples=1000,
315+
function turing_inference(prob::DiffEqBase.DEProblem,alg,t,data,priors;
316+
likelihood_dist_priors, likelihood, num_samples=1000,
317317
sampler = Turing.NUTS(num_samples, 0.65), syms, kwargs...)
318318
```
319319

@@ -702,7 +702,7 @@ or MOSEK a try!
702702

703703
### Using JuMP with DiffEqParamEstim
704704

705-
[JuMP](https://github.com/JuliaOpt/JuMP.jl) is a domain-specific modeling language
705+
[JuMP](https://github.com/JuliaOpt/JuMP.jl) is a domain-specific modeling language
706706
for mathematical optimization embedded in Julia.
707707

708708
```julia
@@ -721,27 +721,27 @@ end
721721
```
722722

723723
Let's get a solution of the system with parameter values `σ=10.0` `ρ=28.0` `β=8/3` to use as our
724-
data. We define some convenience functions `model_ode` (to create an `ODEProblem`) and `solve_model`(to obtain
724+
data. We define some convenience functions `model_ode` (to create an `ODEProblem`) and `solve_model`(to obtain
725725
solution of the `ODEProblem`) to use in a custom objective function later.
726726

727727
```julia
728728
u0 = [1.0;0.0;0.0]
729729
t = 0.0:0.01:1.0
730730
tspan = (0.0,1.0)
731-
model_ode(p_) = ODEProblem(g, u0, tspan,p_)
731+
model_ode(p_) = ODEProblem(g, u0, tspan,p_)
732732
solve_model(mp_) = OrdinaryDiffEq.solve(model_ode(mp_), Tsit5(),saveat=0.01)
733733
mock_data = Array(solve_model([10.0,28.0,8/3]))
734734
```
735735
Now we define a custom objective function to pass for optimization to JuMP using
736-
the `build_loss_objective` described above provided by DiffEqParamEstim that defines an objective
736+
the `build_loss_objective` described above provided by DiffEqParamEstim that defines an objective
737737
function for the parameter estimation problem.
738738

739739
```julia
740740
loss_objective(mp_, dat) = build_loss_objective(model_ode(mp_), Tsit5(), L2Loss(t,dat))
741741
```
742742

743-
We create a JuMP model, variables, set the objective function and the choice of
744-
optimization algorithm to be used in the JuMP syntax. You can read more about this in
743+
We create a JuMP model, variables, set the objective function and the choice of
744+
optimization algorithm to be used in the JuMP syntax. You can read more about this in
745745
JuMP's [documentation](http://www.juliaopt.org/JuMP.jl/0.18/index.html).
746746

747747
```julia
@@ -763,7 +763,7 @@ Let's call the optimizer to obtain the fitted parameter values.
763763
sol = JuMP.solve(jumodel)
764764
best_mp = getvalue.(getindex.((jumodel,), Symbol.(jumodel.colNames)))
765765
```
766-
Let's compare the solution at the obtained parameter values and our data.
766+
Let's compare the solution at the obtained parameter values and our data.
767767

768768
```julia
769769
sol = OrdinaryDiffEq.solve(best_mp |> model_ode, Tsit5())
@@ -961,7 +961,7 @@ obj = build_loss_objective(monte_prob,SOSRI(),L2Loss(t,aggregate_data),
961961
parallel_type = :threads)
962962
result = Optim.optimize(obj, [1.0,0.5], Optim.BFGS())
963963
```
964-
Parameter Estimation in case of SDE's with a regular `L2Loss` can have poor accuracy due to only fitting against the mean properties as mentioned in [First Differencing](http://docs.juliadiffeq.org/latest/analysis/parameter_estimation.html#First-differencing-1).
964+
Parameter Estimation in case of SDE's with a regular `L2Loss` can have poor accuracy due to only fitting against the mean properties as mentioned in [First Differencing](http://docs.juliadiffeq.org/latest/analysis/parameter_estimation/#First-differencing-1).
965965

966966
```julia
967967
Results of Optimization Algorithm

docs/src/analysis/sensitivity.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ end
9898
```
9999

100100
What this function does is use the `remake` function
101-
[from the Problem Interface page](http://docs.juliadiffeq.org/latest/basics/problem.html#Modification-of-problem-types-1)
101+
[from the Problem Interface page](http://docs.juliadiffeq.org/latest/basics/problem/#Modification-of-problem-types-1)
102102
to generate a new ODE problem with the new parameters, solves it, and returns
103103
the solution at the final time point. Notice that it takes care to make sure
104104
that the type of `u0` matches the type of `p`. This is because ForwardDiff.jl

docs/src/analysis/uncertainty_quantification.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ cb = ProbIntsUncertainty(0.2,1)
6868
```
6969

7070
This is akin to having an error of approximately 0.2 at each step. We now build
71-
and solve a [EnsembleProblem](../../features/ensemble.html) for 100 trajectories:
71+
and solve a [EnsembleProblem](../../../features/ensemble/) for 100 trajectories:
7272

7373
```julia
7474
ensemble_prob = EnsembleProblem(prob)

docs/src/basics/common_solver_opts.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,8 @@ section at the end of this page for some example usage.
5353
most efficient manner available to the solver. Note that this
5454
can be used even if `dense=false`. If only `saveat` is given, then
5555
the arguments `save_everystep` and `dense` are `false` by default.
56-
If `saveat` is given a number, then it will automatically expand to
57-
`tspan[1]:saveat:tspan[2]`. For methods where interpolation is not possible,
56+
If `saveat` is given a number, then it will automatically expand to
57+
`tspan[1]:saveat:tspan[2]`. For methods where interpolation is not possible,
5858
`saveat` may be equivalent to `tstops`. The default value is `[]`.
5959
* `save_idxs`: Denotes the indices for the components of the equation to save.
6060
Defaults to saving all indices. For example, if you are solving a 3-dimensional ODE,
@@ -87,7 +87,7 @@ section at the end of this page for some example usage.
8787

8888
Note that `dense` requires `save_everystep=true` and `saveat=false`. If you need
8989
additional saving while keeping dense output, see
90-
[the SavingCallback in the Callback Library](http://docs.juliadiffeq.org/latest/features/callback_library.html).
90+
[the SavingCallback in the Callback Library](http://docs.juliadiffeq.org/latest/features/callback_library).
9191

9292
## Stepsize Control
9393

@@ -147,7 +147,7 @@ Note that if a method does not have adaptivity, the following rules apply:
147147
These arguments control more advanced parts of the internals of adaptive timestepping
148148
and are mostly used to make it more efficient on specific problems. For detained
149149
explanations of the timestepping algorithms, see the
150-
[timestepping descriptions](../../extras/timestepping.html)
150+
[timestepping descriptions](../../../extras/timestepping/)
151151

152152
* `internalnorm`: The norm function `internalnorm(u,t)` which error estimates
153153
are calculated. Required are two dispatches: one dispatch for the state variable
@@ -192,7 +192,7 @@ explanations of the timestepping algorithms, see the
192192
* `maxiters`: Maximum number of iterations before stopping. Defaults to 1e5.
193193
* `callback`: Specifies a callback. Defaults to a callback function which
194194
performs the saving routine. For more information, see the
195-
[Event Handling and Callback Functions manual page](../../features/callback_functions.html).
195+
[Event Handling and Callback Functions manual page](../../../features/callback_functions/).
196196
* `isoutofdomain`: Specifies a function `isoutofdomain(u,p,t)` where, when it
197197
returns true, it will reject the timestep. Disabled by default.
198198
* `unstable_check`: Specifies a function `unstable_check(dt,u,p,t)` where, when

docs/src/basics/faq.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ algorithms utilize standard arithmetical functions. Both additionally utilize
1616
the user's norm specified via the common interface options and, if a stiff
1717
solver, ForwardDiff/DiffEqDiffTools for the Jacobian calculation, and Base linear
1818
factorizations for the linear solve. For your type, you may likely need to give
19-
a [better form of the norm](http://docs.juliadiffeq.org/latest/basics/common_solver_opts.html#Advanced-Adaptive-Stepsize-Control-1),
20-
[Jacobian](http://docs.juliadiffeq.org/latest/features/performance_overloads.html),
21-
or [linear solve calculations](http://docs.juliadiffeq.org/latest/features/linear_nonlinear.html)
19+
a [better form of the norm](http://docs.juliadiffeq.org/latest/basics/common_solver_opts#Advanced-Adaptive-Stepsize-Control-1),
20+
[Jacobian](http://docs.juliadiffeq.org/latest/features/performance_overloads),
21+
or [linear solve calculations](http://docs.juliadiffeq.org/latest/features/linear_nonlinear)
2222
to fully utilize parallelism.
2323

2424
GPUArrays.jl (CuArrays.jl), ArrayFire.jl, DistributedArrays.jl have been tested and work in
@@ -53,7 +53,7 @@ apply. What you want to do first is make sure your function does not allocate.
5353
If your system is small (`<=100` ODEs/SDEs/DDEs/DAEs?), then you should set your
5454
system up to use [StaticArrays.jl](https://github.com/JuliaArrays/StaticArrays.jl).
5555
This is demonstrated
56-
[in the ODE tutorial](http://docs.juliadiffeq.org/latest/tutorials/ode_example.html#Example-3:-Using-Other-Types-for-Systems-of-Equations-1)
56+
[in the ODE tutorial](http://docs.juliadiffeq.org/latest/tutorials/ode_example#Example-3:-Using-Other-Types-for-Systems-of-Equations-1)
5757
with static matrices. Static vectors/arrays are stack-allocated, and thus creating
5858
new arrays is free and the compiler doesn't have to heap-allocate any of the
5959
temporaries (that's the expensive part!). These have specialized super fast
@@ -102,7 +102,7 @@ and do a dense factorization. However, in many cases you may want to use alterna
102102
that are more tuned for your problem.
103103

104104
First of all, when available, it's recommended that you pass a function for computing
105-
your Jacobian. This is discussed in the [performance overloads](http://docs.juliadiffeq.org/latest/features/performance_overloads.html#Declaring-Explicit-Jacobians-1)
105+
your Jacobian. This is discussed in the [performance overloads](http://docs.juliadiffeq.org/latest/features/performance_overloads#Declaring-Explicit-Jacobians-1)
106106
section. Jacobians are especially helpful for Rosenbrock methods.
107107

108108
Secondly, if your Jacobian isn't dense, you shouldn't use a dense Jacobian! In
@@ -111,9 +111,9 @@ for example. More support is coming for this soon.
111111

112112
But lastly, you shouldn't use a dense factorization for large sparse matrices.
113113
Instead, if you're using a `*DiffEq` library you should
114-
[specify a linear solver](http://docs.juliadiffeq.org/latest/features/linear_nonlinear.html).
114+
[specify a linear solver](http://docs.juliadiffeq.org/latest/features/linear_nonlinear).
115115
For Sundials.jl, you should change the `linear_solver` option. See
116-
[the ODE solve Sundials portion](http://docs.juliadiffeq.org/latest/solvers/ode_solve.html#Sundials.jl-1)
116+
[the ODE solve Sundials portion](http://docs.juliadiffeq.org/latest/solvers/ode_solve#Sundials.jl-1)
117117
for details on that. Right now, Sundials.jl is the recommended method for stiff
118118
problems with large sparse Jacobians. `linear_solver=:Band` should be used
119119
if your Jacobian is banded and you can specify the band sizes. If you only
@@ -186,7 +186,7 @@ Of course, there's always a tradeoff between accuracy and efficiency, so play
186186
around to find out what's right for your problem.
187187

188188
Another thing you can do is use a callback. There are some
189-
[premade callbacks in the callback library](http://docs.juliadiffeq.org/latest/features/callback_library.html) which
189+
[premade callbacks in the callback library](http://docs.juliadiffeq.org/latest/features/callback_library) which
190190
handle these sorts of things like projecting to manifolds and preserving positivity.
191191

192192
##### The symplectic integrator doesn't conserve energy?
@@ -208,7 +208,7 @@ will reduce the error. The results in the
208208
[DiffEqBenchmarks](https://github.com/JuliaDiffEq/DiffEqBenchmarks.jl) show
209209
that using a `DPRKN` method with low tolerance can be a great choice. Another
210210
thing you can do is use
211-
[the ManifoldProjection callback from the callback library](http://docs.juliadiffeq.org/latest/features/callback_library.html).
211+
[the ManifoldProjection callback from the callback library](http://docs.juliadiffeq.org/latest/features/callback_library).
212212

213213
#### How do I get to zero error?
214214

@@ -221,7 +221,7 @@ like BigFloats or [ArbFloats.jl](https://github.com/JuliaArbTypes/ArbFloats.jl).
221221
#### Are the native Julia solvers compatible with autodifferentiation?
222222

223223
Yes! Take a look at the
224-
[sensitivity analysis](http://docs.juliadiffeq.org/latest/analysis/sensitivity.html)
224+
[sensitivity analysis](http://docs.juliadiffeq.org/latest/analysis/sensitivity)
225225
page for more details.
226226

227227
If the algorithm does not have differentiation of parameter-depedendent events,

docs/src/basics/overview.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ sol = solve(prob,alg;kwargs)
4747
Into the command, one passes the differential equation problem that they defined
4848
`prob`, optionally choose an algorithm `alg` (a default is given if not
4949
chosen), and change the properties of the solver using keyword arguments. The common
50-
arguments which are accepted by most methods is defined in [the common solver options manual page](../common_solver_opts.html).
50+
arguments which are accepted by most methods is defined in [the common solver options manual page](../common_solver_opts).
5151
The solver returns a solution object `sol` which hold all of the details for the solution.
5252

5353
## Analyzing the Solution
@@ -56,7 +56,7 @@ With the solution object, you do the analysis as you please! The solution type
5656
has a common interface which makes handling the solution similar between the
5757
different types of differential equations. Tools such as interpolations
5858
are seamlessly built into the solution interface to make analysis easy. This
59-
interface is described in the [solution handling manual page](../solution.html).
59+
interface is described in the [solution handling manual page](../solution).
6060

6161
Plotting functionality is provided by a recipe to Plots.jl. To
6262
use plot solutions, simply call the `plot(sol)` and the plotter will generate

docs/src/features/callback_functions.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ DiscreteCallback(condition,affect!;
102102
### CallbackSet
103103

104104
Multiple callbacks can be chained together to form a `CallbackSet`. A `CallbackSet`
105-
is constructed by passing the constructor `ContinuousCallback`, `DiscreteCallback`,
105+
is constructed by passing the constructor `ContinuousCallback`, `DiscreteCallback`,
106106
`VectorContinuousCallback` or other `CallbackSet` instances:
107107

108108
```julia
@@ -135,7 +135,7 @@ VectorContinuousCallback(condition,affect!,len;
135135
abstol=10eps(),reltol=0)
136136
```
137137

138-
`VectorContinuousCallback` is also a subtype of `AbstractContinuousCallback`. `CallbackSet` is not feasible when you have a large number of callbacks, as it doesn't scale well. For this reason, we have `VectorContinuousCallback` - it allows you to have a single callback for multiple events.
138+
`VectorContinuousCallback` is also a subtype of `AbstractContinuousCallback`. `CallbackSet` is not feasible when you have a large number of callbacks, as it doesn't scale well. For this reason, we have `VectorContinuousCallback` - it allows you to have a single callback for multiple events.
139139

140140
* `condition` - This is a function `condition(out, u, t, integrator)` which should save the condition value in the array `out` at the right index. Maximum index of `out` should be specified in the `len` property of callback. So this way you can have a chain of `len` events, which would cause the `i`th event to trigger when `out[i] = 0`.
141141

@@ -168,7 +168,7 @@ be true for at least one callback.
168168

169169
A common issue with callbacks is that they cause a large discontinuous change,
170170
and so it may be wise to pull down `dt` after such a change. To control the
171-
timestepping from a callback, please see [the timestepping controls in the integrator interface](../basics/integrator.html#Stepping-Controls-1). Specifically, `set_proposed_dt!` is used to set the next stepsize,
171+
timestepping from a callback, please see [the timestepping controls in the integrator interface](../basics/integrator#Stepping-Controls-1). Specifically, `set_proposed_dt!` is used to set the next stepsize,
172172
and `terminate!` can be used to cause the simulation to stop.
173173

174174
## DiscreteCallback Examples
@@ -251,7 +251,7 @@ a library of useful callbacks for JuliaDiffEq solvers.
251251

252252
### Example 2: A Control Problem
253253

254-
Another example of a `DiscreteCallback` is the [control problem demonstrated on the DiffEq-specific arrays page](http://docs.juliadiffeq.org/latest/features/diffeq_arrays.html#Example:-A-Control-Problem-1).
254+
Another example of a `DiscreteCallback` is the [control problem demonstrated on the DiffEq-specific arrays page](http://docs.juliadiffeq.org/latest/features/diffeq_arrays#Example:-A-Control-Problem-1).
255255

256256
## ContinuousCallback Examples
257257

@@ -509,7 +509,7 @@ This allows you to build sophisticated models of populations with births and dea
509509

510510
### Example 1: Bouncing Ball with multiple walls
511511

512-
This is similar to the above Bouncing Ball example, but now we have two more vertical walls, at `x = 0` and `x = 10.0`. We have our ODEFunction as -
512+
This is similar to the above Bouncing Ball example, but now we have two more vertical walls, at `x = 0` and `x = 10.0`. We have our ODEFunction as -
513513

514514
```julia
515515
function f(du,u,p,t)
@@ -520,7 +520,7 @@ function f(du,u,p,t)
520520
end
521521
```
522522

523-
where `u[1]` denotes `y`-coordinate, `u[2]` denotes velocity in `y`-direction, `u[3]` denotes `x`-coordinate and `u[4]` denotes velocity in `x`-direction. We will make a `VectorContinuousCallback` of length 2 - one for `x` axis collision, one for walls parallel to `y` axis.
523+
where `u[1]` denotes `y`-coordinate, `u[2]` denotes velocity in `y`-direction, `u[3]` denotes `x`-coordinate and `u[4]` denotes velocity in `x`-direction. We will make a `VectorContinuousCallback` of length 2 - one for `x` axis collision, one for walls parallel to `y` axis.
524524

525525
```julia
526526
function condition(out,u,t,integrator) # Event when event_f(u,t) == 0
@@ -550,6 +550,6 @@ prob = ODEProblem(f,u0,tspan,p)
550550
sol = solve(prob,Tsit5(),callback=cb,dt=1e-3,adaptive=false)
551551
plot(sol,vars=(1,3))
552552
```
553-
And you get the following output:
553+
And you get the following output:
554554

555555
![Cell1](../assets/ball2.png)

0 commit comments

Comments
 (0)