SciML / DataDrivenDiffEq.jl

Data driven modeling and automated discovery of dynamical systems for the SciML Scientific Machine Learning organization
https://docs.sciml.ai/DataDrivenDiffEq/stable/
MIT License
405 stars 57 forks source link

Docs: Getting Started page + Math #245

Closed stephans3 closed 3 years ago

stephans3 commented 3 years ago

This library is quite interesting! However, I struggled a bit with the new Docs.

If I got it correctly, then: DMD() changed to DiscreteDataDrivenProblem() and gDMD() changed to ContinuousDataDrivenProblem().

There does not exist a DMDc() but instead control signals can be included in [Discrete/Continuous]DataDrivenProblem.

The "Getting Started" page is quite comprehensive, but for me it is/was hard to find a use-case in the drop down menu because the titles are very long. I mean, in the previous docs (0.5) it was very easy to find the desired "use-case" (DMD, EDMD, DMDc, SINDY) but in the new one it was not obvious to me.

I would suggest to separate the topics and note them on own pages, e.g.

Moreover, the mathematical descriptions/explanations in the previous Docs (0.5) were quite helpful and it's a pity that they were not transfered to the new docs.

ChrisRackauckas commented 3 years ago

Indeed I think it would be good to split pages and have a few sections. There should be a Tutorials high level section, and then there should be a Linear Systems, Nonlinear Systems, and Real-World Examples sections in there (see the DiffEq docs: https://diffeq.sciml.ai/stable/). It does at a lot to the discoverability, and I've been meaning to find the time to do the splitting.

The "Getting Started" page is quite comprehensive, but for me it is/was hard to find a use-case in the drop down menu because the titles are very long. I mean, in the previous docs (0.5) it was very easy to find the desired "use-case" (DMD, EDMD, DMDc, SINDY) but in the new one it was not obvious to me.

Yes, now that everything has been unified under a single mathematical framework, (a) we need to write the paper to describe better how it's all organized as a single algorithm (there is no DMD vs SINDy in this mindset!), but (b) the tutorials should be more explicit about the words people know, like "Handling Linear Systems with Dynamic Mode Decomposition" and "Sparse Identification of Nonlinear Dynamics (SINDy)". Maybe even having a "Translations from DMD and SINDy Literature" that spells all of this out (and would get the first hit in a search) would be helpful.

AlCap23 commented 3 years ago

I agree. Some of the clarity and information got lost due to the necessity of rewriting the docs. I think the paper is the way to start and than move on to rework the docs based on this. Since we are moving on to supporting different SR frameworks in general, maybe it should be structured like supposed by @stephans3 and use just every available algorithm. And a flowchart like in DiffEqBase would be helpful I guess.