Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente | Dernière révisionLes deux révisions suivantes | ||
teaching:exos:simulations_random_walks_codes [2018/11/05 11:55] – [Marche aléatoire d'un petit nombre de pas] villersd | teaching:exos:simulations_random_walks_codes [2018/11/05 12:01] – [Marche aléatoire d'un grand nombre de pas] villersd | ||
---|---|---|---|
Ligne 217: | Ligne 217: | ||
===== Marche aléatoire d'un grand nombre de pas ===== | ===== Marche aléatoire d'un grand nombre de pas ===== | ||
- | <sxh python; title : 06_tkinter_random_walk_many_steps_1D.py> | + | <code python 06_tkinter_random_walk_many_steps_1D.py> |
# | # | ||
# -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||
- | from Tkinter | + | from tkinter |
from random import choice | from random import choice | ||
import numpy as np | import numpy as np | ||
Ligne 228: | Ligne 228: | ||
window = Tk() | window = Tk() | ||
- | sizex=400 | + | sizex = 400 |
- | sizey=400 | + | sizey = 400 |
canvas = Canvas(window, | canvas = Canvas(window, | ||
canvas.pack() | canvas.pack() | ||
x = 200 # initial left-most edge of first ball | x = 200 # initial left-most edge of first ball | ||
y = 1 # initial top-most edge of first ball | y = 1 # initial top-most edge of first ball | ||
- | r=4 # ball diameter | + | r = 4 # ball diameter |
- | depx=1 | + | depx = 1 # displacement at each move in x direction |
- | depy=0 | + | depy = 0 |
# create balls: | # create balls: | ||
- | no_particles= | + | no_particles = 1600 |
dy = (sizey-2.)/ | dy = (sizey-2.)/ | ||
- | print dy | + | print(dy) |
- | ball_list=[] | + | ball_list = [] |
for i in range(no_particles): | for i in range(no_particles): | ||
- | ball=canvas.create_oval(x, | + | ball = canvas.create_oval(x, |
y = y+dy | y = y+dy | ||
ball_list.append(ball) | ball_list.append(ball) | ||
#moves | #moves | ||
- | no_moves=1000 | + | no_moves = 200 |
for j in range(no_moves): | for j in range(no_moves): | ||
for ball in ball_list: | for ball in ball_list: | ||
Ligne 258: | Ligne 258: | ||
#analysis - histogram | #analysis - histogram | ||
# see http:// | # see http:// | ||
- | xpos=[] | + | xpos = [] |
for ball in ball_list: | for ball in ball_list: | ||
- | posi=canvas.coords(ball) | + | posi = canvas.coords(ball) |
xpos.append((posi[0]-x)/ | xpos.append((posi[0]-x)/ | ||
- | xh=np.array(xpos) | + | xh = np.array(xpos) |
# compute the mean mu and sigma from xh (and/or theoretical value from random walk result) | # compute the mean mu and sigma from xh (and/or theoretical value from random walk result) | ||
- | mu=np.mean(xh) | + | mu = np.mean(xh) |
- | sigma=np.std(xh) | + | sigma = np.std(xh) |
fig = plt.figure() | fig = plt.figure() | ||
ax = fig.add_subplot(111) | ax = fig.add_subplot(111) | ||
# print xh | # print xh | ||
n, bins, patches = ax.hist(xh, 10, facecolor=' | n, bins, patches = ax.hist(xh, 10, facecolor=' | ||
- | print n,bins, patches | + | print(n,bins, patches) |
# hist uses np.histogram to create ' | # hist uses np.histogram to create ' | ||
Ligne 281: | Ligne 281: | ||
# | # | ||
- | </sxh> | + | |
+ | </code> | ||
==== Avec analyse de la distribution : ==== | ==== Avec analyse de la distribution : ==== |