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.