勉強には鉛筆と紙が必須(「Pythonで始めるプログラミング入門」がなかなかよかった)

このブログは文房具ブログに特化しようと決めてしまったために、本のこととかを書けなくなりました。でも、今日は少し書いてみようと思います。題目は無理やり文房具にこじつけました。

わたしはプログラマーでもないですし、日常的に頻繁にプログラミングをするわけではありません。しかし、簡単なプログラムを書くと仕事がやりやすくなることがあります。言語として使うのはPythonです。

これまでいくつかの入門書を読んで、お気に入りの書籍もあるのですが、つい最近読み終えてよかったのが「Pythonで始めるプログラミング入門」という書籍です。基本的な部分が非常に簡潔にまとめてあります。入門書を読んだことがある人は6章までは読まなくてもいいと思います。

7章からは簡単な数学の問題を短いプログラムで解いていきます。例題として扱う数学は基礎的なものですし、プログラムのレベルも初心者でも十分に理解できるレベルだと思います。慣れてくると、日本語の文章を読むよりも、プログラムを読み下したほうが理解が早いと思います。ただし、数学的な解釈は手を動かして理解する方がいいでしょう。

特におもしろいと思ったのが「モンテカルロ法」です。グラフの面積を求めるためには普通は関数の積分を行います。数値計算だと区分求積法が有名でしょう。グラフを細長い長方形に切り刻んで足し合わせていく手法です。モンテカルロ法は求めたい面積を含むような長方形を考え、長方形内にランダムに多くの点を描き、それが求めたい面積の領域内にあるかどうかを判定することで、点の存在確率を求めます。その後、最初に想定した長方形にその確率を掛けることで、求めたい領域の面積とします。いわれてみればそれでだいたい面積は求まりそうな気がしますが、ちょっとやそっとの点では誤差が大きすぎます。しかし、パソコンの場合、10万点や100万点くらいの点を打って、計算するのはお手の物。そのくらい点の数を増やすと、いい近似値が求まります。

f:id:digistill:20180527025312j:plain

方程式の解を求める二分法やニュートン法もおもしろいです。数値計算のこのような手法は高校で習うような数学的な手法とは全く異なる印象を受けます。しかし、いろいろやっていると、なぜあのような数学をやらされたのかがわかるときがあります。

扱っている例が数学なので、ちょっととっつきにくい印象を与えるかもしれませんが、内容は簡単ですし、非常に簡潔に書いてあります。問題には解答例もあります。Pythonの入門書としてすごくいいです。7章以降は特に順番に読む必要性はないので、興味のある所からやってみるのがいいと思います。出身校の人が著者というのも少し親近感があります。

最後にお気に入りの入門書を下に書いておきます。

PYTHoNで始めるプログラミング入門

PYTHoNで始めるプログラミング入門

 

 

 

実践力を身につける Pythonの教科書

実践力を身につける Pythonの教科書

 

 網羅的ではないですが、読みやすいです。

 

入門 Python 3

入門 Python 3

 

 これは外せない一冊。udemyの「Python 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイルを学び、実践的なアプリ開発の準備をする」というコースを途中までやっているのですが、おそらくこの本を参照していると思われる部分が多いです。このコースはいいです。

 

Pythonからはじめる数学入門

Pythonからはじめる数学入門

 

 Pythonを使って遊ぶネタがたくさん載っていて面白い。matplotlibというモジュールを使ってグラフを描く方法がわかってから、日常業務でエクセルを使う機会がかなり減りました。

この本ではボールの投射運動の解析解を使って曲線を描く方法が載っています。これと数値計算で求めた曲線を比較したりすると面白いです。オイラー法だと誤差が大きいですが、4次のルンゲクッタ法を使えばかなりいい線で一致します。

Digistillへの連絡はこちらから