1

我有以下数据集,其中有几个颠簸和低谷。但是,当我尝试使用curve_fit来自scipy optimize模块的 Python 拟合曲线时,它并不能很好地再现凹凸。我尝试了 7-8 年级的多项式和正弦,但我找不到合适的东西。

我假设使用 7-8 级多项式我应该能够重现这些凸起(对于 7 级多边形,我将有 3 个凸起和 3 个谷,这应该足够了),但是,我只得到 2 个凸起配件。

有没有比在 Python 中拟合函数更好的方法curve_fit,或者我在拟合时做错了什么?

提前感谢您提供的任何解决方案。

4

2 回答 2

2

正如我在学校学到的那样,多项式通常不是拟合曲线的糟糕选择(精确拟合,10 个测量点会导致 9 年级的多项式)。当然,曲线在最里面的 4 或 5 个点是有意义的,但在它之前和之后,它与“真实”值相去甚远。四年级或五年级之前的一切都可以工作,之后我建议你研究样条曲线。我假设curve_fit不完全适合您的测量点的多项式,所以这“可能”工作。事情是,你的混乱点没有描述一个多项式,我假设他们也不打算这样做。
来自落石或破碎汽车的测量点(随时间变化的距离)可以很好地(并且应该)与 2 次多项式拟合,因为基函数是 2 次多项式s(t) = at^2 + v0t + s0

TL;DR 多项式拟合不好,除非基函数是多项式,这里使用样条拟合。

于 2020-08-25T19:45:21.860 回答
1

你可以使用更高次的多项式得到对我来说很合适的东西。该图像显示了 21 度多边形(绿色)和 41 度多边形(蓝色)和原始多边形(红色)的拟合。虽然多项式确实有其局限性,但它们通常确实可以合理地拟合。 使用正交多项式通过最小二乘拟合

于 2020-08-27T16:01:13.183 回答