2Dランダムウォーク 戻る
確率・拡散

2Dランダムウォーク

複数ウォーカーの軌跡と平均二乗変位(MSD)をリアルタイム可視化。格子・ガウス・レヴィフライトを切り替えて拡散則を比較。

パラメータ

ウォーカー数
ステップサイズ
Xドリフト
歩行タイプ
境界条件
速度
計算結果
0
ステップ
0.0
現在MSD
0.0
理論MSD=4Dt
0.0
最大変位
-
設定
ランダムウォーク
平均二乗変位
理論・主要公式
$$\langle r^2(t)\rangle = 4Dt$$
通常拡散のMSDは時間に比例。ログ-ログプロットの傾きで拡散型を識別。

2Dランダムウォークとは

🙋
ランダムウォークって、ただ酔っぱらいがフラフラ歩くだけのモデルですよね?これが何の役に立つんですか?
🎓
大まかに言うと、不規則な動きを理解するための「ものさし」なんだ。例えば、細胞内で栄養分子がどう拡散するか、株価の変動、昆虫の餌探しの動きまで、幅広く応用されているよ。このシミュレーターで「歩行タイプ」を「格子」から「連続」に変えてみると、動きの滑らかさが大きく異なるのがわかる。
🙋
なるほど。でも、グラフにある「平均二乗変位(MSD)」って何を見てるんですか?
🎓
MSDは、粒子が平均的にどれだけ遠くまで広がったかを数値化したものだ。実務では、実験で計測した粒子の動きから拡散の速さ(拡散係数)を求めるのに使うことが多いね。シミュレーター右側のログ-ログプロットを見て。通常の拡散(格子・連続)なら、MSDの直線の傾きはだいたい1になる。でも「レヴィフライト」に切り替えて「べき指数α」を小さく(例えば1.5)すると、傾きが1より大きくなるのが観測できるよ。これが「超拡散」だ。
🙋
超拡散って面白い!でも、そんなに大きくジャンプする動きって、現実にありますか?
🎓
あるんだ。例えば、海のサメやアルバトロスが餌を探す動きは、小刻みに動いたあと、まれに長距離を移動する。これがまさにレヴィフライトで近似できる。シミュレーターで「ウォーカー数」を増やして「レヴィフライト」で実行してみて。ほとんどの粒子は狭い範囲にいるけど、たまに遠くまで飛び出す粒子がいるのが視覚的にわかるはずだ。

よくある質問

ウォーカー数を増やすとMSDの統計的ばらつきが減り、理論曲線に近づきます。ステップ数を増やすと長時間の拡散挙動を観察でき、ノイズが平滑化されますが、計算負荷が上がるため、目的に応じて調整してください。
格子は固定長の直交方向のみ移動し、通常拡散を示します。ガウスは連続的なランダムな方向と距離でブラウン運動を模倣します。レヴィフライトは稀に長距離ジャンプを含み、超拡散(MSDが時間の2乗以上に比例)を再現します。
初期の過渡領域ではウォーカーの位置が原点付近に集中するため、MSDが理論直線から外れることがあります。また、レヴィフライトでは長距離ジャンプの頻度が低いと、統計的に不安定になり曲線がギザギザになる場合があります。
生体内の分子拡散、生態系での動物の探索行動、金融市場の価格変動など、ランダムな移動パターンの解析に利用できます。特にレヴィフライトは、効率的な探索戦略のモデルとしてロボット経路計画にも応用されています。

実世界での応用

生物物理学・生態学:細胞内でのタンパク質やmRNAの拡散、微生物や動物の採餌行動の分析に使われます。レヴィフライトは効率的な探索戦略として注目されています。

材料科学:多孔質材料内でのガスや液体の浸透・拡散過程のモデル化。不規則な構造の中での粒子の動きを予測するのにランダムウォークが応用されます。

金融工学:株価や為替レートの変動をモデル化する基礎として使われます。特に、大きな価格変動(ジャンプ)を含むモデルではレヴィフライトが参考にされます。

高分子科学:ポリマー鎖の構造や動的特性を、鎖を構成するモノマーのランダムウォークの集合体として統計的に理解するアプローチがあります。

よくある誤解と注意点

まず、「拡散係数Dは粒子の種類だけで決まる定数」と思いがちですが、それは誤解です。 例えば、同じ分子でも、水の中と油の中では拡散の速さは全く異なります。このシミュレーターで「歩行タイプ」を「連続」にし、「ステップサイズ」を固定したまま「拡散係数」のスライダーを動かしてみてください。粒子の動きの「活発さ」が変わりますよね?これは、拡散係数が「環境(粘性など)」と「温度」に強く依存することを意味しています。実務では、シミュレーションで使うDの値を実験値や文献値から正しく設定することが第一歩です。

次に、MSDのグラフを1回の実行で判断しないこと。 特にウォーカー数が少ない場合、MSDのプロットはかなりばらつきます。「格子」歩行でウォーカー数1で実行すると、MSDが綺麗な直線にならないことが確認できるはずです。これは統計的なゆらぎです。信頼性のある結果を得るには、十分な数のウォーカー(例えば100以上)でシミュレーションを走らせ、平均を取る必要があります。

最後に、レヴィフライトのパラメータ設定には注意が必要です。 べき指数αを2.0に近い値(例えば2.1)に設定すると、見た目は通常のランダムウォークとほとんど区別がつきません。超拡散の特徴を明確に見たいなら、αを1.5から2.0の間で設定しましょう。ただし、αを小さくしすぎる(例えば1.1)と、極端に長いジャンプが発生し、シミュレーション領域からすぐに飛び出してしまうことも。実現象への適用時は、観測データからαを慎重に推定するプロセスが不可欠です。

使い方ガイド

  1. ウォーカー数(valN)を1~1000の範囲で設定。複数エージェントの統計的挙動を観察する場合は100以上推奨
  2. ステップ数(valStep)で総移動ステップ数を決定。拡散則の収束性評価には1000ステップ以上が必要
  3. ドリフト項(valDriftX)で系統的な移動バイアスを付与。0.0で対称ランダムウォーク、±0.1で有向拡散を実現
  4. スケーリング指数(valAlpha)で移動則を変更。αが小さいほどレヴィフライト特性(異常拡散)が顕著
  5. シミュレーション実行後、MSD(平均二乗変位)プロットで時間スケーリング指数を確認

具体的な計算例

ウォーカー数N=100、ステップ数=500、格子タイプで各方向を等確率(0.25)選択する場合、t=500ステップ後のMSD期待値はおよそMSD≈500(正規ランダムウォーク:MSD∝t)。ドリフトなし、αが1.0(ガウス分布)の設定では拡散係数D≈0.5となり、δx²=2D×tの関係式を満たす。ドリフトX=0.05を加えると系全体が漂流し、平均位置がX方向に線形シフト。αを0.5に低下させるとMSD∝t^1.5の異常拡散が現れ、重い尾を持つレヴィフライトの支配領域に遷移

実務での注意点

  1. 拡散係数測定では十分なウォーカー数を確保。N<10では統計ノイズが支配的になり、MSDの信頼区間が±30%超に拡大
  2. 長時間シミュレーション(ステップ>10000)では浮動小数点誤差蓄積に注意。周期的な位置ラップアラウンドが必要な場合は格子模型を選択
  3. 生体分子の異常拡散(核内DNA運動)やコロイド粒子のブラウン運動解析では、αを0.5~1.2範囲で段階的に変更し、観測MSDとの乖離を最小化
  4. ドリフト存在下では見かけの拡散係数が過大評価。MSD曲線から線形成分を差引いた残差で真の拡散のみを抽出