|
|
1
2
好吧,没有那么多你真正关心的复杂度类,所以让我们说:线性、二次、多项式(度gt;2)、指数和对数。 对于其中的每一个,您都可以使用最大的(x,y)对来求解未知变量。设y=f(x)将算法的运行时间表示为样本大小的函数。假设f(1)=0,如果不是,我们可以从每个y中减去y(1),这就消除了f(x)中的常数。让y(end)表示(x,y)数据集中y的最后一个(也是最大的)值。 在这一点上,我们可以解出每个规范形式中的未知:
因为每个方程中只有一个未知数,所以我们可以用任何点来解它。考虑从随机度的多项式生成的以下数据>2:
如果我们用最后一个点来解每种可能性的c(假设这是最小的噪声估计值)
现在我们可以比较这些函数中的每一个与剩余数据的匹配程度,下面是一个图: 我是新来的,无法发布图片,请看下面的图: http://i.stack.imgur.com/UH6T8.png 真实数据显示在红色星号中,与绿线呈线性,蓝色为二次曲线,黑色为多项式,粉红色为指数,与O's呈绿色的对数图中。从残差中应该很清楚什么函数最适合您的数据。 |
|
|
2
1
曲线拟合曾经是一门艺术,但现在不知何故已经腐朽了:)(这对周围的物理学家来说是个笑话) 已经取得了很多进展,这使得简单的凡人可以猜测(一些)非平凡的功能依赖性。 我不会对方法和限制进行描述,但我会向您介绍 eureqa 这是康奈尔大学开发的一个非常好的软件。
如果模型不太复杂的话,我试了几次Eureqa,效果非常好。我认为它足以区分多项式、对数和指数。 嗯! 后稿:遗憾的是,软件不再免费:( |