2016-06-22 2 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

No.

Вы должны попробовать ваши функции на некоторой сетке. Если у вас есть больше информации, чем просто очки, вы тоже можете это использовать. Например, если вы можете вычислить производные инструменты, вы также можете использовать их.

+0

Спасибо за ответ. Дело в том, что я пытаюсь ускорить мой код. Эта функция возникает из неявного уравнения, поэтому вычисление с сплайном в 500-1000 раз быстрее ('% timeit') с минимальной ошибкой. – Mstaino

Смежные вопросы