我花了一些時(shí)間,但我使用下面的代碼為自己創(chuàng)建了一個(gè)適合我的 x,y 數(shù)據(jù)集的高斯分布。import matplotlib.pyplot as pltimport numpy as npfrom scipy.optimize import curve_fitdef Gauss(x, a, x0, sigma, offset): return a * np.exp(-(x - x0)**2 / (2 * sigma**2)) + offsetx, y = np.random.random(100), np.random.random(100)popt, pcov = curve_fit(Gauss, x, y, p0=[np.max(y), np.median(x), np.std(x), np.min(y)])plt.plot(x, y, 'b+:', label='data')x_fit = np.linspace(np.min(x), np.max(x), 1000)plt.plot(x_fit, Gauss(x_fit, *popt), 'r-', label='fit')plt.legend()plt.title('Something')plt.xlabel('Anotherthing')plt.ylabel('Athing')plt.show()我可以看到我的合身性很好,可以看到圖表和所有內(nèi)容。我現(xiàn)在想知道的是如何在我的屏幕上打印出這個(gè)擬合的結(jié)果,例如擬合最大點(diǎn) x 處的最大值、估計(jì)誤差等?這些信息可以訪問(wèn)嗎?如果是這樣,有沒(méi)有辦法打印出這些信息?如果不是,請(qǐng)問(wèn)有人能指出正確的方向來(lái)找出合適的錯(cuò)誤嗎?
3 回答

桃花長(zhǎng)相依
TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超8個(gè)贊
相關(guān)信息包含在您的變量popt
和中pcov
。每個(gè)變量都會(huì)返回一個(gè)數(shù)組。

墨色風(fēng)雨
TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超6個(gè)贊
您還可以將最終參數(shù)添加到繪圖的標(biāo)簽How to return the fit error in Python curve_fit。

慕妹3242003
TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超6個(gè)贊
你適合的所有相關(guān)信息都包含在 popt (最佳參數(shù))和 pcov (協(xié)方差矩陣)中。在這種情況下,給定您的參數(shù)集(a、x0、sigma、offset),您可以將它們解壓為:
a,?x0,?sigma,?offset?=?popt;
類似地解開(kāi)他們的不確定性:
ua,?ux0,?usigma,?uoffset?=?np.sqrt(np.diag(pcov));
(因?yàn)樗鼈冇伤鼈冏约旱膮f(xié)方差給出)。
據(jù)我所知,curve_fit 不提供卡方或標(biāo)準(zhǔn)差等更多信息,我通常會(huì)在擬合完成后立即執(zhí)行所需的計(jì)算,只需將所有平方差相加并除以原始值(但這更多一個(gè)統(tǒng)計(jì)的東西)。
希望它有所幫助。
添加回答
舉報(bào)
0/150
提交
取消