2016-10-26 4 views
0
def model(A, x, mu, sigma): 
return A*exp(-((x-mu)**2)/(2*sigma**2)) 
from scipy.optimize import curve_fit 
mu=np.mean(d_spacing_2) 
sigma=np.std(d_spacing_2) 
f=intensity_2 
x=d_spacing_2 
popt, pcov = curve_fit(model, A, x, mu, sigma) 

형식 오류 사용 :이 개 필요한 위치 인수 누락 모델() : '무'와 '시그마'당신은 완전히 잘못된 curve_fit를 사용하는curve_fit() 파이썬에게

답변

1

합니다. 여기 curve_fit의 도움과 추가적인 플로팅을 실시 예를 작동 :

import numpy as np 
import matplotlib.pyplot as plt 
from scipy.optimize import curve_fit 
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)) 

popt, pcov = curve_fit(func, xdata, ydata,p0=[2,1,1]) 

plt.ion() 
plt.plot(xdata,ydata,'o') 
xplot = np.linspace(0,4,100) 
plt.plot(xplot,func(xplot,*popt)) 

curve_fit의 제 1 입력 인자의 Y 값 데이터의 x 값은 두 번째와 세 번째 기능이다. 일반적으로 솔루션의 초기 추측 인 선택적 입력 인수 p0을 사용해야합니다.

+0

xdata = np.linspace (0, 4, 50) y = func (xdata, 2.5, 1.3, 0.5) ydata = y + 0.2 * np.random.normal (크기 = len (xdata)) 평균? –

+0

단지 인공 (무작위로 생성 된) 데이터를 생성합니다. 예를 들어 모든 기능이 도움 (np.linspace)으로 무엇을하는지 볼 수 있습니다. – Jannick

관련 문제