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

6- 玩具经济模型与 Turtles间的互动
 
一个模拟财富变化的模型:
 
人(agent)在遇到其他人的时候,会发生交易,财富可能降低,也可能增加
Δ m 是 个体1 的money 变化;
m1 个体1 的财富;
m2 个体2 的财富;
ε 是随机系数,决定个体2的交易后的财富。
《Netlogo多主体建模入门》笔记6_第1张图片
 
添加滑块
 
《Netlogo多主体建模入门》笔记6_第2张图片
 
  • 这里的变量是全局变量,可以在代码中拿来用的。增量代表鼠标拖动 时的变化量。
  • 值: 代表默认值,可以被修改。
  • 可以选择垂直放置滑块。
《Netlogo多主体建模入门》笔记6_第3张图片
 
 
Let适合于为第一次使用的变量进行赋值,它包含了定义变量的意思
Set则适合于已定义的变量的赋值
 
 
one-of agentset:
从集合agentset中随机选择一个元素
n-of n agentset :
从集合agentset中随机选择n个元素
 
如何检测代码没有逻辑错误导致 BUG?
 
在最下方的命令行输入 命令。
《Netlogo多主体建模入门》笔记6_第4张图片
 
或者画个图。
《Netlogo多主体建模入门》笔记6_第5张图片
 
 代码:
 
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)