Collocation

DataDrivenDiffEq.InterpolationMethodType

A wrapper for the interpolation methods of DataInterpolations.jl.

Wraps the methods in such a way that they are callable as f(u,t) to create and return an interpolation of u over t. The first argument of the constructor always defines the interpolation method, all following arguments will be used in the interpolation.

The additional keyword crop = false indicates to discard the first and last element of the time series.

Example

# Create the wrapper struct
itp_method = InterpolationMethod(QuadraticSpline)
# Create a callable interpolation
itp = itp_method(u,t)
# Return u[2]
itp(t[2])
source
DataDrivenDiffEq.collocate_dataFunction
collocate_data(data, tpoints)
collocate_data(data, tpoints, kernel; crop, kwargs...)

Unified interface for collocation techniques. The input can either be a CollocationKernel (see list below) or a wrapped InterpolationMethod from DataInterpolations.jl.

Computes a non-parametrically smoothed estimate of u' and u given the data, where each column is a snapshot of the timeseries at tpoints[i].

Examples

u′,u,t = collocate_data(data,tpoints,kernel=SigmoidKernel())
u′,u,t = collocate_data(data,tpoints,tpoints_sample,interp,args...)
u′,u,t = collocate_data(data,tpoints,interp)

Collocation Kernels

See this paper for more information.

  • EpanechnikovKernel
  • UniformKernel
  • TriangularKernel
  • QuarticKernel
  • TriweightKernel
  • TricubeKernel
  • GaussianKernel
  • CosineKernel
  • LogisticKernel
  • SigmoidKernel
  • SilvermanKernel

Interpolation Methods

See DataInterpolations.jl for more information.

  • ConstantInterpolation
  • LinearInterpolation
  • QuadraticInterpolation
  • LagrangeInterpolation
  • QuadraticSpline
  • CubicSpline
  • BSplineInterpolation
  • BSplineApprox
  • Curvefit
source

Data Processing

DataDrivenDiffEq.DataProcessingType
struct DataProcessing

Defines a preprocessing pipeline for the data using MLUtils.jl. All of the fields can be set using keyword arguments.

Fields

  • split: Train test split, indicates the (rough) percentage of training data Default: 1.0

  • shuffle: Shuffle the training data Default: false

  • batchsize: Batch size to use, if zero no batching is performed Default: 0

  • partial: Using partial batches Default: true

  • rng: Random seed Default: Random.default_rng()

Note

Currently, only splitobs for a train-test split and DataLoader is wrapped. Other algorithms may follow.

source
DataDrivenDiffEq.DataNormalizationType
struct DataNormalization{T<:Union{Nothing, UnitRangeTransform, ZScoreTransform}}

A wrapper to normalize the data using StatsBase.jl. Performs normalization over the full problem data given the type of the normalization (Nothing, ZScoreTransform, UnitRangeTransform).

If no nothing is used, no normalization is performed.

Note

Given that DataDrivenDiffEq.jl allows for constants in the basis, the center keyword of StatsBase.fit is set to false. Additionally, constants will be scaled with 1.

source