Skip to content
This repository has been archived by the owner on Nov 23, 2018. It is now read-only.

optimize: curve-fitting - implement Levenberg-Marquardt algorithm (damped least-squares) #174

Closed
sbinet opened this issue Jun 10, 2016 · 7 comments

Comments

@sbinet
Copy link
Member

sbinet commented Jun 10, 2016

just a follow-up on:
https://www.reddit.com/r/golang/comments/4atete/levenbergmarquardt_or_gaussnewton_go

https://en.wikipedia.org/wiki/Levenberg%E2%80%93Marquardt_algorithm

Paraphrasing the above wikipedia link:

LMA is used to solve non-linear least squares problems.
The LMA is used in many software applications for solving generic curve-fitting problems.

@btracey
Copy link
Member

btracey commented Jun 10, 2016

I'm not sure where it should be located. Levenberg-Marquardt isn't the same as the other methods in optimize as it only solves a specific kind of problem. It may still belong in the base package, but I'm not sure.

@btracey
Copy link
Member

btracey commented Jun 10, 2016

Maybe optimize/nlls? Otherwise maybe in addition to local we could have another function.

@vladimir-ch
Copy link
Member

I would prefer another function (LeastSquares?) taking another kind of problem (LeastSquaresProblem or LSProblem?).

@phil-mansfield
Copy link

I wanted to check in on the status of this issue (and about curve fitting in general in the Go environment).

The reason I'm asking is that I'm currently working on a Go-based affine-invariant Markov chain Monte Carlo sampler (similar to emcee) for one of my own projects. If you guys are interested, this could be used as a backend for general purpose fitting routines.

(MCMC doesn't fill exactly the same niche as LM, so it would probably be best to have an LM implementation, too.)

@sbinet
Copy link
Member Author

sbinet commented Nov 14, 2016

AFAIK, nobody is actively working on this.

I still think it is indeed worthy of having in the gonum toolkit.
Feel free to either open a PR or drop a message on the gonum mailing list.

@sbinet
Copy link
Member Author

sbinet commented Jan 13, 2017

@phil-mansfield FYI, I have started a design investigation at go-hep/fit with discussion on the gonum mailing list: https://groups.google.com/forum/#!topic/gonum-dev/AGekBtNCfJ8.

@btracey btracey changed the title curve-fitting: implement Levenberg-Marquardt algorithm (damped least-squares) optimize: curve-fitting - implement Levenberg-Marquardt algorithm (damped least-squares) Mar 16, 2017
@vladimir-ch
Copy link
Member

Closing because there is now gonum/gonum#295 in the new repository.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants