? ? ? 在實(shí)際的應(yīng)用中,我們經(jīng)常會(huì)遇到一些曲線擬合得需求,盡管,實(shí)際上點(diǎn)對(duì)之間可能是沒有絕對(duì)意義上的函數(shù)關(guān)系的,但是為了更好地量化表示和計(jì)算,我們往往期望于從原始的數(shù)據(jù)集中盡可能地挖掘出來可能的函數(shù)關(guān)系,今天我遇上了一個(gè)問題就是如何去擬合指數(shù)函數(shù)+對(duì)數(shù)函數(shù)這種組合型函數(shù)曲線,簡單看一下具體的實(shí)現(xiàn)內(nèi)容:
def logExpFunc():
'''
【指數(shù)+對(duì)數(shù)】混合函數(shù)擬合
'''
x=np.linspace(1,2,15)
y=[21.5,23.1,25.9,30,32.6,38,41.9,47.2,55,61,69,80,90,105,117.6]
popt,pcov=curve_fit(lambda t,a,b,c,d,e: a+b*np.log(c*t)+d*np.exp(e*t),x,y)
print('popt: ',popt)
plt.figure()
a,b,c,d,e=popt
y_pre = a+b*np.log(c*x)+d*np.exp(e*x)
plt.plot(x, y, 'ko', label="Original Data")
plt.plot(x, y_pre, 'r-', label="Fitting Curve")
plt.legend()
plt.show()
? ? ?這里我的函數(shù)原型為:??
y = 4+2*np.exp(2*x)+3*np.log(2*x)
? ? ?y為指數(shù)函數(shù)和對(duì)數(shù)函數(shù)的組合形式,其中,一共有5個(gè)參數(shù)。
? ? ? 結(jié)果如下所示:
popt: [ 5.19163529 -1.73152698 1.57951688 2.44883023 1.92488973]
? ? ? 從結(jié)果輸出的5個(gè)參數(shù)上來看,a、b、c、d和e跟我們自己預(yù)設(shè)的函數(shù)原型中的參數(shù)是不一致的,但是不影響我們擬合得到所需要的曲線,這樣的參數(shù)不一定會(huì)是唯一的,可能跟我們函數(shù)曲線擬合的時(shí)候所使用到的點(diǎn)數(shù)據(jù)過少有關(guān)系吧,畢竟函數(shù)本身還是比較復(fù)雜的。
?
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元

