我想对任意阶的多项式函数进行非线性插值。使用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个输入的数量。