忍者ブログ

Memeplexes

プログラミング、3DCGとその他いろいろについて

2つの部屋で拡散する粒子

2つに区切られた部屋の中で粒子が一つの部屋からもう片方の部屋に拡散するシミュレーションです。ふつうの拡散のシミュレーションとの違いは、こちらにはランダム性があり、一度粒子が2つの部屋に均等に広まったと思っても、実は均等ではなくランダムなゆらぎが常に存在している点です。


粒子の拡散部屋

粒子が移動する確率:

操作方法

粒子が移動する確率:粒子が別の部屋に移動する確率を設定します。たとえばこの数字が0.1なら、ある粒子が左の部屋から右の部屋に移動する確率は0.1で、左の部屋にとどまる確率は0.9です。(左右を入れ替えても話は同じです)

[リセット]ボタン:粒子をすべて左の部屋にセットしてシミュレーションをやり直します。

解説

わたしたちが普段肉眼で見る現象はたくさんの原子が関わっているので、わたしたちが原子が少ししかない現象を見るとぎょっとすることがあります。例えば物質の拡散です。ふつうならバケツの水に溶け切った絵の具が一か所に勝手に集まることなどありえませんが、ほんのわずかな数の絵の具粒子しかなければ話は別です。2つの粒子が偶然同じような場所に来ることもありえます。

このシミュレーションはその様子を表しています。2つの部屋があり、片方に10個の粒子をセットします。そして一定の確率で別の部屋に移動するようにプログラムしてやるのです。そうすると、片方の部屋にしかなかった粒子は、左右の部屋でだいたい同じくらいの数になります。しかしこれはだいたいであり、ランダムなゆらぎが常に存在します。つまり、いったん2つの部屋の粒子が同じ数になっても、そこからしょっちゅうずれてしまうのです。

粒子が十分にたくさんの数があれば(つまり、私達の日常の感覚では)、ランダムなゆらぎは(ほぼ)無いことに注意して下さい。私達が日常で目にする拡散現象は、次の図のようになります。

今回のシミュレーションとは違ってなめらかです。どうしてこうなるのかと言うと、これにはたくさんの粒子が関わっていて一つ一つのランダムな要素など全体から見れば無視できるほど小さいからです。実際、今回のシミュレーションでは、いったん粒子が半々の数になったと思っても、ランダムな要素によってまた片方の部屋に粒子が偏るということがありえます。あたかも時間が局所的に逆流しているかのようです。しかし日常のスケールではそんな事は起きません。粒子がたくさん集まることによって、時間の向きがはっきりするのです。

拍手[0回]

PR