Как я могу найти пересечение с осью Y встроенного двойного гауссова - PullRequest
0 голосов
/ 18 декабря 2018

Я снабдил свои данные двойным гауссовским значением, и теперь я должен найти, где постоянная площадь под этим соответствием пересекает ось Y.Для лучшего понимания того, что я говорю и ищу, я предоставлю свой код и картинку.здесь в первом блоке есть только функция подгонки для моего двойного гауссиана.

# this is my fit function 
def func(x, *params):
y = np.zeros_like(x)

for i in range(0, len(params), 3):
    ctr = params[i]
    amp = params[i+1]
    wid = params[i+2]
    y = y + amp * np.exp( -((x - ctr)/wid)**2) + amp * np.exp( -((x - 
    ctr+180)/wid)**2)
 return y

Затем я просто импортирую данные из внешнего файла CSV со значениями в двух столбцах и адресую их по x и y., угадайте мои начальные параметры для подгонки

data=np.loadtxt("test.csv")
x= data[:,0]
y= data[:,1]
guess = [20, 0.7, 30, 210, 0.7, 30, 300, 0.05, 10]


popt, pcov = curve_fit(func, x, y, p0=guess)
fit1 = func(x, *popt)
plt.plot(x, y)
plt.plot(x, fit1 , 'r-')
plt.show()

Что я получаю тогда, это подгонка:

fit

Теперь вопрос в том, как я могу найтиэто пересечение или как я могу рассчитать площадь под двойным гауссовым?(Я пометил его на этом рисунке зеленой линией, поэтому я ищу эту область или, по крайней мере, там, где эта линия пересекает ось Y):

intersection

есть идеи как это решить?

...