本文簡要介紹 python 語言中 scipy.interpolate.sproot
的用法。
用法:
scipy.interpolate.sproot(tck, mest=10)#
求三次方 B-spline 的根。
給定三次 B-spline 的結 (>=8) 和係數,返回樣條曲線的根。
- tck: 元組或 BSpline 對象
如果是元組,那麽它應該是長度為 3 的序列,包含結向量、B-spline 係數和樣條曲線的階數。結的數量必須 >= 8,且次數必須為 3。結必須是單調遞增的序列。
- mest: 整數,可選
零數量的估計(默認為 10)。
- zeros: ndarray
給出樣條根的數組。
參數 ::
返回 ::
注意:
不建議直接操作tck-tuples。在新代碼中,更喜歡使用
BSpline
對象。參考:
[1]C. de Boor,“關於使用 b-splines 進行計算”,J. 近似理論,6,第 50-62 頁,1972 年。
[2]M. G. Cox,“b-splines 的數值評估”,J. Inst。數學應用,10,第 134-149 頁,1972 年。
[3]P. Dierckx,“用樣條擬合曲線和曲麵”,數值分析專著,牛津大學出版社,1993 年。
例子:
對於某些數據,此方法可能會丟失根。當樣條線結之一(FITPACK 自動放置)恰好與真實根重合時,就會發生這種情況。解決方法是轉換為
PPoly
,它使用不同的 root-finding 算法。例如,
>>> x = [1.96, 1.97, 1.98, 1.99, 2.00, 2.01, 2.02, 2.03, 2.04, 2.05] >>> y = [-6.365470e-03, -4.790580e-03, -3.204320e-03, -1.607270e-03, ... 4.440892e-16, 1.616930e-03, 3.243000e-03, 4.877670e-03, ... 6.520430e-03, 8.170770e-03] >>> from scipy.interpolate import splrep, sproot, PPoly >>> tck = splrep(x, y, s=0) >>> sproot(tck) array([], dtype=float64)
轉換為 PPoly 對象確實可以在 x=2 處找到根:
>>> ppoly = PPoly.from_spline(tck) >>> ppoly.roots(extrapolate=False) array([2.])
本教程中給出了更多示例。
相關用法
- Python SciPy interpolate.splder用法及代碼示例
- Python SciPy interpolate.splantider用法及代碼示例
- Python SciPy interpolate.splrep用法及代碼示例
- Python SciPy interpolate.splprep用法及代碼示例
- Python SciPy interpolate.make_interp_spline用法及代碼示例
- Python SciPy interpolate.krogh_interpolate用法及代碼示例
- Python SciPy interpolate.InterpolatedUnivariateSpline用法及代碼示例
- Python SciPy interpolate.BSpline用法及代碼示例
- Python SciPy interpolate.LSQSphereBivariateSpline用法及代碼示例
- Python SciPy interpolate.griddata用法及代碼示例
- Python SciPy interpolate.LinearNDInterpolator用法及代碼示例
- Python SciPy interpolate.PPoly用法及代碼示例
- Python SciPy interpolate.NdBSpline用法及代碼示例
- Python SciPy interpolate.pade用法及代碼示例
- Python SciPy interpolate.barycentric_interpolate用法及代碼示例
- Python SciPy interpolate.RegularGridInterpolator用法及代碼示例
- Python SciPy interpolate.NdPPoly用法及代碼示例
- Python SciPy interpolate.interp2d用法及代碼示例
- Python SciPy interpolate.approximate_taylor_polynomial用法及代碼示例
- Python SciPy interpolate.RectSphereBivariateSpline用法及代碼示例
- Python SciPy interpolate.CloughTocher2DInterpolator用法及代碼示例
- Python SciPy interpolate.interp1d用法及代碼示例
- Python SciPy interpolate.BPoly用法及代碼示例
- Python SciPy interpolate.BarycentricInterpolator用法及代碼示例
- Python SciPy interpolate.make_smoothing_spline用法及代碼示例
注:本文由純淨天空篩選整理自scipy.org大神的英文原創作品 scipy.interpolate.sproot。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。