大沢統計第1章(1)
生物物理学分野の大御所、大沢文夫先生が執筆された『大沢流手づくり統計力学』の第1章の内容をプログラミングしてみました。
- 作者: 大沢文夫
- 出版社/メーカー: 名古屋大学出版会
- 発売日: 2011/08/10
- メディア: 単行本
- 購入: 1人 クリック: 14回
- この商品を含むブログ (2件) を見る
内容
正規分布(完全にランダム)に従い与えられた、お金がやり取りを介して、指数分布になる。
プログラミング内容
最初にnum_person人にmoney=10000を分配します。その後、ランダムに選ばれた人が、またランダムに選ばれた人にmoney=1を渡す。交換の操作を100000回繰り返す。
#! /usr/bin/env python import numpy as np import matplotlib.pyplot as plt ### initial set fig=plt.figure() np.random.seed(0) money=10000 num_person=1000 ave=money/num_person num_exchange=1000000 persons=np.zeros(num_person) for i in range(money): persons[np.random.randint(0,num_person)]+=1 ### for fig1 ax1=fig.add_subplot(211) ax1.set_xlim([0,ave*2]) ax1.set_ylim([0,num_person/4]) ax1.hist(persons,ave*2,range=(0,ave*2)) ### exhange money for i in range(num_exchange): out=np.random.randint(0,num_person) if persons[out]==0: continue persons[out]-=1 persons[np.random.randint(0,num_person)]+=1 ### for fig2 ax2=fig.add_subplot(212) ax2.set_xlim([0,ave*2]) ax2.set_ylim([0,num_person/4]) ax2.hist(persons,ave*2,range=(0,ave*2)) plt.savefig("ch1.png") plt.show()
結果、上の図が交換する前で下の図が交換後の図になります。もうちょっと交換回数が必要な模様...。横軸が持っているお金で、縦軸が人数です。