首先,這是一個賦值,我已經設置好了,所以我只在指針後面,而且我限制使用下面的庫,NumPy,SciPy和MatPlotLib。擬合高斯到一組x,y數據
我們已經給出了一個txt文件,其中包括用於共振實驗的x和y數據,並且必須適合高斯和洛倫茲擬合。我現在正在努力研究高斯擬合,並嘗試遵循前一個問題中列出的代碼作爲我自己的代碼的基礎。 (Gaussian fit for Python)
from numpy import *
from matplotlib import *
import matplotlib.pyplot as plt ##Import Libraries
import pylab
from scipy.optimize import curve_fit
####################################
energy,intensity=numpy.loadtxt('resonance_data.txt',unpack=True)
print energy
print intensity ##Load in text file and print the arrays
#####################################
n = size(energy)
mean = 30.7
sigma = 10
intensity0 = 45
def gaus(energy,intensity0,energy0,sigma):
return intensity0*exp(-(energy-energy0)**2/(sigma**2))
popt,pcov = curve_fit(gaus,energy,intensity,p0=[45,mean,sigma])
plt.plot(energy,intensity,'o')
plt.xlabel('Energy/eV')
plt.ylabel('Intensity')
plt.title('Plot of Intensity against Energy') ##Plot raw data along with axis labels and title
plt.plot(energy,gaus(energy,*popt))
plt.show()
如果我把表達式均值和西格瑪,爲在URL中張貼的曲線是一條水平線,它返回下面的圖
,所以我米猜測問題在於曲線擬合不收斂或什麼。
我是初學者有點的,所以任何指針是有益的:)
感謝
更新:我已經成功地提高了高斯擬合,並得到了洛倫茲的工作,甚至是(我認爲)管理計算每種情況下殘差的總和。
乾杯傢伙!
再次感謝你們
不知怎的,你鏈接的禮物的PIC本身作爲一個體面的適合.... –
一般的形狀是接近我所期望的,但高峯的高度是相當遙遠的。我知道它的'漂亮的傾斜,所以它不會完美適合,這是作業的重點,但我仍然期望更好? – user3507401
你應該是適合一個或一個二維高斯分佈? – Paul