Я пытался выяснить половину максимума ширины (FWHM) синего пика (см. изображение). Зеленый пик и пик пурпурного цвета составляют синий пик. Я использовал следующее уравнение, чтобы найти FWHM пиков зеленого и пурпурного цветов: fwhm = 2*np.sqrt(2*(math.log(2)))*sd
где sd = стандартное отклонение. Я создал зеленый и пурпурный пики, и я знаю стандартное отклонение, поэтому я могу использовать это уравнение.
Я создал зеленый и пурпурный пики, используя следующий код:
def make_norm_dist(self, x, mean, sd):
import numpy as np
norm = []
for i in range(x.size):
norm += [1.0/(sd*np.sqrt(2*np.pi))*np.exp(-(x[i] - mean)**2/(2*sd**2))]
return np.array(norm)
Если бы я не знал, что синий пик состоял из двух пиков, и у меня был только синий пик в моих данных, как бы я нашел FWHM?
Я использую этот код, чтобы найти вершину пика:
peak_top = 0.0e-1000
for i in x_axis:
if i > peak_top:
peak_top = i
Я мог бы разделить peak_top
на 2, чтобы найти половину высоты, а затем попытаться найти y-значения, соответствующие половине высоты, но тогда я столкнулся бы с проблемой, если нет значений x, точно совпадающих с половинной высотой,
Я уверен, что есть более элегантное решение, которое я пытаюсь.