2016-06-22 36 views
0

我想知道是否有一種方法可以直接將樣條曲線擬合到函數而不是點上。目前我正在手動創建函數中的點。以下是我使用的代碼(簡化版)Scipy:將樣條曲線擬合到自定義函數而不是點

def get_fit_function(self, function, test_range, k=3, **fArgs): 

     x = np.array(test_range) 
     y = np.array([function(p, **fArgs) 
         for p in x]) # my function 
     u = UnivariateSpline(x, y, k=k) 
     print('avgError', u.get_residual()**0.5/len(x_values)) 
     return u 

我在scipy文檔中找不到任何東西。有人知道這種方法是否存在?謝謝。

回答

1

您需要在某個網格上對您的函數進行採樣。如果你有更多的信息,而不僅僅是點,你也可以使用它。首先,如果您可以計算衍生產品,您也可以使用這些衍生產品。

+0

感謝您的回答。事情是,我試圖加快我的代碼。所討論的函數來自一個隱式方程,所以使用樣條的計算速度是500-1000倍('%timeit'),且誤差最小。 – Mstaino