python - 使用 optimization.curve_fit 的曲线拟合在各处跳跃
问题描述
我有两个计算值数组,分别命名为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 值并绘制它,但这条线从我的图中消失了。我是否缺少一些东西来让它表现得更好?
解决方案
推荐阅读
- c# - 从 Azure Blob 存储下载流的最佳方式
- r - 从外部文件为 read_csv 指定列类型
- android - 未处理的异常:将对象转换为可编码对象失败:“SendMessage”实例
- javascript - Webpack 和 Typescript(ts-loader) 上的设置问题
- java - java 8无法连接到oracle 19c DB
- android - Jetpack Compose 中的 @Stable 和 @Immutable 注解是什么意思?
- php - 如何通过 PHP 中的 POST 方法传输图像
- jenkins - 使用公共 IP 转发端口后出现 HTTP ERROR: 404 for Jenkins
- python - Jenkins/Python:Jenkinsfile linter/validator
- mongodb - Realm MongoDB 和 Reanimated 2 之间的冲突