书籍详情
NetLogo多主体建模入门
作者:集智俱乐部 著
出版社:人民邮电出版社
出版时间:2021-10-01
ISBN:9787115571380
定价:¥79.80
购买这本书可以去
内容简介
本书从大量跨学科、跨领域的实际案例入手,循序渐进地讲解了NetLogo的使用方式、基本语法、设计思想,以及背后的计算机模拟、多主体建模、复杂性科学的基本理念和数理建模的常用方法,包括数值计算、微分方程、动力系统、概率统计等。通过学习,读者可以学会搭建一个人工生命的世界、一个人工经济系统,以及一个人工生态系统;通过计算机模拟,读者可以理解大自然的捕食依存关系、病毒传播和疫情暴发的原理,还能对人类社会财富分布不均衡的起源有新的认识。
作者简介
集智俱乐部(Swarma Club),成立于2003年,是一个从事学术研究、享受科学乐趣的探索者团体,也是国内较早研究人工智能、复杂系统的科学社区之一,倡导以平等开放的态度、科学实证的精神,进行跨学科的研究与交流,力图搭建一个中国的“没有围墙的研究所”。编写、翻译过多本科普作品,有《科学的极致:漫谈人工智能》《走近2050:注意力、互联网与人工智能》《深度学习原理与PyTorch实战》,译作有《深度思考:人工智能的终点与人类创造力的起点》等。
目录
序一 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
序二 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
猜您喜欢