はじめに
ランダムウォークは、複雑系や確率過程を理解するための基本的なモデルです。
例えば、動物が資源を探す行動や分子のブラウン運動、株価の変動など、多くの現象にランダムウォークの考え方が適用されています。
📌 GitHub & Booth
本記事のコードは、以下のリポジトリおよびBoothで無料配布しています。
-
📂 BoothでZIP版をダウンロード(無料) 👉 https://complex-dynamics.booth.pm/items/6457102
※ GitHubのデータをBooth向けに整理し、パッケージ化しました。 -
📌 GitHubでソースコードを確認: Complex-System(ランダムウォーク)
-
🚀 Google Colabで直接実行: Google Colabで開く
ランダムウォークとは?
基本的な考え方
ランダムウォークは、以下のようなルールに基づいて進みます:
- ある地点からスタートします。
- 各ステップでランダムな方向に移動します。
- この動きを繰り返して軌跡を生成します。
ランダムウォークの重要性
ランダムウォークは以下の現象のモデルとして知られています:
- 自然界の探索行動:アリや動物が資源を探す際の動き。
- 物理学:分子のランダムな運動(ブラウン運動)。
- 金融市場:株価の変動をモデル化。
Pythonでランダムウォークを実装する
では、Pythonを使ってランダムウォークをシミュレートしてみましょう。
本記事では、GitHub上の random_walk.py
を活用し、Google Colabで実行できる Notebook 版を紹介 します。
🔗 GitHubのソースコード
実装コード
import matplotlib.pyplot as plt
import matplotlib.animation as animation
import random
from IPython.display import HTML
# ランダムウォークのアニメーション
def animate_random_walk(num_steps=100):
x, y = [0], [0]
fig, ax = plt.subplots(figsize=(6, 6))
line, = ax.plot([], [], lw=2)
def update(frame):
dx, dy = random.choice([(1, 0), (-1, 0), (0, 1), (0, -1)])
x.append(x[-1] + dx)
y.append(y[-1] + dy)
line.set_data(x, y)
return line,
ani = animation.FuncAnimation(fig, update, frames=num_steps, interval=100, blit=True)
return ani
# アニメーションを表示
HTML(animate_random_walk().to_jshtml())
実行結果
(ここは作業中です)
このコードを実行すると、以下のようなアニメーションが表示されます。
ランダムに方向を選択して進む様子が視覚的に確認できます。
応用例:ランダムウォークが現実で使われる場面
ランダムウォークは単なる数学的モデルではなく、以下のような現実の現象を説明するために使用されています。
1. 動物の行動学
- 動物が食料を探す際、ランダムウォークに近い動きをすることが知られています。
- 特にアリや鳥などの探索行動がランダムウォークでモデル化されています。
2. 金融市場
- 株価の変動はランダムウォークとしてモデル化されることがあります。
- これは未来の価格が過去の動きに依存しない「マルチンゲール性」という仮定に基づいています。
3. 物理学
- 分子のブラウン運動はランダムウォークの一例です。
- 温度が高いほど、ランダム性が増すことが観察されています。
次のステップ
ランダムウォークを理解したら、さらに以下の応用例に挑戦してみるのも面白いです。
- 3次元ランダムウォーク: x, yに加えてz軸も考慮。
- 障害物付きランダムウォーク: 壁や障害物を避ける動き。
- ランダムウォークと最適化: アルゴリズムへの応用(例: メタヒューリスティクス)。
GitHubで最新情報をチェック!
このプロジェクトは今後もアップデート予定です。
- GitHubでコードを確認: Complex-System(ランダムウォーク)
- Google Colabで直接実行: Google Colabで開く
フォローやスター ⭐ で応援よろしくお願いします!
注意事項
-
読者の皆様へ
私はまだ学びの途中にある身ですので、内容に不足や誤りがあるかもしれません。
もしお気づきの点があれば、ぜひコメント欄でご指摘いただけると幸いです。
この試みが、少しでも読者の皆様の学びや発見につながれば嬉しく思います。 -
記事作成の背景
この記事は、ChatGPTを活用して作成しました。AIの力を借りることで、効率的かつ迅速にコンテンツを生成する実験を行っています。
記事内容は、私自身が複雑系の学びを深めるためにまとめたものであり、これを通じて知識を共有しつつ、さらなる学びを促進することを目指しています。 -
コードについて
本記事に掲載されているコードは、Google Colab上で動作確認済みです。
もしコードを実行する際にエラーが発生した場合は、Python環境やライブラリのバージョンに注意してみてください。
また、コメントやフィードバックをいただければ幸いです。
🔗 関連リンク
📌 GitHub(ソースコード)
➡ Complex-System(ランダムウォーク)
📌 Google Colab で実行
➡ Google Colab で開く
📌 Booth で無料ダウンロード(GitHub ZIP)
➡ Booth(無料版)
📌 Note でDOI / CIDの解説記事を公開(有料)
➡ Note記事(準備中)