序一 iii
序二 iv
序三 vii
前言 ix
作者简介 xi
第 1章 复杂系统与多主体模拟 2
1.1 如何探索复杂系统 2
1.2 多主体模拟 3
1.3 为什么要学习NetLogo 5
1.4 生命游戏 6
1.5 鸟群模型 9
1.6 财富分布模型 11
1.7 小结 14
第 2章 小球宇宙:认识NetLogo 15
2.1 什么是小球宇宙 15
2.2 搭建宇宙框架 17
2.2.1 创建小球 18
2.2.2 让小球动起来 21
2.2.3 修改宇宙属性 24
2.3 模拟程序的流程图 25
2.4 NetLogo的特点 26
2.5 学习资源 27
2.6 小结 29
第3章 通过“生命游戏”认识patch 30
3.1 什么是生命游戏 30
3.2 认识patch 32
3.3 创建模拟世界 32
3.3.1 random-float命令 33
3.3.2 初始化模拟世界 33
3.3.3 用patches-own自定义添加patch属性 34
3.4 让生命游戏运转起来 35
3.5 NetLogo 语法的注意事项 39
3.6 小结 41
第4章 朗顿的蚂蚁 42
4.1 什么是朗顿的蚂蚁 42
4.2 创建蚂蚁 44
4.2.1 turtle的方法与属性 45
4.2.2 random命令 45
4.3 让蚂蚁动起来 46
4.3.1 turtle和patch之间的交互 47
4.3.2 使用tick计时 48
4.4 小结 50
第5章 从羊-草生态系统深入turtle与plot画图 51
5.1 羊-草生态系统的规则 51
5.2 初始化羊-草生态系统 53
5.3 添加to go程序 55
5.3.1 add_food 55
5.3.2 turtle_move 56
5.3.3 turtle_breed 57
5.3.4 turtle_die 57
5.4 追踪某一个具体的turtle或者patch的行为 58
5.5 变量的主体 61
5.6 添加绘图框 61
5.7 小结 63
第6章 人工经济模型与turtle间的互动 66
6.1 货币转移模型 66
6.2 NetLogo添加全局变量 69
6.3 初始化模拟世界 70
6.4 主体之间如何交互 70
6.4.1 transaction子模块 72
6.4.2 变量作用域 73
6.5 使用命令中心 74
6.6 绘制财富分布直方图 76
6.7 小结 78
第7章 文件导出与复杂曲线绘制 79
7.1 人工经济模型回顾及遗留问题 79
7.2 NetLogo导出文件 80
7.3 洛伦兹曲线 85
7.4 用 NetLogo实现洛伦兹曲线 89
7.4.1 绘图语句 90
7.4.2 表示财富分布极端不均衡的折线的绘制 91
7.4.3 洛伦兹曲线的绘制 92
7.5 小结 94
第8章 使用行为空间做实验 95
8.1 更新人工经济模型的基本规则 95
8.2 程序修改 97
8.3 两种规则下的财富分布对比 99
8.4 基尼系数的定义及程序实现 100
8.4.1 什么是基尼系数 100
8.4.2 基尼系数的计算方法 101
8.4.3 基尼系数的程序实现 101
8.5 参数变化对财富分布不均衡性的影响 105
8.6 使用行为空间做重复实验 106
8.7 小结 110
第9章 透过人工鸟群模型Boids学习list的使用 111
9.1 人工鸟群模型Boids 112
9.2 矢量以及矢量运算的基本知识 113
9.2.1 矢量的加法 114
9.2.2 矢量的减法 114
9.2.3 矢量的数乘 115
9.3 Boids模型需要的矢量运算 116
9.3.1 靠近力 118
9.3.2 对齐力 119
9.3.3 斥力 119
9.3.4 合力 120
9.4 让Boids动起来 121
9.5 NetLogo的列表——list 122
9.6 Boids模型程序实现 124
9.7 小结 128
第 10章 用link建模网络动力学 129
10.1 病毒传播SIR模型 129
10.2 构建网络拓扑结构 131
10.3 NetLogo中的link对象 131
10.4 SIR模型搭建 132
10.5 SIR模型代码实现 133
10.5.1 给turtle设置state属性 134
10.5.2 to setup代码块 135
10.5.3 setup-network函数 135
10.5.4 to go代码块 138
10.6 参数变化对模拟结果的影响 139
10.7 SIR模型的弊端与无标度网络 141
10.8 改进网络模型 142
10.9 修改程序实现改进的网络模型 142
10.10 小结 144
第 11章 重访羊-草模型与系统动力学建模 145
11.1 多主体建模的弊端 145
11.2 羊-草的系统动力学模型 145
11.2.1 代数求解羊-草的系统动力学模型 146
11.2.2 用计算机求解羊-草的系统动力学模型 147
11.3 系统动力学建模工具求解微分方程 148
11.4 让羊-草模型运行起来 151
11.5 重新构建羊-草生态系统 152
11.5.1 用流-存的方法建模 153
11.5.2 羊-草生态系统模型的动力学方程 153
11.6 羊-草生态系统模型的系统动力学搭建 154
11.7 调试羊-草生态系统模型 157
11.7.1 如何设定各个参数的数值 158
11.7.2 设置dt取值 158
11.8 更一般的微分动力系统 160
11.9 小结 160
结束语 162
后记 165