編集(管理者用) | 差分 | 新規作成 | 一覧 | RSS | FrontPage | 検索 | 更新履歴

Maxima - *コンピュータ代数システム [[Maxima]] (数式処理システム)

目次

コンピュータ代数システム Maxima (数式処理システム)

Maxima はコンピュータ代数システム Computer Algebra System で、 フリー(GPL)の数式処理システムです。 数式処理ソフトとしては Mathematica や Maple のほうが有名でしょう。

巻島がマキシマだから Maxima を紹介というわけではありません、念のため。

簡単な関数のグラフと極限値

例えば、 のグラフを描いてみましょう。

横軸の範囲は指定しなければなりません。 変数 の範囲(定義域)を -10 〜 10 とすると、

    plot2d( x**2, [x, -10, 10] );

は x**2 でも x^2 でもかまいません。 wxMaxima では、[Shift] + [Enter] キーで実行されます。

縦軸の範囲を指定するときは、y オプションをつけます。

    plot2d( x**2, [x, -10, 10], [y, -1, 20] );

Windows の wxMaxima (0.8.6)、Maxima 5.22.1 を使っている場合、 gnuplot でグラフが表示されますが、gnuplot のグラフウィンドウを閉じないと Maxima に戻らないようです。 wxMaxima に戻ると、

    plot2d: some values were clipped.

と表示されます。 範囲外のプロットが切り捨てられたということですね。

次に、反比例、 のグラフを描いてみます。

    plot2d( 1/x, [x, -10, 10] );

gnuplot で単純に

    plot x**2

を実行したときと異なり、 をまたがって線が引かれることがありません。 そのかわり、gnuplot のグラフを閉じて wxMaxima に戻ったときに、

    plot2d: expression evaluates to non-numeric value somewhere in plotting range.

と表示されます。 ですから、 ゼロで割っている、つまり、数でない値 (NaN) になっていることを指摘してくれています。

のときの極限値を求めてみましょう。

    (%i1) limit( 1/x, x, 0, plus );
    (%o1) ∞

    (%i2) limit( 1/x, x, 0, minus );
    (%o2) -∞

    (%i3) limit( 1/x, x, 0 );
    (%o3) infinity

右から 、左から、、 指定しないと「 式の絶対値の極限は正の無限大ですが、式自体の極限は正の無限大でも負の無限大でもない時、 infinity(複素数の無限大)が返されます 」 (Maxima 5.22.1 日本語マニュアル 18. Limits


(2010.10.25 - 2010.11.04)