我有一些数据(x
和y
坐标)来自一项研究,我必须绘制它们并找到适合数据的最佳曲线。我的曲线是:Python拟合多项式,幂律和指数数据
- 多项式达6度;
- 幂律;
- 指数。
我能找到多项式最适合与
while(i < 6):
coefs, val = poly.polyfit(x, y, i, full=True)
,我采取最小化val
程度。
当我必须适应幂律(最有可能在我的研究中),我不知道如何正确地做到这一点。这就是我所做的。我已将日志函数应用于所有x
和y
,并且我试图用线性多项式来拟合它。如果误差(val)低于之前尝试过的其他多项式,我选择幂律函数(自然如果线的m为负数)。我对么?
现在我怎么能重建我的幂律从y = mx + q
行,以绘制它与原始点?我还需要显示找到的功能。
我试图与:
def power_law(x, m, q):
return q * (x**m)
使用
x_new = np.linspace(x[0], x[-1], num=len(x)*10)
y1 = power_law(x_new, coefs[0], coefs[1])
popt, pcov = curve_fit(power_law, x_new, y1)
但得到的曲线不拟合数据。
*“看起来效果不好”*是什么意思?错误(提供完整的追溯)?意想不到的产出(提供投入,预期和实际产出)? – jonrsharpe
这是一个方法论上的问题,我不要求一个完整的代码,代码在这里没有必要。我不是问这个问题。有一个问题:“我是否正确?如何重建权力法?” – Nadir
曲线不符合数据,所以,从方法论角度来说,我的想法可能不是正确的。 – Nadir