# ulab.approx – Numerical approximation methods¶

ulab.approx.bisect(fun: Callable[[float], float], a: float, b: float, *, xtol: float = 2.4e-07, maxiter: int = 100) → float
Parameters: f (callable) – The function to bisect a (float) – The left side of the interval b (float) – The right side of the interval xtol (float) – The tolerance value maxiter (float) – The maximum number of iterations to perform

Find a solution (zero) of the function f(x) on the interval (a..b) using the bisection method. The result is accurate to within xtol unless more than maxiter steps are required.

ulab.approx.fmin(fun: Callable[[float], float], x0: float, *, xatol: float = 2.4e-07, fatol: float = 2.4e-07, maxiter: int = 200) → float
Parameters: f (callable) – The function to bisect x0 (float) – The initial x value xatol (float) – The absolute tolerance value fatol (float) – The relative tolerance value

Find a minimum of the function f(x) using the downhill simplex method. The located x is within fxtol of the actual minimum, and f(x) is within fatol of the actual minimum unless more than maxiter steps are requried.

ulab.approx.interp(x: ulab.array, xp: ulab.array, fp: ulab.array, *, left: Optional[float] = None, right: Optional[float] = None) → ulab.array
Parameters: x (ulab.array) – The x-coordinates at which to evaluate the interpolated values. xp (ulab.array) – The x-coordinates of the data points, must be increasing fp (ulab.array) – The y-coordinates of the data points, same length as xp left – Value to return for x < xp[0], default is fp[0]. right – Value to return for x > xp[-1], default is fp[-1].

Returns the one-dimensional piecewise linear interpolant to a function with given discrete data points (xp, fp), evaluated at x.

ulab.approx.newton(fun: Callable[[float], float], x0: float, *, xtol: float = 2.4e-07, rtol: float = 0.0, maxiter: int = 50) → float
Parameters: f (callable) – The function to bisect x0 (float) – The initial x value xtol (float) – The absolute tolerance value rtol (float) – The relative tolerance value maxiter (float) – The maximum number of iterations to perform

Find a solution (zero) of the function f(x) using Newton’s Method. The result is accurate to within xtol * rtol * |f(x)| unless more than maxiter steps are requried.

ulab.approx.trapz(y: ulab.array, x: Optional[ulab.array] = None, dx: float = 1.0) → float
Parameters: ulab.array y (1D) – the values of the dependent variable ulab.array x (1D) – optional, the coordinates of the independent variable. Defaults to uniformly spaced values. dx (float) – the spacing between sample points, if x=None

Returns the integral of y(x) using the trapezoidal rule.