1

我正在寻找一种“方法”来获取公式,该公式来自拟合一组数据(3000 点)。我使用的是勒让德多项式,但对于 > 20 点,它给出的值不准确。我可以写chi2测试,但是算法需要大量时间来计算N个参数,而且一开始我不知道函数长什么样,所以需要时间。我在考虑样条曲线......也许......

所以输入是:3000品脱

输出:f(x) = ... 某事

我想有一个适合的公式。在 python 中执行此操作的最佳方法是什么?

让原力与我们同在!尼康

4

4 回答 4

3

多项式拟合怎么样:

http://docs.scipy.org/doc/numpy/reference/generated/numpy.polyfit.html

或其他一些插值方案:

http://docs.scipy.org/doc/scipy/reference/tutorial/interpolate.html

如果不了解数据集的更多信息以及需要的拟合程度,很难推荐合适的方法。

于 2011-02-16T20:57:02.207 回答
3

除了,样条不会给你一个“公式”,至少除非你有足够的资金来处理所有的分段段。即便如此,它也不会轻易写下来,或者给你任何好看的东西。

一个简单的样条曲线给你一个插值。更糟糕的是,对于 3000 个点,插值样条曲线会给你大致那么多的三次段!你之前确实说过插值。当然,一个如此高阶的插值多项​​式无论如何都是完整的,所以不要认为你可以回到那里。

如果您只需要一个可以在任何点提供精确插值的工具,并且您真的不需要明确的公式,那么插值样条曲线是一个不错的选择。

或者你真的想要一个近似值?一个可以近似拟合您的数据、消除任何噪音的函数?事实是,很多时候,当不知道自己在做什么的人说“插值”时,他们确实指的是近似,平滑。这当然是可能的,但是关于曲线拟合、经验数据建模的主题有整本书。然后,您的首要目标是选择一个智能模型来表示这些数据。最好的当然是,如果您从对所研究关系的物理理解中对模型进行了一些明智的选择,那么您可以使用非线性回归方案估计该模型的参数,其中有很多可以找到。

如果您没有模型,并且不愿意选择大致具有适当形状的模型,那么您将获得样条形式的通用模型,它可以在回归意义上进行拟合,或者使用高阶多项式模型,用于我很少尊重。

我的观点是,您需要做出一些选择并对模型的选择进行一些研究。

于 2011-02-16T21:05:58.770 回答
0

唯一的公式是 3000 阶的多项式。

合身需要有多好?你期望什么类型的公式?

于 2011-02-16T20:58:04.827 回答
0

您可以对观察到的点进行采样(随机最好)并将三次样条拟合到该样本(如果重复此过程,您可以创建样条分布)。将样条曲线拟合到 3,000 个点有点多,但是根据样本生成样条曲线分布可以让您了解函数的外观。正如 Josh 上面提到的,http ://docs.scipy.org/doc/scipy/reference/tutorial/interpolate.html是开始搜索的好地方。

于 2011-02-16T21:09:27.443 回答