如何在Python中进行幂曲线拟合?

How to do power curve fitting in Python?

有一个关于指数曲线拟合的问题,但是我没有找到任何关于如何创建幂曲线拟合的资料,像这样:

y = a*x^b

在 Excel 中有一种方法可以做到这一点,但在 Python 中是否可行?

如果你做一个简单的转换,你可以应用通常的最小二乘回归。

而不是这个等式:

y = a*x^b

两边取自然对数:

ln(y) = ln(a*x^b) = ln(a) + ln(x^b) = ln(a) + b*ln(x)

这是 [ln(x), ln(y)] 的线性方程,斜率为 b,截距为 ln(a)

您可以对转换后的数据使用开箱即用的最小二乘法拟合。

只取对数:

y = ax^b
log(y) = log(a) + b*log(x)

并对 log(x)log(y) 对使用线性拟合。结果在一条斜率为b,截距为log(a)的直线上,取指数取参数a.