python擬合曲線

python擬合曲線比較簡(jiǎn)單的一般模板
注釋都是個(gè)人理解,可能會(huì)有錯(cuò)誤
但是為了數(shù)學(xué)建模之類(lèi)的算一下是沒(méi)有問(wèn)題啦

#導(dǎo)入各種需要的包#
import numpy as np
import matplotlib.pyplot as plt
from scipy import optimize


#定義所需要擬合的帶參數(shù)的一般函數(shù)類(lèi)型#
def fmax(x,a,b,c):
    return a*np.sin(x*np.pi/6+b)+c
'''
def func(x, a, b, c):
    return a * np.exp(-b * x) + c'''


#輸入數(shù)據(jù)#
x=np.arange(1,13,1)
x1=np.arange(1,13,0.01)
#第1、2個(gè)參數(shù)為坐標(biāo)范圍的起始點(diǎn)和終止點(diǎn),第3個(gè)參數(shù)為最小刻度#
#這里的x和y就是實(shí)際數(shù)據(jù)的量一定要一樣,但是擬合的曲線就不一定啦#
ymax=np.array([17, 19, 21, 28, 33, 38, 37, 37, 31, 23, 19, 18 ])
'''
np.arange(a,b,c)其實(shí)返回的也是一個(gè)數(shù)組
np.arange(1,3)
返回array([1, 2])
'''


fita,fitb=optimize.curve_fit(fmax,x,ymax,[1,1,1])
#最后的數(shù)組是對(duì)所求函數(shù)除x外參數(shù)的大小限制#
'''
參數(shù)分別為函數(shù)一般形式、橫坐標(biāo)范圍、縱坐標(biāo)范圍、
返回兩個(gè)數(shù)組,第一個(gè)是定義的函數(shù)中除x外各個(gè)參數(shù)的值,第二個(gè)是協(xié)方差
'''
print(fita)
plt.plot(x,ymax)
#畫(huà)出原來(lái)實(shí)際數(shù)據(jù)的圖形#
plt.plot(x1,fmax(x1,fita[0],fita[1],fita[2]))
#畫(huà)出擬合后獲得曲線的圖形#
plt.show()

這里是官方文件?

最后編輯于
?著作權(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)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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