fc2ブログ

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) の値により白黒の濃淡をつけた図である.

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



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

プロフィール

示野信一

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

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