diff --git a/pyerrors/roots.py b/pyerrors/roots.py index 792b2e63..a932fa8c 100644 --- a/pyerrors/roots.py +++ b/pyerrors/roots.py @@ -1,20 +1,31 @@ -#!/usr/bin/env python -# coding: utf-8 - import scipy.optimize from autograd import jacobian from .obs import derived_observable, pseudo_Obs def find_root(d, func, guess=1.0, **kwargs): - """Finds the root of the function func(x, d) where d is an Obs. + r'''Finds the root of the function func(x, d) where d is an `Obs`. Parameters ----------------- - d -- Obs passed to the function. - func -- Function to be minimized. Any numpy functions have to use the autograd.numpy wrapper - guess -- Initial guess for the minimization. - """ + d : Obs + Obs passed to the function. + func : object + Function to be minimized. Any numpy functions have to use the autograd.numpy wrapper. + Example: + ```python + import autograd.numpy as anp + def root_func(x, d): + return anp.exp(-x ** 2) - d + ``` + guess : float + Initial guess for the minimization. + + Returns + ------- + Obs + `Obs` valued root of the function. + ''' root = scipy.optimize.fsolve(func, guess, d.value) # Error propagation as detailed in arXiv:1809.01289