Giter Club home page Giter Club logo

Comments (4)

xemwebe avatar xemwebe commented on May 29, 2024 3

Since I contributed the root-finding Brent method to this library, I would like to comment on this. Yes, root-finding is different from minimization, but there is a tight relationship between those methods. My understanding was that the library focusse on optimization, not only minimization, and root finders can be applied to many optimization problems. Actually, this is what I use Brent's root finder for. A separation of root finding and minimization problems makes sense in the documentation. I would favor a separation within the library only if it occurs that the interface requirements a distinct enough to rectify a separation. However, that's finally up to the library's owner.

from argmin.

stefan-k avatar stefan-k commented on May 29, 2024

I agree with @xemwebe and I also think that root finding algorithms have a place in this library as long as the methods purpose is clear from the documentation. The most difficult question now is probably how the two methods should be named. Do you have any suggestions?

from argmin.

Armavica avatar Armavica commented on May 29, 2024

Do you have any suggestions?

Here is a very limited example of how they are named by others:

root-finding minimization
Algorithms for Minimization Without Derivatives, Brent zero (ch. 4) localmin (ch. 5)
scipy (Python) brentq, brenth brent
boost (C++) not implemented brent_find_minima
GSL (C) gsl_root_fsolver_brent gsl_min_fminimizer_brent

I think I would personally favor naming them both brent but under different modules, for example root::brent and min::brent where root (or zero) and min (or opt) would host respectively all root-finding and minimization algorithms, a bit similarly to GSL with their prefixes. I think that this could also prevent the accidental use of a root-finding function instead of a minimization function by users.

from argmin.

stefan-k avatar stefan-k commented on May 29, 2024

Thanks a lot for compiling this table! I'd personally prefer the scipy approach, because I find it confusing when there are two methods with the same name, even if they are in different submodules.
I'm unsure whats the best approach to separate root finding from optimization. I think for now I would prefer to have them both in solvers::brent, but I'm open to other suggestions.

from argmin.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.