最近在学习Netlogo软件,它的语言和之前学习的编程语言差别很大。看了模型库的代码才慢慢理解。以下是SIR传播模型的代码。
需要创建
按钮:setup, go
滑块:num-nodes, initial-outbreak-size, infect-rate, recover-rate
(’;’ 是注释)
;SIR传播模型
turtles-own
[
infected? ; 值为 true 或者 false
recover?
explore?
]
globals[ ; 全局变量
average-node-degree ; 节点平均度
]
;;;;;;;;;;;;;;;;;;;;;;;;
;;; Setup Procedures ;;;
;;;;;;;;;;;;;;;;;;;;;;;;
to setup ; setup按钮的方法
clear-all
set average-node-degree 4 ; 设置平均度为4
setup-nodes
setup-spatially-clustered-network
ask n-of initial-outbreak-size turtles ; 从所有turtles中选取initial-outbreak-size个(初始感染节点)
[ become-infected ]
ask links [ set color white ]
reset-ticks
end
to setup-nodes ; 初始化节点
set-default-shape turtles "circle"
create-turtles num-nodes[
setxy (random-xcor * 0.95) (random-ycor * 0.95)
become-susceptible
set size 2
initial-explored
]
end
to setup-spatially-clustered-networ