Source code for wntr.utils.polynomial_interpolation

"""Functions for a polynomial interpolation using cubic spline."""

[docs] def cubic_spline(x1, x2, f1, f2, df1, df2): """ Method to compute the coefficients of a smoothing polynomial. Parameters ---------- x1: float point on the x-axis at which the smoothing polynomial begins x2: float point on the x-axis at which the smoothing polynomial ens f1: float function evaluated at x1 f2: float function evaluated at x2 df1: float derivative evaluated at x1 df2: float derivative evaluated at x2 Returns ------- A tuple with the smoothing polynomail coefficients starting with the cubic term. """ a = (2 * (f1 - f2) - (x1 - x2) * (df2 + df1)) / (x2 ** 3 - x1 ** 3 + 3 * x1 * x2 * (x1 - x2)) b = (df1 - df2 + 3 * (x2 ** 2 - x1 ** 2) * a) / (2 * (x1 - x2)) c = df2 - 3 * x2 ** 2 * a - 2 * x2 * b d = f2 - x2 ** 3 * a - x2 ** 2 * b - x2 * c return a, b, c, d