struct DataDrivenProblem{dType, cType, probType} <: DataDrivenDiffEq.AbstractDataDrivenProblem{dType, cType, probType}

The DataDrivenProblem defines a general estimation problem given measurements, inputs and (in the near future) observations. Two construction methods are available:

  • DiscreteDataDrivenProblem for time discrete systems
  • ContinousDataDrivenProblem for systems continuous in time

both are aliases for constructing a problem.


  • X

    State measurements

  • t

    Time measurements (optional)

  • DX

    Differental state measurements (optional); Used for time continuous problems

  • Y

    Output measurements (optional); Used for direct problems

  • U

    Input measurements (optional); Used for non-autonoumous problems

  • p

    Parameters associated with the problem (optional)



X, DX, t = data...

# Define a discrete time problem
prob = DiscreteDataDrivenProblem(X)

# Define a continuous time problem without explicit time points
prob = ContinuousDataDrivenProblem(X, DX)

# Define a continuous time problem without explicit derivatives
prob = ContinuousDataDrivenProblem(X, t)

# Define a discrete time problem with an input function as a function
input_signal(u,p,t) = t^2
prob = DiscreteDataDrivenProblem(X, t, input_signal)

Concrete Types


A time continuous DataDrivenProblem useable for problems of the form f(x,p,t,u) ↦ dx/dt.

ContinuousDataDrivenProblem(X, DX; kwargs...)

Automatically constructs derivatives via an additional collocation method, which can be either a collocation or an interpolation from DataInterpolations.jl wrapped by an InterpolationMethod.