I'm trying to find the minimum root of a function using scipy.optimize.newton(). The function I'm using is very complicated, and as a result I decided to have a set number of iterations and to keep the final answer even if the precision asked is not respected. As such, I would like to know when convergence happened and when it didn't, in one single bool variable.
The problem I'm running in is that newton() returns a 2 dimensional array with the root result as the first value, and the second value is an object with several values, of which I can't seem to extract the converged one.
I tried to look only at the second value of the newton return function. This is my code:
from scipy.optimize import newton
def function(x):
return x**2-1
def fprime(x):
return 2*x
x0=5
test = newton(function, x0, fprime=None, args=(), tol=1.48e-08, maxiter=5, fprime2=None, x1=None, rtol=0.0, full_output=True, disp=False)
print(test[1])
Which gives
converged: False
flag: 'convergence error'
function_calls: 7
iterations: 5
root: 1.0103336911991998
and what I would like is just one variable with 'False' in it (for this example)