# 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.