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

Joseph Halfmoon

前回は再びの2次元プロットでした。今回は3次元プロットです。テキトーでも「後はよろしく」やってくれるMathematicaと、いろいろ設定がややこしいMaxima(自分が全部制御するのだ)という「性格」の違いがでてますな。でもま、こうして3Dグラフを見ると何故か分かった気になるお手軽な私。

※「忘却の微分方程式」投稿順 index はこちら

※文中で Maximaとあるのは、MaximaにGUIを被せたwxMaxima 21.05.2 (Windows版)です。Mathematicaはラズパイ上の12.2.0.0です。

学生でもないのに以下のWolfram社Mathematicaのチュートリアルを勝手に参照させていただいております。

数学を学ぶ学生のための入門チュートリアル 3Dのプロット

またMaximaについては、

Maxima 5.42.2 Maual: 12. Plotting

を参照させていただいております。

Maximaの3Dプロットではwxplot3dでなく、plot3dが良いと思った理由

GUIの充実した wxMaximaを使わせていただいております。2Dプロットでは、別ウインドウでGnuplotが開くplot2d()よりも、wxMaximaのノートブックの中に画像が直接埋め込まれる wxplot2d() を使わせていただいておりました。別ウインドウは面倒だから。

しかし、こと3Dに関しては別ウインドウで開く plot3d() の方が便利、と思います。というのは、wxplot3d() では以下のように「良い感じ」で3Dプロットしてくれるものの、「動きませぬ」。視点が変更できないみたいです。

Max3Dplot000

その点、以下のように plot3dを使えば

Max3Dplot001別ウインドウで gnuplot が開きます。そして「ぐりぐり」と3Dグラフを動かすことが可能。こんな感じ。

Max3Dplot002
一方、Mathematicaは、Mathematicaのノートブックの中で3Dグイリグリが可能です。こんな感じ。
Wolf3Dplot000同じことはできるのだけれど、UI的にはMathematicaは使い易いんでないかと(個人の感想です。)

パラメトリックな3Dプロット

Mathematicaの場合、パラメトリックなプロット専用の関数があるので、それを呼んでやれば、お楽。

Wolf3Dplot004
一方、Maximaのplot3dは、パラメトリックだろうが何だろうが、独立変数を2つ、従属変数1つに帰着させれば描いてくれるみたい。

Max3Dplot003上の場合、本物のパラメータ u に対して、vは単に独立変数を2個与えないとエラーになったから、という理由で付け加えたもの。ダミー。また、grid指定せず、デフォルトのままにすると「カクカク」した荒いグラフになってしまいました。
Max3Dplot004

球面座標

どちらも座標系の変換はサポートしているものの、やはりやり方が異なるみたい。Mathematicaは例によって専用の命令があるので、後はよしなにでもそれなりのプロット。
Wolf3Dplot006

一方 Maximaは、自分でちゃんと制御するのだ、と。

Max3Dplot005上記を走らせるとこんな感じ。

Max3Dplot006
wxMaxima上では、Θとかギリシャ文字も入力できるし、使えるのですが、gnuplotの上では上図の右肩の文字列のように「化けて」しまいました。設定の方法もありそうだが、調べるのは辛そうなのでパス。thetaと綴った方が平和だな。

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

忘却の微分方程式(29) 偏微分と重積分、MathematicaとMaxima へ進む