fc2ブログ

Maxima on Android

DSC_3922bm.jpg

最近 7 インチのアンドロイド・タブレットを入手して使っている。数学ツールでは、Sage MathMaxima on Android などをインストールした。Maxima on Android は 10/3 に Maxima のグラフィックス機能がサポートされたばかり、アンドロイドに移植された本田康晃氏には感謝である。写真はパラメータ表示を用いて Maxima の plot3d 関数で描いた一葉双曲面。日本語フルキーボード for tabletをインストールしているので入力には困らないと言いたいところだが、手持ちのアンドロイドタブレットは、安価なものでマルチタッチの精度が悪いため、隣のキーを押してしまうことが多く入力はなかなか大変である。ちなみに iPad には Maxima は移植されていない。

所属する関西学院大学理工学部数理科学科の授業「数式処理演習 I, II」で Maple を使っているが、今年度の研究室の4年生には Maple や数式処理への関心は特に見られない。関心のある学生がいれば、Maple、あるいは、Sage Math, Maxima, Geogebra などを 4 年のゼミで扱ってみたい。今年度の4年のゼミは、複素数平面と幾何学をテーマにしており、Geogebra はこれまでも・これからもほんの少しは使うのだが。

複素数つながりで、著書 『複素数とはなにか』(講談社ブルーバックス)が 10/19 に発売予定。

スポンサーサイト



sin(x/y) の密度プロット

sinxoverydensity.jpg
2変数関数 sin(x/y) の密度プロットを gnuplot で描いてみた.Maxima で描こうとしたが,オプションがよくわからず,ウエブで検索した情報を元に試してもエラーが出てうまくいかないので,Maxima の描画を担当している gnuplot を直接使う道を選んでうまくいった.gnuplot は高機能で無料のグラフ描画ソフトウエアである.

Maxima をインストールした Program Files 内のフォルダー内に gnuplot を見つけることができる. wgnuplot.exe を起動し,そのままではフォントが見にくいのでウィンドウ上で右クリックしてフォントを MS ゴシックに変更し,次のように入力して上の図を得た.(gnuplot のウィンドウからクリップボードにコピーすると画質がよくないので,実際は set output "density.eps" として eps ファイルを出力し,それを jpg に変換している.)

gnuplot> set pm3d map
gnuplot> set xrange [-10:10]
gnuplot> set yrange [-5:5]
gnuplot> set isosample 200,200
gnuplot> unset grid
gnuplot> set palette gray
gnuplot> splot sin(x/y)

Maple だと,次のコマンドで同じことが実行できる.
plots[densityplot](sin(x/y), x=-10..10, y=-10..10, grid=[200,200], style=patchnogrid, axes=boxed);

Maple は使い慣れているので何も参照せずに上の入力ができるが,gnuplot の入力法をウエブで調べるには結構時間を使った.

Maxima で次を実行すれば,冒頭の密度プロットが得られることが後でわかった.(最初は Examples of the Maxima Gnuplot interface の最後の例を真似してうまくいかなかったが,そこの例で unset surface を取り去るとうまくいった.)

plot3d(sin(x/y),[x,-10,10],[y,-5,5],
[gnuplot_preamble,"set view map; set palette gray"],
[gnuplot_pm3d,true],[grid,200,200]);

sin(x/y) の密度プロットは,Mathematica の本(『Mathematica ビギナーズガイド』や『Mathematica 数学の探索』)が元ネタである.90年代半ばに Maple や Mathematica でこれを実行するには長い実行時間がかかったことを思い出す.当時は,本に載っているこのような図を自分のパソコンで描いてみるだけで大きな喜びを感じたものだ.今でも少し楽しい.数学ソフトウェアに初めて触れる学生たちはどう感じるのだろうかと思いながら,改めて試してみた.

ちなみに2変数関数 z=sin(x/y) のグラフの概形は次のようになる.これは Maxima で描いた.wxMaxima のメニュー「プロット」から3次元プロットを選んで関数や範囲を入力すればよいので,Maxima のコマンドをよく覚えていない私にも簡単に描けた.(勿論これは gnuplot で直接描くこともできるが,Maple や wxMaxima の方が私には楽だ.) 実際に Maxima に渡しているのは,次のコマンドである(下の図はクリックすると拡大).
plot3d(sin(x/y), [x,-10,10], [y,-5,5], [grid,100,100]);

sinxovery.jpg

2変数関数 z=sin(x/y) のグラフとは,xyz 空間内の点 (x,y,sin(x/y)) の集合のことである.(x,y) が動くとき,これは xyz 空間内の曲面になる.この例では sin の中に x/y が入っているので,分母の y がゼロの近くで激しく振動している様子はグラフからもわかる.冒頭の密度プロットは xy 平面の点 (x,y) に対して sin(x/y) の値により白黒の濃淡をつけた図である.

グラフを描くソフトウェアは色々あり,その機能,操作法,得られる図の品質は様々である.何か試したらまた紹介する.

テーマ : 自然科学
ジャンル : 学問・文化・芸術

imaxima



古いノートパソコン(IBM ThinkPad X30, Pentium III M 1.20GHz, 504MB RAM, Windows XP)に imaxima をインストールして少し使ってみた.インストールは説明にある通りやってうまくいった.LaTeX パッケージと emacs で少々手間取ったが,ntemacs と Meadow3 上で imaxima が使えるようになった.(インストール済みの TeX 環境に必要なパッケージをうまく追加することができず,フルの TeX 環境 MikTeX2.9 を新たにインストールした.emacs はいくつかのバージョンを試したがエラーで起動せず,少々古い GNU Emacs 22.2.1 (i386-mingw-nt5.1.2600) は起動してうまくいった.Maxima は 5.23.2 をインストール,imaxima のファイルは付属済みだった.)

imaxima は数式処理ソフトウェア Maxima のフロントエンドで,LaTeX と ghostscript を用いて数式が美しく表示される.非力なマシンでは結果の表示が wxMaxima に比べるとワンテンポ遅れるが,重くて使いにくいというほどではなく,美しさが目を引く.wxMaxima で同じ入力をすると次の通り(クリックすると拡大).



普段よく使う数式処理ソフトウェアは Maple で,Maxima には慣れていない.Maxima は完成度の高い無料の数式処理システムであり,使用にあたり多くの情報(ウエブページや pdf ファイル)が得られる点で注目している.

imaxima,そして久々に使った Maxima, emacs には,今後も機会があれば使ってみようと思わせる好印象を受けた.(「機会があれば」というのは,多くの場合,ちょっと体験しただけで,離れてしまうことを意味するのではあるが.)
プロフィール

示野信一

Author:示野信一
関西学院大学理工学部数理科学科
home

最新記事
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
QRコード
QR