2011-02-16 98 views
0

我正在寻找一个“方法”来得到一个公式,它来自拟合一组数据(3000点)。我使用的是勒让德多项式,但对于> 20点,它给出的不是确切的值。我可以编写chi2测试,但算法需要花费大量时间来计算N个参数,并且在开始时我不知道函数的外观如何,因此需要时间。我在想花键...也许...大型数据集,插值

所以输入为:3000品脱

输出:F(X)= ...的东西

我想有从拟合公式。什么是在Python中做到这一点的最佳方式?

让力量与我们同在! Nykon

+0

我同意Josh在他的回答中的评论:没有看到数据的散点图,很难提出数据拟合策略,更不用说Python中的实现。 – las3rjock 2011-02-16 21:04:33

回答

0

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

有多么出色的配合需要呢?你期望什么类型的配方?

2

除了样条不会给你一个“公式”,至少除非你有必要处理所有分段段。即使那样,它也不会轻易写下来,或者给你任何可看的东西。

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

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

或者你真的想要一个近似值?一个功能,将近似适合您的数据,平滑任何噪音?事实是,很多时候,不知道自己在做什么的人说的是“插值”,他们确实意味着近似,平滑。当然,这是可能的,但是关于曲线拟合的主题是经验数据的建模。你的第一个目标就是选择一个智能模型,它将代表这些数据。当然,最好的情况是,如果你通过物理理解研究中的关系来进行模型的智能选择,那么你可以使用非线性回归方案来估计该模型的参数,其中有很多可以找到的参数。

如果您没有模型,并且不愿意选择一个大致具有适当形状的模型,那么您将留下具有样条线形式的泛型模型,这些模型可以用回归方法拟合,也可以用高阶多项式模型,我对此没有多少尊重。

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

0

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