Scipy curve_fit을 사용하여 Gaussian에 데이터를 저장하려고합니다. 불행히도 curve_fit은 1,1,1을 반환합니다.Scipy curve_fit을 잘 사용하지 않는 것 같습니다.
Kp4=fnamer4[615:645]
xk=np.arange(0,1024,1)[615:645]
def func(x, a, x0, sigma):
return a*np.exp(-(x-x0)**2/(2*sigma**2))
popt, pcov = curve_fit(func, xk, Kp4)
print (popt)
Kp4_fit= func(xk, popt[0], popt[1], popt[2])
plt.plot(xk, Kp4_fit, 'r',xk, Kp4, 'bs')
Kp4 인쇄 POPT의 출력은 내가 전에 많은 다른 데이터에 curve_fit을 시도 [ 1. 1. 1.]
입니다
>>> Kp4
array([23, 27, 20, 26, 22, 22, 26, 29, 32, 19, 34, 26, 29, 24, 32, 41, 27,
39, 33, 30, 30, 30, 26, 39, 30, 21, 17, 16, 17, 14])
같고, 그것을 잘했다. 아마도 문제는 curve_fit이 데이터를 Gaussian 함수에 맞출 수 없다는 것입니다. 도움 주셔서 감사합니다.
나는 curve_fit을 위해 사용하고있는 개념은 노호 링크에서 예를 기반으로합니다 그렇지 않으면 적합로 시작, 당신은 POPT의 초기 추측을 통과해야 http://python4esac.github.io/fitting/examples1d.html
답이 나와 있으면 [여기] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)에 설명 된대로 표시하십시오. 따라서 다른 사용자는 a) 문제가 해결되고 b) 솔루션이 어떻게 보이는지 알 수 있습니다. 고맙습니다! – jkalden
도움 주셔서 감사합니다 jaklden – icypy