DataDrivenDiffEq.jl
Catalyst.jl
DataDrivenDiffEq.jl | Catalyst.jl | |
---|---|---|
3 | 2 | |
398 | 422 | |
0.3% | 1.4% | |
6.3 | 9.5 | |
6 days ago | 6 days ago | |
Julia | Julia | |
MIT License | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
DataDrivenDiffEq.jl
-
Equation based on point
If you are looking to infer the actual structure (not just parameters) of an ODE given some data, there is DataDrivenDiffEq.jl. https://github.com/SciML/DataDrivenDiffEq.jl
-
[D] Has anyone worked with Physics Informed Neural Networks (PINNs)?
This is all not to mention the fact that PINNs are a notoriously computationally intensive approach, where it's pretty easy to show the differentiable solver approach of DiffEqFlux.jl achieves about a 10,000x speedup over another PINN package on parameter estimation of Lorenz equations, and while it scales to higher PDE dimensions well, it doesn't scale to larger systems of PDEs very well. You'll want to factor in a good chunk of training time, and of course increase that by a few orders of magnitude if your dynamics are stiff. Altogether, without knowing your exact problem it's hard to give a rough idea of how practical it would be, but if I tasked a beginning graduate student with trying this out on some of the biological PDEs I work with, then I would give them about 4-6 months to get something decent together.
-
Parameter estimation on non linear time series analysis. [P]
And for reference implementations you can take a look at DataDrivenDiffEq.jl. All DMDs (that I know of) essentially work by building and solving a convex optimization.
Catalyst.jl
- Julia macros
-
Should I switch over completely to Julia from Python for numerical analysis/computing?
ModelingToolkit.jl adds a different spin on this by noting what makes a good modeling system isn't top down but a system that allows for bottom up contributions. ModelingToolkit is built on Symbolics.jl which uses OSCAR.jl etc., so every time the symbolics community gets better ModelingToolkit.jl gets better. It connects to the whole SciML ecosystem, so any improvement to any of the SciML interface packages is directly an improvement to ModelingToolkit.jl. ModelingToolkit is made to be a set of composable compiler abstractions called transformations, so anyone can add new packages that do new transformations that improve the ecosystem. One that I really like is MomentClosure.jl which symbolically transforms stochastic ModelingToolkit models (ReactionSystem) to approximate symbolic ODESystem models of the moments. And there's domain-specific langauges like Catalyst.jl being built on the interface to give more ways to build models, which is spawning the biocommunity to make model importers into the symbolic forms, when then feeds more ODE models into the same compiler. JuliaSim is then building on this ecosystem, adding cloud infrastructure that is special-purpose made for doing parallel computations of these models, automatic symbolic model discovery from data, automatic generation of approximate models with machine learning, and tying the Julia Computing compiler team into the web that is building this ecosystem.
What are some alternatives?
18337 - 18.337 - Parallel Computing and Scientific Machine Learning
ModelingToolkit.jl - An acausal modeling framework for automatically parallelized scientific machine learning (SciML) in Julia. A computer algebra system for integrated symbolics for physics-informed machine learning and automated transformations of differential equations
SymbolicNumericIntegration.jl - SymbolicNumericIntegration.jl: Symbolic-Numerics for Solving Integrals
ParameterizedFunctions.jl - A simple domain-specific language (DSL) for defining differential equations for use in scientific machine learning (SciML) and other applications
MuladdMacro.jl - This package contains a macro for converting expressions to use muladd calls and fused-multiply-add (FMA) operations for high-performance in the SciML scientific machine learning ecosystem
JuMP.jl - Modeling language for Mathematical Optimization (linear, mixed-integer, conic, semidefinite, nonlinear)
Causal.jl - Causal.jl - A modeling and simulation framework adopting causal modeling approach.
MomentClosure.jl - Tools to generate and study moment equations for any chemical reaction network using various moment closure approximations
Unityper.jl
ReservoirComputing.jl - Reservoir computing utilities for scientific machine learning (SciML)
casadi - CasADi is a symbolic framework for numeric optimization implementing automatic differentiation in forward and reverse modes on sparse matrix-valued computational graphs. It supports self-contained C-code generation and interfaces state-of-the-art codes such as SUNDIALS, IPOPT etc. It can be used from C++, Python or Matlab/Octave.