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()

пример выходного графа (с другим набором данных)

0 ответов

Другие вопросы по тегам