2016-07-29 1 views
0

Я бы создал периодическую функцию в Netlogo на основе тиков и переменной цены.Netlogo создать периодическую функцию

Мне нужна функция, в которой цена поддерживается между 2 звонками (0 и 1), и я буду здорово, если смогу выбрать периодичность.

мой маленький воспроизводимый пример:

patches-own[ 
price 
] 

to setup 
    clear-all 
    ask patches [ 
    set price 0.1 
    ] 
    reset-ticks 
end 

to go 
    ask patches [ 
    set price (sin ticks) + price 
    ] 
    tick 

end 

Спасибо заранее

ответ

1

Это звучит, как вы просто хотите цикл, основанный mod.

to test 
    ca 
    reset-ticks 
    print map price n-values 100 [?] 
    print map [price02 0 1 ?] n-values 100 [?] 
end 

to-report price [#ticks] 
    let _cycle 10 ;cycle length 
    let _first 3 ;length of first cycle component 
    report ifelse-value (#ticks mod _cycle < _first) [ 
    0.1 
    ][ 
    0.2 
    ] 
end 

Edit:

В качестве альтернативы, вы можете просто пытаться масштабировать синусоиду.

to-report price02 [#min #max #ticks] 
    let _cycle 10 
    let _sin sin (#ticks * 360/_cycle) 
    let _scaledsin (1 + _sin)/2 
    report #min + (#max - #min) * _scaledsin 
end 
+0

не очень, я хочу, чтобы все переменные между 0 и 1 ... что-то вроде Verhulst или TRIGO функции – delaye

+0

выше См редактирования. – Alan

+0

Большое спасибо! – delaye

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