ODE Types
Mathematical Specification of an ODE Problem
To define an ODE Problem, you simply need to give the function $f$ and the initial condition $u₀$ which define an ODE:
f
should be specified as f(t,u)
(or in-place as f(t,u,du)
), and u₀
should be an AbstractArray (or number) whose geometry matches the desired geometry of u
. Note that we are not limited to numbers or vectors for u₀
; one is allowed to provide u₀
as arbitrary matrices / higher dimension tensors as well.
Problem Type
Constructors
ODEProblem(f,u0,tspan)
: Defines the ODE with the specified functions.
Fields
f
: The function in the ODE.u0
: The initial condition.tspan
: The timespan for the problem.
Special Solver Options
Special Solution Fields
None. The ODE type is as basic as it gets.
Example Problems
Example problems can be found in DiffEqProblemLibrary.jl.
To use a sample problem, such as prob_ode_linear
, you can do something like:
# Pkg.add("DiffEqProblemLibrary")
using DiffEqProblemLibrary
prob = prob_ode_linear
sol = solve(prob)
DiffEqProblemLibrary.prob_ode_linear
— Constant.Linear ODE
with initial condition $u0=1/2$, $α=1.01$, and solution
with Float64s
DiffEqProblemLibrary.prob_ode_2Dlinear
— Constant.4x2 version of the Linear ODE
with initial condition $u0=1/2$, $α=1.01$, and solution
with Float64s
DiffEqProblemLibrary.prob_ode_bigfloatlinear
— Constant.Linear ODE
with initial condition $u0=1/2$, $α=1.01$, and solution
with BigFloats
DiffEqProblemLibrary.prob_ode_bigfloat2Dlinear
— Constant.4x2 version of the Linear ODE
with initial condition $u0=1/2$, $α=1.01$, and solution
with BigFloats
DiffEqProblemLibrary.prob_ode_large2Dlinear
— Constant.100x100 version of the Linear ODE
with initial condition $u0=1/2$, $α=1.01$, and solution
with Float64s
4x2 version of the Linear ODE
with initial condition $u0=1/2$, $α=1.01$, and solution
on Float64. Purposefully not in-place as a test.
DiffEqProblemLibrary.prob_ode_threebody
— Constant.The ThreeBody problem as written by Hairer:
From Hairer Norsett Wanner Solving Ordinary Differential Euations I - Nonstiff Problems Page 129
Usually solved on t₀ = 0.0
; T = parse(BigFloat,"17.0652165601579625588917206249")
Periodic with that setup.
DiffEqProblemLibrary.prob_ode_pleides
— Constant.Pleides Problem
where
and inital condtions are
and with $xᵢ′(0)=yᵢ′(0)=0$ except for
From Hairer Norsett Wanner Solving Ordinary Differential Euations I - Nonstiff Problems Page 244
Usually solved from 0 to 3.
DiffEqProblemLibrary.prob_ode_vanderpol
— Constant.Van der Pol Equations
with $μ=1.0$ and $u0=[0,\sqrt{3}]$
Non-stiff parameters.
DiffEqProblemLibrary.prob_ode_vanderpol_stiff
— Constant.Van der Pol Equations
with $μ=10^6$ and $u0=[0,\sqrt{3}]$
Stiff parameters.
DiffEqProblemLibrary.prob_ode_rober
— Constant.The Robertson biochemical reactions:
where $k₁=0.04$, $k₂=3\times10^7$, $k₃=10^4$. For details, see:
Hairer Norsett Wanner Solving Ordinary Differential Euations I - Nonstiff Problems Page 129
Usually solved on [0,1e11]
DiffEqProblemLibrary.prob_ode_rigidbody
— Constant.Rigid Body Equations
with $I₁=-2$, $I₂=1.25$, and $I₃=-1/2$.
The initial condition is $y=[1.0;0.0;0.9]$.
From Solving Differential Equations in R by Karline Soetaert
or Hairer Norsett Wanner Solving Ordinary Differential Euations I - Nonstiff Problems Page 244
Usually solved from 0 to 20.