NetLogo 多主體建模入門
集智俱樂部
買這商品的人也買了...
-
$320$288 -
$534$507 -
$650$553 -
$750$495 -
$780$616 -
$420$332
相關主題
商品描述
本書從大量跨學科、跨領域的實際案例入手,循序漸進地講解了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