ビュフォンの針を落とす エピローグ

python
python

古典的問題「ビュフォンの針」のシミュレーション!

なんかいろいろやったなあ。

記事①:Pythonで円周率を求めよう ~ビュフォンの針を落とす ep1~
記事②:クラスを継承して改良しよう ~ビュフォンの針を落とす ep2~
記事③:Pythonでグラフ描写して検証する ~ビュフォンの針を落とす ep3~
記事④:Pandasでグラフに針を落とす ~ビュフォンの針を落とす ep4~

過去4回、古典的シミュレーションの問題「ビュフォンの針」をやってみました。
思いもよらぬ方向に進みましたが、それだけにいろいろなテクニックを使えました。

では、振り返ってみましょう。

1.「ビュフォンの針」シミュレーションはどうだったか?

ep1でシミュレーションプログラムをつくれました。(結局ここが完成品でしたね)
ep2で角度θを使わないプログラムをつくろうとすると変になりました。
ep3で、ep2で作ったプログラムの検証を統計とグラフで行いました。やっぱりおかしかったですね。
ep4でビュフォンの針を視覚的表現してみました。

ep1で意外と簡単にシミュレーションができました。
ep2で失敗しましたが、そのおかげでグラフ表示や統計を詳しく試せました。
まさにケガの功名といったところですね。

今回も大体面白くやれたのでOKです。
ep2でやろうとした、角度θを使わないシミュレーションは結局うまい作戦が見つかりませんでしたね。
ここが心残りですね。

2.今回使ったテクニック

今回使ったテクニックを挙げてみましょう。

①:mathモジュールによる三角関数
数学関係の処理を行えるモジュールです。今回はこれで三角関数を計算しました。
三角関数以外にも、絶対値とかの一般的な数学処理、指数関数や対数関数等を使えるようです。

②:Classの継承とオーバーライド
「オブジェクト指向」の考え方を応用できました。
前に作ったものを無駄にしない。確かにこれは強力ですね。
オブジェクト指向をなぜつくるのか?」を読んでおいて良かったです。

③:statisticsモジュールによる統計計算
平均値、中央値、偏差値の計算を行うモジュールです。
他にも最頻値、調和平均、分散などが計算できるようです。

④:matplotlibライブラリによるグラフ表示
今回の裏テーマです。これがやりたかった!今後も使うと思います。
ヒストグラム、散布図、折れ線グラフを使いました。
凡例表示、グラフ範囲設定、色を変えるなどなど、今回やりました。
非常に多機能で、かなりいろいろできます。
他にも円グラフ、棒グラフ、3Dグラフなどが描けるようです。

⑤:Pandasライブラリによるフレームワーク処理
機械学習やデータサイエンスで使用するPandasライブラリを使用しました。
フレームワークを作成し、そこにデータを入れていきます。
今回は、まだ本格的な使用はできていませんが、少し感覚をつかめました。

いやーいろいろと使ってますね。
とくに④と⑤は今後も使うでえあろう重要なライブラリです。Pandasは予定外でした。

3.matplotlibライブラリについて

今回は、これでグラフを書くのがひとつのテーマでした。
matplotlibについては、こちらページ(matplotlibのめっちゃまとめ)が非常によくまとまっています。

非常に簡単に多種多様なグラフが描けます。
しかも、細かく設定しなくても、とりあえずいい感じにしてくれます。
また、グラフ処理に関するいろいろな処理、たとえばX軸Y軸の名前、範囲など大体のことが出来ます。
グラフの色もめちゃめちゃ選べます公式ページ参照。

いやー凄いですね。本当にグラフの関することならほぼ書けます。
勝手にいい感じにしてくれる感じはExcel以上だと思います。

4.まとめ

今回、古典的シミュレーションを実施することが出来ました。
つまり、私はコンピューターシミュレーションをやったと言い張って良いということです。
また、図らずもデータサイエンスに片足を突っ込めました(かな?)。
つまり、データサイエンティストの端くれを名乗っても良いということです。

では、次の「おもちゃ」で!

PyQさんで勉強中!一緒にやりましょう!

コメント

タイトルとURLをコピーしました