[关闭]
@LiuYongJie 2017-01-08T15:35:39.000000Z 字数 1377 阅读 767

Random systems

2014级 物院材料班 刘永杰 2014301020094


背景

随机行走(random walk)是指基于过去的表现,无法预测将来的发展步骤和方向。核心概念是指任何无规则行走者所带的守恒量都各自对应着一个扩散运输定律,对于我们解决热力学问题有很好的辅助作用,它接近于布朗运动,是布朗运动理想的数学状态。随机行走的产生主要靠调用Python里的random函数解决随机问题,扩散问题的公式演化如下所示:
此处输入图片的描述

摘要

本文主要考虑在一个和两个维度随机行走模型。通过计算机模拟进行一维二维的随机行走。然后非重复行走以及类似于“冰淇淋融化在咖啡里”这种随机问题。

正文:

①一维随机行走 【点击查看代码】

随机游走方法走的方向是完全不确定的概率问题,我们建立了一个随机数群,来生成一个随机数种子在0和1之间的部分,让左、右移动粒子的概率是一样的,如果数量大于0.5,那么正确,否则,离开了。这里我们传达模型分成两个方面,一个是步长固定这意味着在任何一个步骤的变化只能是一个粒子的位置。另一种是步长不固定的。在这种情况下,我们将随机数节[0,1][-1,1]和部分设置结果作为步长。
此处输入图片的描述
此处输入图片的描述
此处输入图片的描述
可以看出,每次程序的运行是独一无二的,一旦我们重复这个程序可以得到完全不同的结果。

随时间的关系图 【点击查看代码】

然后我们考虑平均距离与时间的关系。因为我们已经建立了一个列表来存储一个粒子的位置在不同的时间,现在我们要做的就是产生大量的随机移动粒子(多次重复前面的过程)和平均最终结果。由于方程,我们将调查的D值两种不同的方法。
此处输入图片的描述
用计算机拟合的曲线是1.011 x + 0.269

③自回避随机行走【点击查看代码】

考虑线形高分子的形状,但不能相交,这意味着在一个位置只能占领的一次。我们只看到观察的这两个维度。在这种情况下,我们设计了模型,随机游走粒子的路径不会通过位置之前它已经过去了。为了实现这一目标,我们必须扫描的位置前面的步骤是否它已经占领了四位置毗邻当前粒子的位置。如果一些了,现在的粒子不能通过。
有两种方法来实现这一目标:一个是模拟另一个枚举。模拟首先产生许多随机漫步的道路一步一步如果文,然后抛弃他们,所以其余可都看见了道路。枚举的方法列表可能看到一步一步路径。
此处输入图片的描述

④用“随机行走”的方法和“公式演化”的方法模拟扩散现象,并且拓展到二维情况

代码1:一维扩散(随机行走法解决)
代码2:一维扩散(计算推演解决)
代码3:二维扩散演示
此处输入图片的描述
此处输入图片的描述
相比于随机行走法,计算法还是较好,得出来的图像较为平滑
此处输入图片的描述
此处输入图片的描述
此处输入图片的描述

⑤模拟类似于“冰淇淋融化在咖啡中”的粒子运动情况

我们认为这是二维随机漫步的问题。首先我们设置一个数量的粒子中心的整个区域的形状是正方形。然后让他们做随机游走,下,左,右四个方向。唯一的限制是一旦他们到达禁区边缘不能通过它。然后我们观察整个随机粒子图像在不同的时间。
【点击查看代码】
此处输入图片的描述
【点击查看代码】
此处输入图片的描述

⑥模拟熵增情况【点击查看代码】

现在时间对我们从这个看似无序系统中获得一些有用的信息,熵。处理这个应用不同sumulation方法。
首先,我们设置一个粒子的中心区域,让它做随机的一步一步走。每一步我们将进行5000次的重复,这意味着有5000个粒子从中心地区开始扩散。
此处输入图片的描述

致谢

  1. Computational Physics, Nicholas J. Giordano & Hisao Nakanishi

  2. 《Python基础教程》

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注