# [ANN] DataDrivenDiffEq.jl - Overhauled in 0.6.0

I’d like to finally and officially announce the DataDrivenDiffEq.jl, a package in the SciML ecosystem for the structural estimation and inference of nonlinear differential equations.

The main features include:

• Dynamic Mode Decomposition ( in all of the flavours for discrete, extended, continuous and controlled systems )
• Sparse Identification of Nonlinear Dynamics ( explicit + implicit with or without controls)
• Tight integration with ModelingToolkit and the SciML ecosystem

This is already the `v0.6.0` release, but really the first one which feels like a sufficient release for me personally. A quick copy and paste example, taken from the Readme:

``````## Generate some data by solving a differential equation
########################################################
using ModelingToolkit
using OrdinaryDiffEq

using LinearAlgebra

# Create a test problem
function lorenz(u,p,t)
x, y, z = u

ẋ = 10.0*(y - x)
ẏ = x*(28.0-z) - y
ż = x*y - (8/3)*z
return [ẋ, ẏ, ż]
end

u0 = [1.0;0.0;0.0]
tspan = (0.0,100.0)
dt = 0.1
prob = ODEProblem(lorenz,u0,tspan)
sol = solve(prob, Tsit5(), saveat = dt, progress = true)

## Start the automatic discovery
# This just collects the state and derivative information

@variables t x(t) y(t) z(t)
u = [x;y;z]
basis = Basis(polynomial_basis(u, 5), u, iv = t)
opt = STLSQ(exp10.(-5:0.1:-1))
ddsol = solve(ddprob, basis, opt, normalize = true)
print(ddsol, Val{true})
``````

which results in

``````Explicit Result
Solution with 3 equations and 7 parameters.
Returncode: sucess
Sparsity: 7.0
L2 Norm Error: 26.7343984476783
AICC: 1.0013570199499398

Model ##Basis#366 with 3 equations
States : x(t) y(t) z(t)
Parameters : 7
Independent variable: t
Equations
Differential(t)(x(t)) = p₁*x(t) + p₂*y(t)
Differential(t)(y(t)) = p₃*x(t) + p₄*y(t) + p₅*x(t)*z(t)
Differential(t)(z(t)) = p₇*z(t) + p₆*x(t)*y(t)

Parameters:
p₁ : -10.0
p₂ : 10.0
p₃ : 28.0
p₄ : -1.0
p₅ : -1.0
p₆ : 1.0
p₇ : -2.7
``````

I am looking forward to getting issues, feature and maybe even pull requests 16 Likes