pythonを用いた蔵本モデルのシミュレーション
解決したいこと
現在、pythonを用いて蔵本モデルのシミュレーションを行うべくプログラミングに奮闘しております。(恥ずかしながらど素人です)
知りたいのはN個の振動子が単位円上を運動し、同期していく様子のアニメーションです。
当サイトでC言語を用いて解析している方のコードを参考にPythonに応用させたいのですが、以下のようなエラーが出てしまいます。どのようにコードを改善したらよいのかご教授いただければ幸いです。もし、可能であれば回答者様のコードも教えていただければ嬉しいです。
発生している問題・エラー
IndexError: list index out of range
該当するソースコード
import numpy as np
import random
import matplotlib.pyplot as plt
figure, axes = plt.subplots()
N = 10
K = 1
dt = 0.01
maxt=10
t = np.arange(0,maxt,dt)
theta = []
omega = []
thetanew = []
for i in range(N):
thetanew.append(2.0*np.pi*random.uniform(0,1))
omega.append(np.random.standard_cauchy())
for i in range(N):
thetanew[i] += omega[i]*dt
for i in range(N):
for j in range(N):
thetanew[j] += K*np.sin(theta[j]-theta[i])/N
for i in range(N):
thetanew[i] = theta[i]
試したこと
固有振動数ωはコーシー分布、i番目の振動子がスタートする位相は0~2πにランダムに存在させています。
ど素人なので質問も的を得ていないかもしれませんがよろしくお願いいたします。
0