Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 曲线拟合与优化。曲线拟合到处跳跃_Python_Matplotlib_Scipy - Fatal编程技术网

Python 曲线拟合与优化。曲线拟合到处跳跃

Python 曲线拟合与优化。曲线拟合到处跳跃,python,matplotlib,scipy,Python,Matplotlib,Scipy,我有两个计算值数组,分别名为xvals和yvals。我知道这些数据点的函数形式,所以我知道应该得到的结果。我应该得到一条x^4曲线,但是当我让python计算并绘制最佳拟合时,这条线在所有数据点之间跳跃!以下是我迄今为止所做的尝试: def func(x, a, b, c, d, e): return a - b*x - c*x**2 - d*x**3 - e*x**4 fita, fitb = optimization.curve_fit(func, xvals, yvals) #

我有两个计算值数组,分别名为
xvals
yvals
。我知道这些数据点的函数形式,所以我知道应该得到的结果。我应该得到一条x^4曲线,但是当我让python计算并绘制最佳拟合时,这条线在所有数据点之间跳跃!以下是我迄今为止所做的尝试:

def func(x, a, b, c, d, e):
    return a - b*x - c*x**2 - d*x**3 - e*x**4

fita, fitb = optimization.curve_fit(func, xvals, yvals)

#--stuff to initialize a matplotlib plot goes here blah blah blah--

plt.scatter(xvals, yvals, marker='o', c=cparam, cmap=plt.cm.get_cmap('viridis'), s=100, zorder=2)
plt.plot(xvals, func(xvals, *fita), 'r-')
曲线拟合返回a、b、c、d和e的正确系数。如您所见,绘制时,新拟合线似乎在所有数据点之间跳跃。我认为这与x值的顺序不符有关,但是如果我对它们进行排序,可能会破坏散点图的绘制。我试着制作一组新的独立的等距x值,并计算出一些相应的y值,然后进行绘图,但这条线从我的绘图中消失了。我是不是错过了一些东西让它表现得更好


对于线图,必须以递增顺序显示
xVAL
。您可以尝试
xvals=np.sort(xvals)
。您还可以使用
xs=np.linspace(xvals.min()-0.5,xvals.max()+0.5500)绘制平滑曲线
对于线图,必须以递增顺序显示
xvals
。您可以尝试
xvals=np.sort(xvals)
。您还可以使用
xs=np.linspace(xvals.min()-0.5,xvals.max()+0.5500)绘制平滑曲线