2016-07-21 2 views
2

Я пытаюсь создать переменную, принадлежащую породе, которая рисует ее значения из случайного бета-распределения в 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] 
] 

Я был бы вечно благодарен !!

ответ

Смежные вопросы