首页 > Web开发 > 详细

《Netlogo多主体建模入门》笔记6

时间:2020-02-02 01:25:27      阅读:91      评论:0      收藏:0      [点我收藏+]
6- 玩具经济模型与 Turtles间的互动
 
一个模拟财富变化的模型:
 
人(agent)在遇到其他人的时候,会发生交易,财富可能降低,也可能增加
Δ m 是 个体1 的money 变化;
m1 个体1 的财富;
m2 个体2 的财富;
ε 是随机系数,决定个体2的交易后的财富。
技术分享图片
 
添加滑块
 
技术分享图片
 
  • 这里的变量是全局变量,可以在代码中拿来用的。增量代表鼠标拖动 时的变化量。
  • 值: 代表默认值,可以被修改。
  • 可以选择垂直放置滑块。
技术分享图片
 
 
Let适合于为第一次使用的变量进行赋值,它包含了定义变量的意思
Set则适合于已定义的变量的赋值
 
 
one-of agentset:
从集合agentset中随机选择一个元素
n-of n agentset :
从集合agentset中随机选择n个元素
 
如何检测代码没有逻辑错误导致 BUG?
 
在最下方的命令行输入 命令。
技术分享图片
 
或者画个图。
技术分享图片
 
 代码:
 
turtles-own [money]
 
to setup
  clear-all
  create-turtles agent_num[
     setxy random-xcor random-ycor
    set money (total_money / agent_num)
  ]
  reset-ticks
end
 
to go
  ask turtles[
  let agsets other turtles-here
   if count agsets >= 1 [
     transaction (one-of agsets)
  ]
   forward 1
  ]
  tick
end
 
 
to transaction [trader]
  let deltam 0
  let money1 ([money] of trader)
  let epsilon (random-float 1)
  set deltam (epsilon - 1) * money + epsilon * money1
  if money + deltam >= 0 and money1 - deltam >= 0
  [
    set money money + deltam
    ask trader[
      set money money1 - deltam
    ]
  ]
end
 
to to-update-plot
let lst [money] of turtles
set-histogram-num-bars 100
if not empty? lst [
  set-plot-x-range 0 max lst
  histogram lst
]
 
end
 

 


 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

《Netlogo多主体建模入门》笔记6

原文:https://www.cnblogs.com/wiki-ray/p/12250749.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!