scipy.interpolate.krogh_interpolate#

krogh_interpolate(xi, yi, x, der=0, axis=0)[source]#

Convenience function for polynomial interpolation.

See KroghInterpolator for more details.

Parameters#

xiarray_like

Interpolation points (known x-coordinates).

yiarray_like

Known y-coordinates, of shape (xi.size, R). Interpreted as vectors of length R, or scalars if R=1.

xarray_like

Point or points at which to evaluate the derivatives.

derint or list or None, optional

How many derivatives to evaluate, or None for all potentially nonzero derivatives (that is, a number equal to the number of points), or a list of derivatives to evaluate. This number includes the function value as the ‘0th’ derivative.

axisint, optional

Axis in the yi array corresponding to the x-coordinate values.

Returns#

dndarray

If the interpolator’s values are R-D then the returned array will be the number of derivatives by N by R. If x is a scalar, the middle dimension will be dropped; if the yi are scalars then the last dimension will be dropped.

See Also#

KroghInterpolator : Krogh interpolator

Notes#

Construction of the interpolating polynomial is a relatively expensive process. If you want to evaluate it repeatedly consider using the class KroghInterpolator (which is what this function uses).

Examples#

We can interpolate 2D observed data using Krogh interpolation:

>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> from scipy.interpolate import krogh_interpolate
>>> x_observed = np.linspace(0.0, 10.0, 11)
>>> y_observed = np.sin(x_observed)
>>> x = np.linspace(min(x_observed), max(x_observed), num=100)
>>> y = krogh_interpolate(x_observed, y_observed, x)
>>> plt.plot(x_observed, y_observed, "o", label="observation")
>>> plt.plot(x, y, label="krogh interpolation")
>>> plt.legend()
>>> plt.show()