Я пытаюсь создать переменную, принадлежащую породе, которая рисует ее значения из случайного бета-распределения в Netlogo.Нарисуйте случайное бета-распределение в netlogo
Я нашел пример кода «bc» онлайн, но я стараюсь адаптировать его к тому, что мне нужно. Прямо сейчас, для удобства, Я генерировать мое распределение от случайного нормального распределения с использованием
create-breed 500
[
set target_factor random-normal 0.9 0.05
if target_factor > 1 [set target_factor 0.9999999999]
if target_Factor < 0.5 [set target_factor 0.5000000001]
]
Поэтому в основном я хотел бы получить репортер, который может заменить «случайную нормальную 0,9 0,05» часть с случайное распределение бета
я получил до сих пор, как:
to-report random_beta
set asocial_alpha 2
set asocial_beta 2
set asocial_min_eps 0
set asocial_max_eps 0.25
let x random-gamma asocial_alpha 1
let asocial_eps (x/(x + random-gamma asocial_beta 1))
set asocial_eps asocial_min_eps + (asocial_eps * (asocial_max_eps - asocial_min_eps))
foreach (n-values 99 [ (? + 1)/100 * (asocial_max_eps - asocial_min_eps) + asocial_min_eps])
[report ? (((? - asocial_min_eps)^(asocial_alpha - 1) * (asocial_max_eps - ?)^(asocial_beta - 1))/(asocial_max_eps - asocial_min_eps)^(asocial_alpha + asocial_beta - 1))]
end
все «набор» переменных здесь являются глобальные факторы
Я честно из моей глубины с это одно математически. Если кто-нибудь может помочь мне исправить этого репортера (или если процедура будет работать, это тоже хорошо). поэтому мой окончательный код для создания породы:
create-breed 500
[
set target_factor random-beta
if target_factor > 1 [set target_factor 0.9999999999]
if target_Factor < 0.5 [set target_factor 0.5000000001]
]
Я был бы вечно благодарен !!