나는 적당한 양을 찾고 아직 내 질문에 대한 명확한 해결책을 찾지 못했습니다. 현재 Gaussian 피팅 자습서를 볼 때 볼 수있는 일반적인 데이터 집합 인 x 축을 따라있는 모든 데이터에 가우스를 맞출 수 있습니다. 이제는 X 축 위에 일정량 올려 진 데이터가 있으므로 Gaussian fit을 x 축에 맞출 수 없습니다. 내 솔루션 그냥 추가 + y0 상수와 가우스 함수를 정의하는 것입니다. 나는 이것을 코딩하는 법을 모른다. 현재 나는 다음과 같은 것을 가지고있다.도움이 필요하십니까 파이썬 y = 0에서 x 축을 따라 있지 않은 데이터에 가우스를 맞추기
def gaus(x,a,x0,sigma,y0):
return y0+a*exp(-(x-x0)**2/(2*sigma**2))
하지만이 후 어떻게 파라미터 추측 등을 변경 않습니다
내가하고 싶다n = len(xcut)
mean = center
sigma = sum(ycut*(xcut-mean)**2)/n
def gaus(x,a,x0,sigma):
return a*exp(-(x-x0)**2/(2*sigma**2))
popt,pcov = curve_fit(gaus,xcut,ycut,p0=[45,mean,sigma])
그래서 기능입니다 ? 진폭과 비슷하게 p0 내부에 내 추측을 입력합니까?
편집 : 필자는 y0을 내가 상상할 수있는 상수 값으로 설정할 수 있으며 적합성이 잘 적용됩니다. 그러나 이것은 각 데이터 세트에 대해 매번 좋은 추측을해야합니다. 그게 다행이지만 고통이야!
도움을 주시면 감사하겠습니다.