首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >对数据进行多项式拟合

对数据进行多项式拟合
EN

Stack Overflow用户
提问于 2008-12-19 20:59:01
回答 6查看 56.5K关注 0票数 54

在给定一组值(x,f(x))的情况下,有没有办法找到最适合数据的给定次数的多项式?

我知道polynomial interpolation,它用于找到给定n+1数据点的n次多项式,但这里有大量的值,我们想要找到一个低次多项式(找到最佳线性拟合、最佳二次、最佳三次等)。这可能与least squares有关。

更广泛地说,我想知道当我们有一个多元函数时的答案--比如像(x,y,f(x,y))这样的点--并且想在变量中找到给定次数的最佳多项式(p(x,y))。(具体地说是多项式,而不是样条或傅立叶级数。)

理论和代码/库(最好使用Python,但任何语言都可以)都会很有用。

EN

回答 6

Stack Overflow用户

发布于 2008-12-19 21:06:38

是的,这通常是通过使用最小二乘来完成的。还有其他方法可以指定多项式的拟合程度,但这个理论对于最小二乘来说是最简单的。一般的理论称为线性回归。

您最好的选择可能是从Numerical Recipes开始。

R是免费的,可以做你想做的任何事情,甚至更多,但它有一个很大的学习曲线。

如果您可以访问Mathematica,则可以使用fit函数进行最小二乘拟合。我想Matlab和它的开源对应物Octave也有类似的功能。

票数 7
EN

Stack Overflow用户

发布于 2008-12-19 21:33:23

对于(x,f(x))情形:

代码语言:javascript
复制
import numpy

x = numpy.arange(10)
y = x**2

coeffs = numpy.polyfit(x, y, deg=2)
poly = numpy.poly1d(coeffs)
print poly
yp = numpy.polyval(poly, x)
print (yp-y)
票数 5
EN

Stack Overflow用户

发布于 2008-12-20 09:52:56

请记住,高次多项式总是能更好地拟合数据。然而,高次多项式通常会导致非常不可能的函数(参见Occam's Razor) (过拟合)。你想在简单性(多项式的次数)和拟合(例如最小二乘误差)之间找到一个平衡点。在数量上,有对此的测试,Akaike Information CriterionBayesian Information Criterion。这些测试给出了优先选择哪种模型的分数。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/382186

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档