t-hom’s diary

主にVBAネタを扱っているブログ…とも言えなくなってきたこの頃。

数学やるならPython。なぜならSympyというチート級のツールがあるから。

今回はPythonのSympyについてご紹介。

今日は有給休暇を取得して朝から微積の学習を始めた。

別に高尚な趣味として数学をやってるわけではなく、電子工作やプログラミングなど趣味のモノづくりに活かしたいという用途なので、詳細を理解したいというよりはツールとして使いたいという動機が大きい。

そこで難しいところはPythonを使ってすっ飛ばしていくことにした。
書籍には例えばこういう解説が出てくる。

 y=ax^2+bx+c と、実測データx,yからa, b, cを導き出すことができるということを書いてあるが、どう求めるのかは分からない。
まぁ何となく連立方程式なんだろうなとは思うのだが。不明な要素が3つあるのか、こまったな。

こういうときは、Sympyの出番。

Google Colaboratoryというサービスで無料でPython Jupyterを使えるのでそこで連立方程式を作って計算させてみる。
Sympyでは右辺が0という前提で右辺を無視した式を作る必要があるので、 y=ax^2+bx+c ⇒⇒⇒  ax^2+bx+c - y と変形しておく。あとはxとyにそれぞれ値を当てはめた式を作ってlinsolve関数でa, b, cの値を計算させる。

これで書籍のとおり、 a = \frac{1}{400} ,  b = 1,  c = 0 と答えが出た。

Sympyすげぇ。

文字式を文字式のまま扱える仕組みがあれば、数学の問題をかなり柔軟にプログラミングで扱うことができる。
つまり、中身や計算手順が分からなくても、教科書に書いてあるような式をとりあえず真似てつくって操作することができる。

こういう学習方法については賛否あるだろう。たとえば、これでは中身が分からなくて身に付かないとか。

でも、私は使ったこともないものに興味を持てというのは無理な話だと思っているので、とりあえず「よく分からないけど利用はできる」という状態を目指すのは正解だと考えている。

たとえば別に車が好きでもなくて運転もできない人が車のエンジンの仕組みに興味もてるか?という話に近いかなぁと思う。

ということで私はこのチート級ツール(褒めてる)であるSympyを使ってショートカットを駆使しつつ、最終的には微積分を使いこなしたい。

以上、Sympyはすげぇ!という話。

当ブログは、amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムである、 Amazonアソシエイト・プログラムの参加者です。