scipy.interpolate.

bisplrep#

scipy.interpolate.bisplrep(x, y, z, w=None, xb=None, xe=None, yb=None, ye=None, kx=3, ky=3, task=0, s=None, eps=1e-16, tx=None, ty=None, full_output=0, nxest=None, nyest=None, quiet=1)[原始碼]#

尋找表面的雙變量 B 樣條表示。

給定一組代表表面 z=f(x,y) 的資料點 (x[i], y[i], z[i]),計算表面的 B 樣條表示。基於 FITPACK 的常式 SURFIT。

參數:
x、y、zndarray

資料點的 Rank-1 陣列。

wndarray,選用

權重的 Rank-1 陣列。預設為 w=np.ones(len(x))

xb、xefloat,選用

x 中近似區間的端點。預設為 xb = x.min(), xe=x.max()

yb、yefloat,選用

y 中近似區間的端點。預設為 yb=y.min(), ye = y.max()

kx、kyint,選用

樣條的次數 (1 <= kx, ky <= 5)。建議使用三次 (kx=ky=3)。

taskint,選用

如果 task=0,則針對給定的平滑因子 s 尋找 x 和 y 中的節點和係數。如果 task=1,則針對平滑因子 s 的另一個值尋找節點和係數。bisplrep 之前必須已使用 task=0 或 task=1 呼叫過。如果 task=-1,則針對給定的一組節點 tx、ty 尋找係數。

sfloat,選用

非負平滑因子。如果權重對應於 z 中誤差的標準差的倒數,則應在範圍 (m-sqrt(2*m),m+sqrt(2*m)) 中找到一個好的 s 值,其中 m=len(x)。

epsfloat,選用

用於確定過度確定的線性方程組的有效秩的閾值 (0 < eps < 1)。eps 不太可能需要更改。

tx、tyndarray,選用

task=-1 的樣條節點的 Rank-1 陣列

full_outputint,選用

非零以傳回選用輸出。

nxest、nyestint,選用

節點總數的過高估計值。如果為 None,則 nxest = max(kx+sqrt(m/2),2*kx+3)nyest = max(ky+sqrt(m/2),2*ky+3)

quietint,選用

非零以抑制訊息列印。

傳回值:
tckarray_like

一個列表 [tx, ty, c, kx, ky],其中包含表面的雙變量 B 樣條表示的節點 (tx, ty) 和係數 (c) 以及樣條的次數。

fpndarray

樣條近似的平方殘差的加權總和。

ierint

關於 splrep 成功的整數旗標。如果 ier<=0,則表示成功。如果 ier 在 [1,2,3] 中,則發生錯誤但未引發。否則會引發錯誤。

msgstr

與整數旗標 ier 對應的訊息。

註解

請參閱 bisplev 以評估給定其 tck 表示的 B 樣條的值。

如果輸入資料使得輸入維度的單位不相稱且相差多個數量級,則內插器可能具有數值偽影。請考慮在內插之前重新調整資料的比例。

參考文獻

[1]

Dierckx P.: 使用樣條函數進行表面擬合的演算法 Ima J. Numer. Anal. 1 (1981) 267-283。

[2]

Dierckx P.: 使用樣條函數進行表面擬合的演算法報告 tw50, Dept. Computer Science,K.U.Leuven, 1980。

[3]

Dierckx P.: 曲線和表面樣條擬合,數值分析專著,牛津大學出版社,1993 年。

範例

範例在教學文件中提供。