Python优化fmin给出x_new中的A值高于插值范围误差

时间:2016-07-20 11:16:11

标签: python optimization scipy interpolation

我试图插入二次函数的最小值,其中我有三个样本。下面的代码片段中的第一个测试有效。它给: 在第二次测试中,有两个相似的值。我的二次函数的最小值应介于两者之间。但是,我收到以下错误 " x_new中的值高于插值范围。" 有没有人知道如何解决这个问题。 从matplotlib导入pyplot作为plt 来自scipy import interpolate 来自scipy import optimize def测试(x,y):     xmin,ymin = getMin(x,y)     plt.figure()     plt.plot(x,y,' o-r',xmin,ymin,' bx') def getMin(x,y):     f = interpolate.interp1d(x,y,kind =" quadratic")     xmin = optimize.fmin(lambda x:f(x),x [1])     ymin = f(xmin)     return xmin [0],ymin [0] 测试([18,19,20],[ - 34.3,-74.3,-7.3]) 测试([18,19,20],[ - 34.3,-74.3,-74.2])

1 个答案:

答案 0 :(得分:0)

分析就像魅力一样

def getMinFit(x, y):
    p = np.polyfit(x, y, 2)
    xmin = -p[1]/(2*p[0])
    ymin = np.polyval(p, xmin)
    return xmin, ymin

enter image description here