Python, как найти уравнение степенного закона, подходящее к данным?
Я получил набор данных (x&y), и я хочу найти уравнение степенного закона линии наилучшего соответствия. Приведенный ниже код возвращает мне график степенного закона, но как я могу определить параметры c, c0 и m в этом случае?
from scipy.optimize import curve_fit
df = pd.DataFrame({
'x': [1,2,3,4,5,6],
'y': [2,4,2,6,7,9] })
def func_powerlaw(x, m, c, c0):
return c0 + x**m * c
target_func = func_powerlaw
X = df['x']
y = df['y']
popt, pcov = curve_fit(target_func, X, y)
plt.loglog(x,y,'r-')
plt.loglog(X, target_func(X, *popt), '--')
plt.show()