使用Netlogo模拟SIR疾病传播模型


最近在学习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
  • 7
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值