scipy.interpolate.

krogh_interpolate#

scipy.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()
../../_images/scipy-interpolate-krogh_interpolate-1.png