Outils pour utilisateurs

Outils du site


teaching:exos:simulations_random_walks_codes

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
teaching:exos:simulations_random_walks_codes [2018/11/05 12:01]
villersd [Marche aléatoire d'un grand nombre de pas]
teaching:exos:simulations_random_walks_codes [2018/11/05 12:09] (Version actuelle)
villersd [Avec analyse de la distribution :]
Ligne 285: Ligne 285:
  
 ==== Avec analyse de la distribution : ==== ==== Avec analyse de la distribution : ====
-<sxh python; title : 07_tkinter_random_walk_many_steps_1D-analysis.py>​ +<code python 07_tkinter_random_walk_many_steps_1D-analysis.py>​
-#​!/​usr/​bin/​env python+
 # -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
  
-from Tkinter ​import *+from tkinter ​import *
 from random import choice ​    # http://​docs.python.org/​library/​random.html from random import choice ​    # http://​docs.python.org/​library/​random.html
 import numpy as np import numpy as np
Ligne 296: Ligne 295:
  
 window = Tk() window = Tk()
-sizex=400 +sizex = 400 
-sizey=400+sizey = 400
 canvas = Canvas(window,​ width = sizex, height = sizey) canvas = Canvas(window,​ width = sizex, height = sizey)
 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 ​           # displacement at each move in x direction +depx = 1            # displacement at each move in x direction 
-depy=0+depy = 0
  
 # create balls: # create balls:
-no_particles= 1000+no_particles = 1000
 dy = (sizey-2.)/​(no_particles+1) ​        # y initial separation between balls dy = (sizey-2.)/​(no_particles+1) ​        # y initial separation between balls
 #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,​y,​x+r,​y+r,​fill="​blue"​)+    ball = canvas.create_oval(x,​y,​x+r,​y+r,​fill="​blue"​)
     y = y+dy     y = y+dy
     ball_list.append(ball)     ball_list.append(ball)
  
 #moves #moves
-no_moves=900+no_moves = 400
 for j in range(no_moves):​ for j in range(no_moves):​
     for ball in ball_list:     for ball in ball_list:
-        canvas.move(ball,​ choice([-1,​-1,​-1,​-1,​-1,​1,​1,​1,​1,​1])*depx,​ depy)+        canvas.move(ball,​ choice([-1,​-1,​-1,​-1,​1,​1,​1,​1,​1,​1])*depx,​ depy) #drift
     canvas.after(1)     canvas.after(1)
     canvas.update()     canvas.update()
Ligne 326: Ligne 325:
 #analysis - histogram #analysis - histogram
 # see http://​matplotlib.sourceforge.net/​examples/​api/​histogram_demo.html # see http://​matplotlib.sourceforge.net/​examples/​api/​histogram_demo.html
-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) ​ # see http://​www.scipy.org/​Cookbook/​BuildingArrays+xh = np.array(xpos) ​ # see http://​www.scipy.org/​Cookbook/​BuildingArrays
 #  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, 20, facecolor='​green',​ alpha=0.75) n, bins, patches = ax.hist(xh, 20, facecolor='​green',​ alpha=0.75)
-print mu, sigma +print(mu, sigma) 
-print n,bins, patches+print(n,bins, patches)
 # hist uses np.histogram to create '​n'​ and '​bins'​. # hist uses np.histogram to create '​n'​ and '​bins'​.
 # np.histogram returns the bin edges, so there will be ii probability # np.histogram returns the bin edges, so there will be ii probability
Ligne 357: Ligne 356:
  
 #​window.mainloop() #​window.mainloop()
-</sxh>+</code>
teaching/exos/simulations_random_walks_codes.txt · Dernière modification: 2018/11/05 12:09 par villersd