忘却の微分方程式(27) 2次元プロット再び、MathematicaとMaxima

Joseph Halfmoon

大分前に一度プロットの回ありましたが、再びプロットです。順に読み進めている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のマニュアル見ていて見つけました。バタフライ・カーブというものです。論より証拠、御覧じろ。MaxButterfly

上記のMaximaはマニュアルの記載をそのまま真似っ子したもの。Mathematicaではどう書けるか。Mathematicaで関数の定義はちょいとクセがある記法(アンダーバーが左辺にいる)ですが、同様に定義してやって、ParametricPlot[]関数に同様に与えれば、同様のグラフが出力されるっと。

WolfButterfly

等高線を描く

さて今度は、等高線付きのプロットです。Mathematicaから。

WolfContour関数 ContourPlot[]を呼び出すと、デフォルトで地図風味(山岳地帯か?)の色で等高線付きグラフを塗分けてくれます。これは簡単。

Maximaを調べたら、contour_plotなる関数あり。これに同様な引数を与えれば「同じようなグラフ」が描ける?のかな。

確かに等高線グラフ、別ウインドウ(gnuplotのウインドウ)に描けはしたのですが、以下のようなメッセージが現れました。どうもこの関数は古いから、フツーの plot2d使えということみたい。

MaxContour0xwxMaxima上でも plot2d使えますが、それだと別ウインドウで gnuplotが立ち上がります。wxMaxima上のドキュメントにグラフを挿入したい場合、別ウインドウでは2手間ほどあってメンドイので wxplot2d を使ってみます。こんな感じ。

MaxContour
確かにね、等高線グラフ描けてはいるけれど、色気が無いデス。等高線な感じがしないです。ちょっと調べてみたのですが、Maximaの場合、3Dプロットを上から見る形で等高線グラフに色をつけることが出来そうだったのですが、Mathematica風に2Dの範囲では適当なオプションなどが見つからなかったです。次項で3Dの関数使って色をつけてみていますが、明らかに今回範囲からは逸脱。

Mathematicaの密度プロット、Maxima 3Dプロットを上からみた形で色づけ

まずは、Mathematicaの「密度プロット」です。上記の等高線プロットの等高線を無くして、値をグラデーション表示した感じのもの。

WolfDensity
続いてMaximaで、範囲外の3Dプロットを使い、3Dプロットを真上から見下ろすスタイルで、等高線(見ずらいっすけど)とグラデーションをつけてみたもの。色はデフォルト、鮮やか過ぎて地図には見えない。

MaxContour3D
Maximaの場合、プロットは gnuplot 使うのが普通だと思うのですが、gnuplotはgnuplotで、使い方が奥深いです。今回、見様見真似でオプションつけてますけど、これを自在に使いこなすのは大変そう。素人には良きに計らってくれるMathematicaの方が楽だな。お金ないケド。

忘却の微分方程式(26) 数列、総和、級数、MathematicaとMaxima へ戻る

忘却の微分方程式(28) 3次元プロット、MathematicaとMaxima へ進む