Extensibility of the language
DifferentialEquations
A package for solving differential equations, similar to odesolve
in Matlab.
Example:
using DifferentialEquations
function lotka_volterra(du,u,p,t)
x, y = u
α, β, δ, γ = p
du[1] = dx = α*x - β*x*y
du[2] = dy = -δ*y + γ*x*y
end
u0 = [1.0,1.0]
tspan = (0.0,10.0)
p = [1.5,1.0,3.0,1.0]
prob = ODEProblem(lotka_volterra,u0,tspan,p)
sol = solve(prob)
using Plots
plot(sol)
Measurements
A package defining "numbers with precision" and complete algebra on these numbers:
using Measurements
a = 4.5 ± 0.1
b = 3.8 ± 0.4
2a + b
sin(a)/cos(a) - tan(a)
It also defines recipes for Plots.jl how to plot such numbers.
Starting ODE from an interval
using Measurements
u0 = [1.0±0.1,1.0±0.01]
prob = ODEProblem(lotka_volterra,u0,tspan,p)
sol = solve(prob)
plot(sol,denseplot=false)
- all algebraic operations are defined,
- passes all grid refinement techniques
- plot uses the correct plotting for intervals
Integration with other toolkits
Flux: toolkit for modelling Neural Networks. Neural network is a function.
- integration with Measurements,
- Integration with ODE (think of NN as part of the ODE)
Turing: Probabilistic modelling toolkit
- integration with FLux (NN)
- interation with ODE
- using arbitrary bijective transformations, Bijectors.jl