Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update algorithms using Newton's method #28

Open
PhilippSchuette opened this issue Apr 24, 2023 · 1 comment
Open

Update algorithms using Newton's method #28

PhilippSchuette opened this issue Apr 24, 2023 · 1 comment
Assignees
Labels
bug Something isn't working enhancement Enhance an existing feature

Comments

@PhilippSchuette
Copy link
Member

Those FinderAlgorithm implementations that use Newton's method (at any point during their lifetime) do not correctly reflect the relative error that the user requested. This is due to the user request not being passed down to the invocation of scipy.optimize.newton. This should be fixed!

Together with this fix we should implement the following feature to make algorithms using Newton's method more robust: Instead of an arbitrary number of sample points (NewtonGridAlgorithm) or an arbitrary measure for sufficiently close starting points (SimpleArgumentNewton) we should employ algorithms that adapt dynamically. In particular this could mean

  • successive refinement of the starting point grid until further refinement finds no additional zeros
  • starting Newton's algorithm as soon as a simple root has been detected - if convergence cannot yet be achieved, go for further subdivision
@PhilippSchuette PhilippSchuette added bug Something isn't working enhancement Enhance an existing feature labels Apr 24, 2023
@PhilippSchuette PhilippSchuette self-assigned this Apr 24, 2023
@PhilippSchuette
Copy link
Member Author

As part of this issue we should replace all invocations of Newton's method with a facade that provides a unified interface. In the future his would enable us to replace the scipy.optimize.newton implementation with different implementations or even completely different algorithms.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working enhancement Enhance an existing feature
Projects
None yet
Development

No branches or pull requests

1 participant