如何在Python中进行多维函数拟合
我正在做一些最小二乘拟合的工作。这是二维的,也就是说是 (x1i, x2i) 变成 (yi)。到目前为止,我查了很多网上的资料,但大多数都是针对一维的 (xi) 变成 (yi)。
1 有人知道怎么用标准的包来解决多维的最小拟合问题吗?比如说 leastsq?
2 还有一个问题是怎么返回多个函数!我想这样做的原因是为了处理 yi-f(xi) 这一部分。如果我的数据集比较小,我可以像下面这样做。但是如果数据量很大,我该怎么做呢?我可不想一个一个手动写函数...
def F(x):
return (weight(x[0],x[1],x[2],weeknumbers[0])-13,
weight(x[0],x[1],x[2],weeknumbers[1])-21,
weight(x[0],x[1],x[2],weeknumbers[2])-28,
weight(x[0],x[1],x[2],weeknumbers[3])-36,
weight(x[0],x[1],x[2],weeknumbers[4])-36,
weight(x[0],x[1],x[2],weeknumbers[5])-39,
weight(x[0],x[1],x[2],weeknumbers[6])-39,
weight(x[0],x[1],x[2],weeknumbers[7])-41,
weight(x[0],x[1],x[2],weeknumbers[8])-42)
1 个回答
0
在输入方面,你可以声明多个参数,比如写成“def F(x,y,z):”。而在返回值时,你可以使用元组(如何在Python中返回多个值?),或者直接返回一个列表,比如“return [a,b,c]”。