0

ティックと価格変数に基づいて 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

前もって感謝します

4

1 に答える 1

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

編集:

あるいは、単に正弦波をスケーリングしようとしているだけかもしれません。

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
于 2016-07-29T16:34:00.310 に答える