파이썬 | 플로팅 및 형태 데이터 맞는 끼워 맞춤 (1/A) E^- A가 검색 내가 선택할 답변을 찾을 수 있다는 많은 후 일정한
를 인 (X/A) 내 질문을 여기에 두시오.
표시된 데이터에 y = (1/A) e^(- x/A)의 형태로 지수 함수를 맞추려면 어떻게해야합니까? 파이썬으로 익숙해 져야 할 필요가 있습니다. 도움이 감사할만한 것입니다!
미리 감사드립니다.
파이썬 | 플로팅 및 형태 데이터 맞는 끼워 맞춤 (1/A) E^- A가 검색 내가 선택할 답변을 찾을 수 있다는 많은 후 일정한
를 인 (X/A) 내 질문을 여기에 두시오.
표시된 데이터에 y = (1/A) e^(- x/A)의 형태로 지수 함수를 맞추려면 어떻게해야합니까? 파이썬으로 익숙해 져야 할 필요가 있습니다. 도움이 감사할만한 것입니다!
미리 감사드립니다.
나는 그것을 이해 한 것처럼 보입니다.
def exponential_fit(x, a, c):
"""
Logarithmic fit used for the MuonLab life time measurements.
:param x:
:param a:
:param c:
:return:
"""
return (1/a)*np.exp(-x/a)+c
데프 logarithmic_fit_plot (X, Y) : #의 WIP 폰트 = { '가족' '정상' '중량' '굵은' '크기': 20}
matplotlib.rc('font', **font)
xdata = x
ydata = y
plt.rc('text', usetex=True)
plt.plot(xdata, ydata, '.', label='sample')
popt, pcov = sp.optimize.curve_fit(exponential_fit, xdata, ydata)
plt.plot(xdata, exponential_fit(xdata, *popt), 'r-',
label=r"$\frac{1}{\tau_0}e^{\frac{-x}{\tau_0}}, \tau_0=%5.3f, c=%5.3f$" % tuple(popt))
plt.legend()
plt.show()
슬프게도 그것은 데이터에 잘 맞지 않지만 그것은 단지 내가 생각하는 수학 문제 일뿐입니다.
이 코드는 적절하게 적합합니다.
것
first = True
lifetimes = []
counts = []
with open('Werkverkeer.txt') as w:
next(w)
for line in w:
_, life, count = line.rstrip().split()
life, count = float(life), int(count)
if count==0:
continue
lifetimes.append(life-0.005)
counts.append(count)
probs = [_/sum(counts) for _ in counts]
print (probs)
from scipy.optimize import leastsq
from scipy.stats import expon
from numpy import exp
def residual(params, X, data):
model = [expon.cdf(x+0.005, scale=params[0])-expon.cdf(x-0.005, scale=params[0]) for x in X]
return [d-m for (d,m) in zip(data, model)]
r = leastsq(residual, [140], args=(lifetimes, probs))
estimate = r[0][0]
print (estimate)
fitted = [expon.cdf(x+0.005, scale=estimate)-expon.cdf(x-0.005, scale=estimate) for x in lifetimes]
print(fitted)
from matplotlib import pyplot as plt
plt.plot(lifetimes, probs, 'r.')
plt.plot(lifetimes, fitted, 'b-')
plt.show()
참고 사항 : 카운트 점점 정말 방법이기 때문에
counts
에 나는, 확률의 추정치 표준화 counts
에 장착 한 수명에 대한 확률 밀도 함수의 추정치.model =
.residual
의 마지막 줄은 관측 확률 (카운트 기준)과 잠정적으로 계산 된 확률의 차이를 나타냅니다.leastsq
은 매개 변수에 대해 0.0497646352872의 값을 반환합니다.
[scipy] (https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.curve_fit.html)를 이미 사용해 보셨습니까? 위의 링크를 찾았지만이를 사용하는 방법을 모르는 경우 질문에 링크 된 이미지를 생성하는 데 사용 된 데이터를 공유 할 수 있습니까? –
필자는 왼쪽 상단 데이텀을 통해 수명이 0보다 약간 더 많은 160 개의 이벤트를 관찰했다는 것을 이해합니다. 그게 맞습니까? –
빠른 답변 주셔서 감사합니다. SciPy로 놀아 보려고했는데 아직 좋은 결과가 없습니다. 내가 필요한 것은 그곳에있는 예제 들과는 조금 다른 것처럼 보입니다. 게다가 나는 어쨌든 피팅에 익숙하지 않다. 내가 할 수 있었던 것은 gauss fit & linear regression이다. 사용 된 데이터는 https://pastebin.com/i3H4ZfLQ에서 찾을 수있다. – Werkverkeer