python數(shù)據(jù)擬合之scipy.optimize.curve_fit解讀
scipy.optimize.curve_fit解讀
相比numpy庫的多項式擬合函數(shù)polyfit,scipy.optimize模塊中的函數(shù)curve_fit能夠擬合的函數(shù)范圍更廣,不局限于多項式函數(shù)
已有數(shù)據(jù)

# 導入模塊 import numpy as np import matplotlib.pyplot as plt from scipy.optimize import curve_fit
# 導入數(shù)據(jù) x = np.linspace(0,1.0,11) y = np.array([-0.447, 1.978, 3.28, 6.16, 7.08, 7.34, 7.66, 9.56, 9.48, 9.30, 11.2])
# 擬合二次多項式
f = lambda x, a, b, c: a*x**2 + b*x + c
# popt為擬合參數(shù),pcov為參數(shù)的協(xié)方差矩陣
popt, pcov = curve_fit(f, x, y)
print("擬合的參數(shù)值a,b,c分別為:", popt)
# x=0.25, 0.35的預測值
print("x=0.25, 0.35的預測值為", f(np.array([0.25, 0.35]), *popt))擬合的參數(shù)值a,b,c分別為: [-9.81083901 20.12929291 -0.03167108]
x=0.25, 0.35的預測值為 [4.38747471 5.81175366]
plt.rc('font', size=15)
plt.plot(x, y, '*') # 觀測值數(shù)據(jù)的散點圖
# 擬合數(shù)據(jù)的折線圖
plt.plot(np.linspace(0.0, 1.0, 50), f(np.linspace(0.0, 1.0, 50), *popt), '-')
plt.show()
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
YOLOv5車牌識別實戰(zhàn)教程(六)性能優(yōu)化與部署
這篇文章主要介紹了YOLOv5車牌識別實戰(zhàn)教程(六)性能優(yōu)化與部署,在這個教程中,我們將一步步教你如何使用YOLOv5進行車牌識別,幫助你快速掌握YOLOv5車牌識別技能,需要的朋友可以參考下2023-04-04
Pandas DataFrame 取一行數(shù)據(jù)會得到Series的方法
今天小編就為大家分享一篇Pandas DataFrame 取一行數(shù)據(jù)會得到Series的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11
pyqt QGraphicsView 以鼠標為中心進行縮放功能實現(xiàn)
在PyQt開發(fā)中,實現(xiàn)QGraphicsView的鼠標中心縮放功能需要注意初始化以及關鍵函數(shù)的重定義,遇到不達預期的效果時,可能需要重寫所有鼠標事件,本文記錄了解決QGraphicsView鼠標縮放問題的過程,供開發(fā)者參考2024-10-10
在Python的Django框架中創(chuàng)建語言文件
這篇文章主要介紹了在Python的Django框架中創(chuàng)建語言文件的方法,以語言代碼來表示語言區(qū)域種類,需要的朋友可以參考下2015-07-07

