Во время работы с моим набором данных я заметил, что выравнивание Excel Trend с линиями дает совершенно другие результаты, чем curve_fit в python:
Линия тренда экспоненты Excel дает следующее уравнение y = 0,00002178exp (0,53759216x) с = 0,00002178и b = 0,53759216
Python curve_fit (без ограничений) приводит к a = 0,19807362, b = 0,25736161
Когда построенное на Python решение кажется менее точным, чем Excel
Вот мой код:
df = pd.read_excel(path)
def func(x, a, b):
return a*np.exp(x*b)
popt, pcov = curve_fit(func, df['x'].values, df['y'].values)
Буду очень признателен за помощь, чтобы понять, почему в этом случае между Excel и Python довольно большие различия.
Вот ссылка на набор данных https://www.4shared.com/office/VQUrwRG0iq/New_Microsoft_Excel_Worksheet.html
Или просто ниже: x: 27,7 28,1 25,2 27,6 25,7 27,0 25,1 25,5 30,7 27,4 23,6 28,8 28,5 20,3 16,6 22,4 35,2 30,1 28,0 26,3 21,8 23,3 22,1 21,6 22,4 21,5 29,4 35,7 33,5 25,5 29,8 19,5 21,6 22,5 23,5 32,3 29,6 22,4 22,5 21,7 21,4 25,5 25,331,3 34,7 35,9 33,4 23,8 21,9 20,1 21,8
y: 950 1050 110 75 28 35 22 14 400 80 38 315 610 0,6 0,29,8 630 330 280 65 2,7 9,6 2,3 2,7 1,7 1,7 1,7 280 490 265 19 120 1 1,3 2,2 4,5 195 230 1,3 1,1 1 2,1 6 39 2170 1230 4150 2340 4,5 1,4 0,2 0,7