SciML / 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
https://mtk.sciml.ai/dev/
Other
1.42k stars 206 forks source link

A new AbstractTimeIndependentSystem for large-scale least squares? #1256

Closed twadleigh closed 3 years ago

twadleigh commented 3 years ago

I've started a deep dive into MTK with the idea of applying it to a model problem I have in my mind which is basically a variation on SLAM. The SLAM problem ultimately finds its representation as large-scale nonlinear least squares (LS) minimization. Unlike generic optimization techniques, which work with a scalar objective function, LS methods (e.g., Gauss-Newton, etc.) work with the residual vector and its Jacobian.

However, I can't really see a good way to build up the residual function with the existing infrastructure. OptimizationSystem looks as though it is intended to wrap scalar objectives only, and has no definition for calculate_jacobian.

I thought about using NonlinearSystem to build up residual factors, but it seems a bit awkward, if not inappropriate, to represent residual components as Equations, and not just expressions.

Maybe I can just make due, meanwhile, by using NonlinearSystem and prepending 0 ~ to all residual components?

Anyway, any guidance for both near-term and longer-term solutions would be much appreciated. I'll be happy to contribute my own efforts into making it a reality to the extent of my capability.

I also posted to discourse.

ChrisRackauckas commented 3 years ago

Answered in more detail on Discourse.

twadleigh commented 3 years ago

Thanks for the reply. I'll close this issue for now. Especially because your comments would suggest that solver work is needed to motivate changes here.