當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python SciPy interpolate.barycentric_interpolate用法及代碼示例


本文簡要介紹 python 語言中 scipy.interpolate.barycentric_interpolate 的用法。

用法:

scipy.interpolate.barycentric_interpolate(xi, yi, x, axis=0, *, der=0)#

多項式插值的便利函數。

構造一個通過給定點集的多項式,然後計算多項式。出於數值穩定性的原因,此函數不計算多項式的係數。

此函數使用 “barycentric interpolation” 方法,將問題視為有理函數插值的特殊情況。該算法在數值上相當穩定,但即使在精確計算的世界中,除非非常仔細地選擇 x 坐標 - 切比雪夫零點(例如 cos(i*pi/n))是一個不錯的選擇 - 多項式插值本身就是由於Runge現象,非常ill-conditioned進程。

參數

xi array_like

多項式應通過的點的 x 坐標的一維數組

yi array_like

多項式應通過的點的 y 坐標。

x 標量或類似數組

評估插值的一個或多個點。

der int 或列表或無,可選

要評估多少個導數,或者對於所有潛在的非零導數為“無”(即,等於點數的數字),或者要評估的導數列表。該數字包括作為 ‘0th’ 導數的函數值。

axis 整數,可選

yi 數組中對應於 x 坐標值的軸。

返回

y 標量或類似數組

插值。形狀是通過將原始數組中的插值軸替換為 x 的形狀來確定的。

注意

插值權重的構建是一個相對緩慢的過程。如果你想用相同的 xi(但可能改變 yi 或 x)多次調用它,你應該使用類 BarycentricInterpolator 。這就是這個函數在內部使用的。

例子

我們可以使用重心插值對 2D 觀測數據進行插值:

>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> from scipy.interpolate import barycentric_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 = barycentric_interpolate(x_observed, y_observed, x)
>>> plt.plot(x_observed, y_observed, "o", label="observation")
>>> plt.plot(x, y, label="barycentric interpolation")
>>> plt.legend()
>>> plt.show()
scipy-interpolate-barycentric_interpolate-1.png

相關用法


注:本文由純淨天空篩選整理自scipy.org大神的英文原創作品 scipy.interpolate.barycentric_interpolate。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。