[Marche aléatoire] bidimensionnelle utilisant des nombres aléatoires (https://ja.wikipedia.org/wiki/%E3%83%A9%E3%83%B3%E3%83%80%E3%83%A0%E3% 82% A6% E3% 82% A9% E3% 83% BC% E3% 82% AF) est simulée.
Un pas est mis à 1, en partant de l'origine (0,0) et en marchant au hasard sur le plan bidimensionnel.
import numpy as np
from random import random
import matplotlib.pyplot as plt
from math import *
"""
Marche aléatoire 2D
"""
N_calc_list = [10]
x, y, r = 0, 0, 0
R_list=[]
N=100000
x_list=[0]
y_list=[0]
for n in range(N):
theta=2.0*pi*random()#Angle θ(Unité 2pi)Aléatoire à faire()Avec[0,1]Génère un nombre aléatoire uniforme.
x = x+cos(theta) #Déplacez-vous dans la direction x. cos(θ)。
y = y+sin(theta) #Déplacez-vous dans la direction y. péché(θ)
x_list.append (x) #La valeur de x est x_Stocker dans la liste
y_list.append(y) #La valeur de y est x_Stocker dans la liste
# for plot
plt.plot( x_list,y_list) # (x,y)Terrain
plt.xlabel('X ') #étiquette de l'axe des x
plt.ylabel('Y') #étiquette de l'axe y
plt.xlim([-120,120]) #plage de l'axe des x
plt.ylim([-120,120]) #plage de l'axe y
plt.show()
Avec (0,0) comme position de départ, la trajectoire de 100 000 pas
La relation entre la distance R de l'origine (0,0) et le nombre de pas de déplacement N. L'axe des abscisses est tracé à $ N ^ {1/2} $. La ligne orange est la valeur théorique obtenue par $ N ^ {1/2} -> ∞ $.
Recommended Posts