从数值数据中找到增长率

计算科学 matlab 数值分析 复杂
2021-12-05 06:50:29

假设我有一堆 10 个数据点,我必须得出增加是否为的结论。n2,n3,,2n,3n,en,

例如我有图像: -

在此处输入图像描述

现在增加是多项式或指数的。第一个问题是如何决定?

情况1:多项式递增,即nc

那么如何找到常数c

情况2:呈指数增长,即cn

那么如何找到常数c

是否有解决此问题的综合伪代码?

1个回答

以两种不同的方式绘制数据:

  1. log(y)x
  2. log(y)log(x)

如果您的数据在第一种情况下看起来是线性的,那么您的数据采用的形式,并且该线将具有斜率这可以从关系中看出。y(x)=Acxlog(c)log(y)=log(Acx)=log(c)x+log(A)

如果您的数据在第二种情况下看起来是线性的,那么您的数据可能来自形式的函数,并且该线将具有斜率这可以从y(x)=Axcclog(y)=log(Axc)=clog(x)+log(A)

我会提到,如果您的多项式生成的数据具有非零截距,如果您的值范围不大,这有时会使它看起来呈指数级。如果您有一些想法来确定您的数据是否应该具有指数或多项式行为,则最好。这可以帮助您在应用此技术之前清理数据。如果您的数据嘈杂,这种影响显然会加剧,因为在不驱动任何低于 0 的 y 值的情况下移除截距要困难得多(您的回归会抱怨复数......)。x