見出し画像

macOSで数式を計算する (2)

前回の導入編では、数式を計算するために、Jupyterlab, Sympy, LaTeX などを導入した。今回は実際の計算である。

はじめの一歩

加算

まずは、簡単な数式からだ。a, b は何も指定しないと複素数と解釈されてしまうらしいので、整数として定義する。加算(足し算)は整数は順序を変えても答えは変わらない。交換法則というのを覚えている方もいるかもしれない。(赤い線がついているのは、英語の文法チェッカーが働いてしまっているせいで、本題には、関係ない。)

整数は加算については計算順序に入れ替えが可能。また、結合法則も成り立つ。

なお、Sympyでは、Integer=Trueのようなものを Assumption という。これには、「整数であれば、こういう性質のはず」という属性が含まれているので、「順序を交換できない(可換でない)整数」などという妙なものを定義すると、ちゃんとエラーが出る。

「整数は可換なんだよ」というエラー

減算

つづいて、減算、つまり引き算だ。
(なお、変換の一発目が星野「源さん」だったのは内緒である。)
引き算は一見順序を変えると答えが変わってしまうように見える。
実はそうではなくて、a-bと b-a は行っている計算が異なる。それぞれ、a+(-b)、b+(-a) である。以下の例の最後を見ると分かるが、b+(-a) と (-a)+b は順序を変えても同じである。[^1]

引き算は順序を入れかえてはいけないように見えるが、
加算に直すと異なる値の計算をしているのがわかる

何かと話題の乗算

かけ算の順序問題

かけ算の順序問題」というのが時折 SNS を賑わせてる。
乱暴に要約するなら、文章題などで、A × B = C が正解であるとき、B × A = C は誤りであるとするものである。
著名な数学者の方もコメントしているこの問題、私が何かを語るなんておこがましいので、Sympy に計算してもらうとしよう。整数は乗法についても可換であり、順序を変えることができる。また、結合法則も成り立つ。[^2]

整数は乗法についても可換

順序を変えてはいけないかけ算

一方、順序を変えてはいけないかけ算という物も存在する。
一例が行列である。なお、サンプルコードは、Python (SymPy) による行列の計算 のコードを引用させて頂いた。

行列は、順番を変えては言えないかけ算

少し分かりづらいが、A*B と B*A の結果は異なる。

Sympyって何がうれしいの?

個人的には数式を解いてもらえるところだ。

二次方程式を解く

コメント

[^1]: 整数の全体Zはアーベル群なので、加算について順序は問わない。ただ、私たちの思う「引き算」は、aやbの逆元を加算しているこの例では、マイナスの値(逆元)として加算している変数が各々の式で異なる。
[^2]: アーベル群は乗法についても可換である。

参考文献

ご参考

今回および導入編で使ったサンプルコードは以下に公開してある。


この記事はここまでです。 最後まで読んでいただいてありがとうございます。 気に入っていただいたなら、スキを押していただいたり、 共有していただけるとうれしいです。 コメントや感想大歓迎です!