I am trying to do inference on particle dynamics with data coming from a simulator, using the DataDrivenDiffEq package.
Similarly to what is done in the documentation (Automatically Discover Missing Physics by Embedding Machine Learning into Differential Equations · Overview of Julia's SciML), I want to use sparse regression with the SINDy method.
I tried a first version with very simple relations between variables and using a collocation method to obtain the time derivatives (Utilities · DataDrivenDiffEq.jl) but it wasn’t successful. I saw that it was possible to pass only positional data
X and times
ContinuousDataDrivenProblem in the documentation example cited above, and I thought it would handle the derivatives better than I did.
But with the following simple version, the code seems to get stuck at the
prob = ContinuousDataDrivenProblem(X, t) line. No error returned, just an extremely long running time, potentially completely stuck (I had a result only once trying different data coming from ODE resolution but it was also extremely long).
using DataDrivenDiffEq using DataDrivenSparse N = 10 t = Float64.(collect(1:N)) X = Matrix(2.0t') + 0.5 * rand(N)' prob = ContinuousDataDrivenProblem(X, t)
About the context and versions :
Julia Version 1.9.1 Commit 147bdf428cd (2023-06-07 08:27 UTC) Platform Info: OS: Linux (x86_64-linux-gnu) CPU: 20 × 13th Gen Intel(R) Core(TM) i9-13900H WORD_SIZE: 64 LIBM: libopenlibm LLVM: libLLVM-14.0.6 (ORCJIT, goldmont) Threads: 20 on 20 virtual cores Environment: JULIA_EDITOR = code
[6e4b80f9] BenchmarkTools v1.3.2 [69e1c6dd] CellListMap v0.8.23 [b0b7db55] ComponentArrays v0.15.4 [2445eb08] DataDrivenDiffEq v1.3.0 [5b588203] DataDrivenSparse v0.1.2 [0c46a032] DifferentialEquations v7.11.0 [31c24e10] Distributions v0.25.102 [634d3b9d] DrWatson v2.13.0 [5789e2e9] FileIO v1.16.1 [70c4c096] Indicators v0.8.2 [033835bb] JLD2 v0.4.37 [b2108857] Lux v0.5.9 [961ee093] ModelingToolkit v8.72.2 [429524aa] Optim v1.7.8 [7f7a1694] Optimization v3.19.3 [3e6eede4] OptimizationBBO v0.1.5  OptimizationOptimJL v0.1.12 [42dfb2eb] OptimizationOptimisers v0.1.6 [1dea7af3] OrdinaryDiffEq v6.58.1 [91a5bcdd] Plots v1.39.0 [c46f51b8] ProfileView v1.7.2 [49802e3a] ProgressBars v1.5.1 [1ed8b502] SciMLSensitivity v7.46.0 [860ef19b] StableRNGs v1.0.0 [f3b207a7] StatsPlots v0.15.6 [a110ec8f] Temporal v0.8.1 [e88e6eb3] Zygote v0.6.67 [37e2e46d] LinearAlgebra [10745b16] Statistics v1.9.0
Do you have any idea of what is happening ?
Thank you very much for your support