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 年。
範例
範例在教學文件中提供。