当前位置:   article > 正文

“扩散”模型介绍和代码_产品扩散netlogo仿真代码

产品扩散netlogo仿真代码

这是什么?

扩散图形与大多数其他NetLogo模型不同,因为它实际上并不像大部分模型那样对某种现象进行建模。它只是探索了一个有趣的patch原语背后的力量:“扩散”。

它并不打算精确模拟真实的热量,只是一种类似热量的行为--它会慢慢均匀地在一个平面上扩散开来。

它是如何工作的

在这个模型中,乌龟是“热点”--它们在每一个时间步设置一个特定值(称为‘heat’的patch变量)的最大水平。每个patch(通过“diffuse”原语)然后与其周围的patch共享其“heat”值。

在这里你可以观察到热点之间的相互作用,它们的移动,它们的值变为负数,或者热量慢慢减少到零。整个项目的重点是让你了解patch通过“diffuse”原语是如何相互作用的。(或者如果你无聊的话,也可以给你一些好看的东西来盯着看。)

如何使用它

两个按钮,SETUP和GO,控制模型的执行。和大多数NetLogo模型一样,SETUP按钮会初始化“热点”和其他变量,准备运行模型。GO按钮是一个永远运行的按钮,它会运行模型。

四个滑块和两个开关确定了模型的各种属性。它们中的每一个都可以在初始化之前设置;大多数可以在运行过程中使用来影响接下来会发生什么。

NUM-TURTLES确定了有多少只乌龟。TURTLE-SPEED确定了它们移动的速度。每只乌龟会将它所在的patch的“heat”设置为TURTLE-HEAT。然后这个patch会将它的“heat”扩散到附近的patches。

DIFFUSION-RATE滑块是颜色从每个patch扩散出来的速度。所有的patches每一个时间步都会将它们的颜色值扩散给它们的邻居。DIFFUSION-RATE只是这个颜色泄漏出去的分数。

如果WANDER?开关打开,乌龟可以在视图中移动。如果开关关闭,乌龟将保持在原地。

注意事项

主要Diffusion Graphics将向你展示patch颜色在NetLogo中是如何扩散的。图形显示可能会唤起分形图像,或者地形图。扩散图形确实带来了某种地形,乌龟是山峰,最深的颜色是山谷。该模型基本上试图平滑这些差异。

让模型运行一段时间,将WANDER全部关闭(全部设置为0)。观察“地形”会发生什么。你预测最终会发生什么?

这个模型是为了让人愉悦而建立的。只需随意调整滑块和开关。之后,尝试修改代码,看看什么有效(以及什么无效)。

尝试代码

尝试将TURTLE-HEAT设置为一个非常大的数字。会发生什么?这对你了解NetLogo的颜色模型有什么启示?

尝试将TURTLE-HEAT设置为一个负数。会发生什么?这对你了解NetLogo的颜色模型有什么启示?

尝试将patch大小设置为一个较小的数字以获得更丰富的显示。或者将patch大小设置为较大,以获得“放大”的视角。

扩展模型

改变NUM-TURTLES滑块,使其能够在运行时改变乌龟的数量,而不需要重新点击SETUP。

目前每只乌龟的位置在初始化时是随机确定的。改变模型,使用户可以用鼠标来确定乌龟的位置。

以不同的方式对patches着色,也许沿着传统的ROY-G-BIV(红、橙、黄、绿、蓝、靛、紫)光谱。

NetLogo特点

Diffusion Graphics模型是围绕着diffuse原语设计的。diffuse是一个观察者原语,它接受两个输入,一个是patch变量,一个是数字。diffuse使所有的patch与它们的八个邻居分享那个patch变量。第二个输入是一个介于0和1.0之间的数字,确定了分享的patch变量的比例。(在这个模型中,分享的数量)

代码

  1. patches-own [ heat ]
  2. to setup
  3. clear-all
  4. set-default-shape turtles "circle"
  5. create-turtles num-turtles ; each turtle is like a heat source
  6. [ setxy random-xcor random-ycor ; position the turtles randomly
  7. hide-turtle ; so we don't see the turtles themselves, just the heat they produce
  8. set heat turtle-heat ] ; turtles set the patch variable
  9. recolor-patches ; color patches according to heat
  10. reset-ticks
  11. end
  12. to go
  13. ask turtles [ set heat turtle-heat ] ; turtles set the patch variable
  14. if wander? [ ask turtles [ wander ] ] ; movement of turtles is controlled by WANDER? switch
  15. diffuse heat diffusion-rate ; this causes the "spreading" of heat
  16. recolor-patches ; color patches according to heat
  17. tick
  18. end
  19. to wander ; turtle procedure
  20. rt random 50 - random 50
  21. fd turtle-speed
  22. end
  23. to recolor-patches ;; color patches according to heat
  24. ask patches [ set pcolor heat ]
  25. end
  26. ; Copyright 1997 Uri Wilensky.
  27. ; See Info tab for full copyright and license.

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/650306
推荐阅读
相关标签
  

闽ICP备14008679号