It would be great with Chandrupatla's method as an alterantive to Brent's Method. This is also what is used in SciPy and what is avaliable in tensorflow probability:
Chandrupatla's method [1, 2] is a root-finding algorithm that is guaranteed to converge if a root lies within the given bounds. It generalizes the bisection method; at each step it chooses to perform either bisection or inverse quadratic interpolation. This makes it similar in spirit to Brent's method, which also considers steps that use the secant method, but Chandrupatla's method is simpler and often converges at least as quickly [3].
[1] Tirupathi R. Chandrupatla. A new hybrid quadratic/bisection algorithm for finding the zero of a nonlinear function without using derivatives. Advances in Engineering Software, 28.3:145-149, 1997. [2] Philipp OJ Scherer. Computational Physics. Springer Berlin, Heidelberg, 2010. Section 6.1.7.3 https://books.google.com/books?id=cC-8BAAAQBAJ&pg=PA95 [3] Jason Sachs. Ten Little Algorithms, Part 5: Quadratic Extremum Interpolation and Chandrupatla's Method (2015). https://www.embeddedrelated.com/showarticle/855.php
https://www.tensorflow.org/probability/api_docs/python/tfp/math/find_root_chandrupatla
This function currently uses Chandrupatla’s bracketing algorithm [1] and therefore requires argument init to provide a bracket around the root: the function values at the two endpoints must have opposite signs.
1
Chandrupatla, Tirupathi R. “A new hybrid quadratic/bisection algorithm for finding the zero of a nonlinear function without using derivatives”. Advances in Engineering Software, 28(3), 145-149. https://doi.org/10.1016/s0965-9978(96)00051-8
https://docs.scipy.org/doc/scipy-1.17.0/reference/generated/scipy.optimize.elementwise.find_root.html
It would be great with Chandrupatla's method as an alterantive to Brent's Method. This is also what is used in SciPy and what is avaliable in tensorflow probability:
https://www.tensorflow.org/probability/api_docs/python/tfp/math/find_root_chandrupatla
https://docs.scipy.org/doc/scipy-1.17.0/reference/generated/scipy.optimize.elementwise.find_root.html