Python数值计算与模拟
作者简介
小高知宏,1983年早稻田大学理工学部毕业;1990年早稻田大学研究生院理工学研究科毕业,获工学博士九州大学医学部附属医院助手;1993年福井大学工学部信息工学科副教授;1999年福井大学工学部智能系统工学科副教授。
内容简介
模拟游戏“超级冰壶” “ 超级冰壶”是把在平面 内运动的带电冰壶(冰溜石 ),送至某处球门的游戏平 面内固定有多个电荷。冰壶 (冰溜石)从起点位置,以 选手指定的初速度开始运动 。一旦冰壶(冰溜石)开始 运动后,中途就不能再操作 。假设冰壶(冰溜石)到达 距离营垒一定的范围内,视 为进球。选手可以多次循环 运动。冰壶(冰溜石)运动 持续的时间越长,得分越高 ,通过离营垒中央位置越近 ,得分越高。不过,冰壶( 冰溜石)必须进球才能得分 。 5.1.1 随机数与伪随机 数 到目前为止,本书所提 到的模拟实验中,当初始状 态确定后,其模拟结果均是 唯一的。例如,在第2章中 提到的带电粒子的运动模拟 实验,一旦粒子和磁场的初 始状态决定后,粒子的运动 无论计算多少遍,结果都是 一定的。在第3章中提到了 拉普拉斯方程的边界值问题 ,一旦边界值确定,计算结 果也是不变的。在第4章介 绍了元胞自动机的模拟实验 ,其结果也同样由初始状态 而定。 但是,在现实生活中, 即使设定同一条件进行实验 ,出现不同结果的情况也不 胜枚举。用第2章中运动模 拟的例子来讲,在现实世界 里,即使按照同样的设定值 发射物体,也会因各种原因 ,无法保证描绘出同一轨迹 。不仅如此,甚至同一粒子 的运动,有时也会看到与第 2章中带电粒子完全不同的 、无规则的随机运动。例如 ,浮游在液体中的微粒子所 做的布朗运动,其轨迹就是 极不规则的。 另外,有时为了进行更 加真实的模拟实验,在计算 过程中需要无规律性。例如 ,在第4章中汽车拥堵的模 拟实验,虽然对现实拥堵的 某些特征做了抽象化处理, 但模拟结果还是有些许不自 然的地方。其原因之一就是 因为在第4章的traffic.py程 序中,汽车的流入是有规律 的。而在现实世界里,首先 ,汽车是不可能以一定的时 间间隔流入的。因此,如果 不能让汽车按照无规律的时 间间隔流入的话,模拟结果 就会不自然。 综上所述,有时模拟实 验需要无规律性。在模拟实 验中,引入无规律性的方法 之一便是使用随机数 (random number)。 随机数指随机排列的数 列里的每一个元素。这样解 释还会产生一个问题,即随 机排列是什么意思呢?这虽 决定于随机数的用途,但这 里指:排列方法无规律,与 前后无关联,无法预知下个 数值的排列。 使用随机数就可以将上 述无规律性导入模拟中。例 如,在运动模拟中加入几个 随机要素,即使初始设定一 样,也可以微妙地出现不同 的运动。另外,在交通流模 拟中,运用随机数控制汽车 流入的时间点,可以模拟现 实交通中出现的交通流的无 规律性。 那么,如何设置随机数 呢?如果真的想得到随机数 列的话,必须使用诸如来自 量子论波动的随机性本质的 物理现象。基于随机物理现 象的随机数称为物理随机数 (physical random numbers)。 算力是未来国家发展和科技进步的一个重要指标,除了硬件的配备,专业技术人才的培养显得更为重要。《Python数值计算与模拟》正是应此需求引进。计算机发明的初衷是服务科学计算,经过多年发展,计算机性能明显提高,计算机模拟应用领域也不断扩大,《Python数值计算与模拟》用科技助力工作!