Предположим, что у меня есть массив звездных масс десятков тысяч галактик, и что я также уже знаю, каков общий «объем обзора» (в Мпс ^ 3), в котором содержатся все эти галактики. Для контекста мои данные взяты из моделирования образования галактик с красным смещением ~ 0, а не из простых наблюдений, поэтому в принципе я не думаю, что мне нужно беспокоиться о поправках на неполноту на слабом (маломассивном) конце.
Учитывая мой массив звездных масс и общий объем обзора в Мпк^3, как мне создать и построить «функцию звездной массы галактики», о которой я всегда вижу, как люди говорят? Разве это не просто гистограмма массива звездных масс, а затем деление количества галактик в каждой ячейке на объем обзора (это почти как постоянная нормализации)?
(Конечно, этот вопрос в равной степени можно отнести и к функциям светимости галактик.)
Ваш подход полностью правильный, только обратите внимание на три вещи:
Во-первых, поскольку распределение масс носит логарифмический характер (как и большинство других вещей), обязательно логарифмически бинируйте их. В противном случае вы будете передискретизировать (недоискретизировать) бины на конце с низкой (высокой) массой.
Во-вторых, чтобы иметь возможность сравнивать функции масс при разных красных смещениях, используется сопутствующий объем, а не физический объем, так что расширение Вселенной не учитывается. Эти два связаны как .
Наконец, наблюдатели и разработчики моделей склонны использовать несколько иное определение единицы объема. В то время как наблюдатели обычно используют для расстояний и, следовательно, для числовых плотностей, если ваши галактики исходят из космологического моделирования, где космологические параметры могут быть настроены по желанию, принято учитывать постоянную Хаббла . Затем при моделировании массы и расстояния измеряются в и , соответственно, поэтому плотности чисел измеряются в . Здесь .
Вероятно, это воспоминание о том времени, когда постоянная Хаббла была довольно неопределенной. Сейчас, на мой взгляд, в этом нет нужды, но раз все так делают, то трудно идти против течения. Обсуждение этого вопроса см. в Croton (2013) .
Поскольку вы отметили вопрос python , я написал этот небольшой фрагмент, который должен выполнить эту работу (я случайно выбрал как объем вашего опроса; обратите также внимание, что в этом примере я не исключаю ):
import numpy as np
import matplotlib.pyplot as plt
M = np.loadtxt('Mstar.dat') #Read stellar masses in Msun
logM = np.log10(M) #Take logarithm
nbins = 10 #Number of bins to divide data into
V = 1e5 #Survey volume in Mpc3
Phi,edg = np.histogram(logM,bins=nbins) #Unnormalized histogram and bin edges
dM = edg[1] - edg[0] #Bin size
Max = edg[0:-1] + dM/2. #Mass axis
Phi = Phi / V / dM #Normalize to volume and bin size
plt.clf()
plt.yscale('log')
plt.xlabel(r'$\log(M_\star\,/\,M_\odot)$')
plt.ylabel(r'$\Phi\,/\,\mathrm{dex}^{-1}\,\mathrm{Mpc}^{-3}$')
plt.plot(Max,Phi,ls='steps-post')
Пы-сер