** プログラミングの準備 [#ydca7d6b]

- サテライト演習室のPC端末で使用するUSBを配布します.それ単体でiPython Notebook (Jupiter)が動くようにしてあります.

- 授業ではこのJupiterを使い,乱数の発生からはじめて,ブラウン運動のシミュレーションをやってみます.

- Pythonの文法は例えば以下を見てください.
http://www.tohoho-web.com/python/index.html

- Jupiterの使い方の簡単な紹介.
http://myenigma.hatenablog.com/entry/2016/02/20/183423

- グラフを書ために matplolib を使います.授業では基礎的な機能だけ使いますが,やり方次第でいろんなことが出来ます.
http://cflat-inc.hatenablog.com/entry/2014/03/17/214719

- その他,ググればたくさん情報があります.それらを有効に活用してください.

*** それでは以下に従って動作を確認してください. [#c51200ee]

+ USBをWindows PCに挿して,Fドライブとして認識させる.
+ F:\Start Menu\Jupyter Notebook をクリックして,Jupiterを起動する.
+ ブラウザ内の右上部にあるタブ"New"から一番下の"Python 3"を選択する.
+ セル内に以下を記入
 2+3
+プルダウンメニューから"Cell"->"Run Cells"を選択し,正しい答えが出力されることを確認

*** 次にグラフを書いてみます. [#w3606969]

+ セル内に以下を記入する(#より右はコメントなのでなくてもよい).
 % matplotlib inline
 import numpy as np # numpyという数値計算用のライブラリを使用する.関数***を使う時には"np.***"として呼び出す.
 import matplotlib.pyplot as plt # matplotlibというグラフィックライブラリを使用する.関数***を使う時には"plt.***"として呼び出す.
+ プルダウンメニューから"Cell"->"Run Cells"を選択
+ セル内に以下を記入する(#より右はコメントなのでなくてもよい).
 x = np.arange(-3, 3, 0.1) # -3から3の範囲を間隔0.1で刻み,配列xに保存
 y = np.sin(x) # 配列xの各要素について,y=sin(x)を計算し配列yに保存
 plt.plot(x, y) # x vs. y をプロット
+ プルダウンメニューから"Cell"->"Run Cells"を選択し,正しいグラフが出力されることを確認

*** 書いたスクリプトに名前を付けて保存します. [#zd739053]
+ プルダウンメニューから"File"->"Rename"を選択し,"test1"という名前を付ける.
+ プルダウンメニューから"File"->"Save and Checkpoint"を選択し,スクリプトを保存する.
+ プルダウンメニューから"File"->"Close and Halt"を選択し,Jupiterを終了する.さらにブラウザも終了する.
+ F:\Start Menu\Jupyter Notebook をクリックして,Jupiterを起動する.
+ 起動画面で F:\work の中のファイルが見えていると思うので,test1.ipynb をクリックして起動する.
+ プルダウンメニューから"Cell"->"Run All"をしてください.スクリプトが実行されて,グラフが出るはずです.

** 擬似乱数 [#b53fc8d3]

*** 一様乱数. [#w3606969]

+ セル内に以下を記入する.
 % matplotlib inline
 import numpy as np
 import matplotlib.pyplot as plt
+ プルダウンメニューから"Cell"->"Run Cells"を選択
+ セル内に以下を記入する.
 np.random.seed(0)                    # 乱数の初期化
 R = np.random.rand(100000)           # 0〜1の範囲で一様分布を持つ乱数を発生させ,Rに格納
 plt.hist(R, bins=100)                # Rに格納された乱数の分布を100個の棒グラフにする
 plt.show()                           # グラフの表示
+ プルダウンメニューから"Cell"->"Run Cells"を選択すると,発生させた100000個の乱数値の頻度分布がプロットされる.

*** 正規分布に従う乱数 [#r8adc0cb]

+ セル内に以下を記入する.
 np.random.seed(0)
 R = np.random.randn(100000)           # 平均=0,標準偏差=1の正規分布に従う乱数を発生させ,Rに格納
 plt.hist(R, bins=100)
 plt.show()
+ プルダウンメニューから"Cell"->"Run Cells"を選択すると,発生させた100000個の乱数値の頻度分布がプロットされる.

*** ランダムウォーク(酔歩) [#s77ffd30]

 L = 10000                            # 歩数 i=0,1,2,...,L
 np.random.seed(0)                    # 乱数の初期化
 step = np.random.choice([-1,1],L)    # +1 or -1 をL個生成 step(i) = +1 or -1 
 position = np.cumsum(step)           # 位置 position(i)
 plt.plot(position)                   # i vs. position(i)

*** 宿題 [#ab61e324]

- 平均が0,標準偏差が1の正規分布に従う乱数を,10^3個,10^4個,10^5個,10^6個発生させ,それぞれ分布関数を正しい正規分布と比較せよ.図を添付して次回授業開始までにメールで提出すること.