maximaを使ってみる

ここ最近なんとなく、電気回路などで使ってる応用数学を思い出しながら、ラプラス変換とか復習してたりしてました。どうせならということで、この機に、数式システムmaximaを使ってみることにしました。

たとえば、ラプラス変換Lで関数f(t) = tを変換すると、

  • L(t) = ∫[0..∞] t*e^(-s*t) dt = ... = 1/(s^2)

となるのだが、maximaのような数式処理システムはこの手の式変換ができるようになっています。

~$ maxima

Maxima 5.13.0 http://maxima.sourceforge.net
Using Lisp GNU Common Lisp (GCL) GCL 2.6.8 (aka GCL)
Distributed under the GNU Public License. See the file COPYING.
Dedicated to the memory of William Schelter.
This is a development version of Maxima. The function bug_report()
provides bug reporting information.
(%i1) integrate(t * exp(-s*t), t, 0, inf);
Is  s  positive, negative, or zero?

positive;
                                      1
(%o1)                                 --
                                       2
                                      s
(%i2) laplace(t, t, s);
                                      1
(%o2)                                 --
                                       2
                                      s
(%i3)

integrate関数で計算すると、sのタイプを聞かれるけど、laplace関数と同じ式になるのが確認できます。

ターミナルで実行してるのでべきとかの式表示がみにくいけど、maximaをTeXmacs上で実行すると、TeXの数式で表示されるのでみやすかったりします。

またターミナルでも、tex関数で式をtex表現で出すことができます。tex関数に式を与えたり、結果%o2を参照したりすることで出せます:

(%i3) tex(%o2);
$${{1}\over{s^2}}\leqno{\tt (\%o2)}$$
(%o3)                               (\%o2)
(%i4) tex(laplace(t, t, s));
$${{1}\over{s^2}}$$
(%o4)                                false
(%i5)

とでます。はてなtex記法で$$〜$$の中をコピペすると、
{{1}\over{s^2}}
と数式の絵にできます。

大学生のころ、電気関係の数学は教科書を呼んでも講義を聴いても何がわからないのかすらわからず苦労して、結局別途入手した高専の教科書が一番理解しやすかったというオチだった。当時こういうツールが簡単に使えてたらもっと簡単に理解できてたんじゃないだろうか、と思うしだいです。