大分前に一度プロットの回ありましたが、再びプロットです。順に読み進めているWolfram社のチュートリアルがそうなっているためですが。その仕組みからしてもMathematicaとMaximaの差異が多そうな部分でもあります。数式みてもイメージがわかない私のような凡人には特に大事か。
※「忘却の微分方程式」投稿順 index はこちら
※文中で Maximaとあるのは、MaximaにGUIを被せたwxMaxima 21.05.2 (Windows10版)です。Mathematicaはラズパイ上の12.2.0.0です。
学生でもないのに以下のWolfram社Mathematicaのチュートリアルを勝手に参照させていただいております。
またMaximaについては、
Maxima 5.42.2 Maual: 12. Plotting
を参照させていただいております。
パラメトリックなグラフを描く:バタフライ・カーブ・プロット
最初のお題は、パラメトリックなグラフを描けというものです。「媒介変数」というやつですな。何か、印象深い例は無いかと上記のMaximaのマニュアル見ていて見つけました。バタフライ・カーブというものです。論より証拠、御覧じろ。
上記のMaximaはマニュアルの記載をそのまま真似っ子したもの。Mathematicaではどう書けるか。Mathematicaで関数の定義はちょいとクセがある記法(アンダーバーが左辺にいる)ですが、同様に定義してやって、ParametricPlot[]関数に同様に与えれば、同様のグラフが出力されるっと。
等高線を描く
さて今度は、等高線付きのプロットです。Mathematicaから。
関数 ContourPlot[]を呼び出すと、デフォルトで地図風味(山岳地帯か?)の色で等高線付きグラフを塗分けてくれます。これは簡単。
Maximaを調べたら、contour_plotなる関数あり。これに同様な引数を与えれば「同じようなグラフ」が描ける?のかな。
確かに等高線グラフ、別ウインドウ(gnuplotのウインドウ)に描けはしたのですが、以下のようなメッセージが現れました。どうもこの関数は古いから、フツーの plot2d使えということみたい。
wxMaxima上でも plot2d使えますが、それだと別ウインドウで gnuplotが立ち上がります。wxMaxima上のドキュメントにグラフを挿入したい場合、別ウインドウでは2手間ほどあってメンドイので wxplot2d を使ってみます。こんな感じ。
確かにね、等高線グラフ描けてはいるけれど、色気が無いデス。等高線な感じがしないです。ちょっと調べてみたのですが、Maximaの場合、3Dプロットを上から見る形で等高線グラフに色をつけることが出来そうだったのですが、Mathematica風に2Dの範囲では適当なオプションなどが見つからなかったです。次項で3Dの関数使って色をつけてみていますが、明らかに今回範囲からは逸脱。
Mathematicaの密度プロット、Maxima 3Dプロットを上からみた形で色づけ
まずは、Mathematicaの「密度プロット」です。上記の等高線プロットの等高線を無くして、値をグラデーション表示した感じのもの。
続いてMaximaで、範囲外の3Dプロットを使い、3Dプロットを真上から見下ろすスタイルで、等高線(見ずらいっすけど)とグラデーションをつけてみたもの。色はデフォルト、鮮やか過ぎて地図には見えない。
Maximaの場合、プロットは gnuplot 使うのが普通だと思うのですが、gnuplotはgnuplotで、使い方が奥深いです。今回、見様見真似でオプションつけてますけど、これを自在に使いこなすのは大変そう。素人には良きに計らってくれるMathematicaの方が楽だな。お金ないケド。