【轉(zhuǎn)】指數(shù)、冪函數(shù)擬合

轉(zhuǎn)自:python指數(shù)、冪數(shù)擬合curve_fit

1、一次二次多項(xiàng)式擬合

一次二次比較簡(jiǎn)單,直接使用numpy中的函數(shù)即可,polyfit(x, y, degree)。

2、指數(shù)冪數(shù)擬合curve_fit

使用scipy.optimize 中的curve_fit,冪數(shù)擬合例子如下:

from scipy.optimize import curve_fit  
import matplotlib.pyplot as plt  
import numpy as np  
  
def func(x, a, b, c):  
    return a * np.exp(-b * x) + c  
  
xdata = np.linspace(0, 4, 50)  
y = func(xdata, 2.5, 1.3, 0.5)  
ydata = y + 0.2 * np.random.normal(size=len(xdata))  
plt.plot(xdata,ydata,'b-')  
popt, pcov = curve_fit(func, xdata, ydata)  
#popt數(shù)組中,三個(gè)值分別是待求參數(shù)a,b,c  
y2 = [func(i, popt[0],popt[1],popt[2]) for i in xdata]  
plt.plot(xdata,y2,'r--')  
print popt  

下面是指數(shù)擬合例子:

def fund(x, a, b):  
    return x**a + b  
      
xdata = np.linspace(0, 4, 50)  
y = fund(xdata, 2.5, 1.3)  
ydata = y + 4 * np.random.normal(size=len(xdata))  
plt.plot(xdata,ydata,'b-')  
popt, pcov = curve_fit(fund, xdata, ydata)  
#popt數(shù)組中,三個(gè)值分別是待求參數(shù)a,b,c  
y2 = [fund(i, popt[0],popt[1]) for i in xdata]  
plt.plot(xdata,y2,'r--')  
print popt  
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Scipy scipy包含致力于科學(xué)計(jì)算中常見(jiàn)問(wèn)題的各個(gè)工具箱。它的不同子模塊相應(yīng)于不同的應(yīng)用。像插值,積分,優(yōu)化...
    Aieru閱讀 34,961評(píng)論 3 59
  • ??Scipy是一個(gè)用于數(shù)學(xué)、科學(xué)、工程領(lǐng)域的常用軟件包,可以處理插值、積分、優(yōu)化、圖像處理、常微分方程數(shù)值解的求...
    殉道者之花火閱讀 177,451評(píng)論 4 134
  • 任意波形的生成 (geneartion of arbitrary waveform) 在商業(yè),軍事等領(lǐng)域都有著重要...
    Lovingmylove521閱讀 11,026評(píng)論 1 13
  • 2017年還有9天就要徹底告別了 今晚我再一次聽(tīng)到了這首歌:[28256,28257,282931]此刻的我躺臥在...
    史蕭楠閱讀 496評(píng)論 0 5
  • 前段時(shí)間在網(wǎng)絡(luò)上看到一篇文章中提到90后已經(jīng)進(jìn)入“中年危機(jī)”開(kāi)篇就寫到根據(jù)《新華每日電訊》的報(bào)道國(guó)際上已經(jīng)將中...
    莉茹閱讀 468評(píng)論 0 3

友情鏈接更多精彩內(nèi)容