如何使用任意阶函数的优化、插值、目标



我想对任意阶的多项式函数进行非线性插值。使用scipy.optimize和curve_filt,我可以定义像这样的目标

def objective(x, p_0, p_1, p_2):
return p_0 + p_1 * x + p_2 * np.power(x,2)

但这不是我需要的。我想根据具体情况选择功能所需的顺序。类似的东西

p = np.array([0,0,0])
def objective(x, p ):
res = np.sum(p[i]*np.power(x,i) for i in range(3))
return res

我想到了,但它不起作用。我想自由地决定用3个10或其他什么,这将是函数的额外参数。同时,我不太相信curve_fit是最好的选择。

谢谢你的想法。

很简单,您可以修改示例中的函数,使其采用第三个参数:

p = np.array([0,0,0])
def objective(x, p, n):
res = np.sum(p[i]*np.power(x,i) for i in range(n))
return res

参数";n〃;就是p数组的长度/p个输入的数量。

最新更新