受约束的np.polyfit

时间:2014-11-06 17:03:36

标签: numpy constraints

我试图将二次方拟合到一些实验数据并在numpy中使用polyfit。我希望得到一个凹曲线,因此想要确保二次项的系数是负的,而且拟合本身也是加权的,因为在点上有一些权重。有一个简单的方法吗?感谢。

2 个答案:

答案 0 :(得分:2)

描述权重的使用here (numpy.polyfit)。 基本上,你需要一个长度与x和y相同的权重向量。

为了避免系数中的错误符号,您可以使用像

这样的拟合函数定义
def fitfunc(x,a,b,c):
    return -1 * abs(a) * x**2 + b * x + c 

这将始终为您提供x ** 2的负系数。

答案 1 :(得分:0)

您可以使用curve_fit

或者您可以使用等级2运行polyfit,如果最后一个系数大于0.再次运行线性polyfit(具有等级1的polyfit)