媒介変数を使う場合には plot の前に物理過程のシミュレーションと３Ｄ画像表示# 図 5 z=4exp(-x2-y2)

set parametric と書けばパラメータ t が導入されるので，x(t)

京都情報大学院大学

set isosamples 50と y(t) を定義して

作花 一志

set xrange[-3:3]

plot x(t),y(t)■ はじめに ■■ グラフ描画 ■平面上のグラフ y=f(x) の慨形は描けても，空間のグラフ2 次元プロットには plot を使う。plot sin(x) という命令だけz=f(x,y) となると想像することも難しい。ましてや実際に描で y=sinx のカーブが描かれる。x の範囲は set xrange[-5:5] のく に は 非 常 に 困 難 で あ る。 と こ ろ が 近 年 gnuplot，scilab，ようにするか，または plot [-5:5] sin(x) と指定するが，指定がoctave，metasequoia などのフリーウェアの性能が大幅にアッなければ－ 10 ～ 10 として扱われる。

プしてきた。誰でもインターネットからダウンロードして自由

set yrange[-3:3]
set hidden3d

各コマンドをエディタに書いて plt という拡張子で保存すれば，splot 4*exp(-(x*x+y*y))

すぐに実行できるプログラムとなる。# はコメント文である。

set title "3D Drawing" font"Century,20"# 楕円
set parameteric
set trange[-pi:pi]
x(x)=10*cos(t)y(t)=5*sin(t)［図２］y=sinx のプロットに使え，簡単なコマンド，スクリプトできれいな図を描くこととすればよい。

plot x(t), y(t)ができる。このうち metasequoia は描画機能は最も優れてい

3 次元プロットには splot を使う。

るが，計算機能はない。gnuplot はプログラミング初心者・未平面曲面ｚ＝ f(x,y)

習者にとっても容易に習得できる。

図 4，9，10 は f(x,y) が 2 次式の，図 5，8 は指数関数の，図には splot f(x,y)

7 は三角関数の例である。

2008 年 11 月 15 日に行われた第 4 回理数系教員指導力向上研修会（独立行政法人科学技術振興機構支援による）では

直 線 曲 線 の 場 合 に は パ ラ メ ー タ u と v を 導 入 し て x(u,v)，# 図 6 (3sin(u),3cos(u),u)

これらによる作品例を紹介し，gnuplot の実習を行った。まy(u,v)，z(u,v) を定義し

set title " 螺旋 " font"MS Gothic,20"

た TA を務めた本学大学院生が自分の研究テーマの一部である

splot x(u,v),y(u,v),z(u,v) とする（図 6）。

set urange [-5:5]
set vrange [-5:5]

metasequoia による描画ついてコメントを行った。この小文では gnuplot を使って 3 次元描画する方法と結果を紹介する。

y の描画範囲は座標軸を描くには■ ダウンロードとインストール ■set isosamples 30

yrange[-2:3] のように指定できる。

x(u,v)=3*sin(u);y(u,v)=3*cos(u);z(u,v)=u

set zeroaxis

splot x(u,v),y(u,v),z(u,v)

線を太くするには plot のオプションに lw 2 を付ける（デフォルトは lw １）。
線の色を指定するには lt ○とする（デフォルトは１赤）。

# タイトルトールして bin\gnuplot.exe をダブルクリックすると起動す

最新版は［1］からダウンロードできる。通常通りインス

plot x**3-2*x lt 3 lw 2

set title " 曲面と平面 " font"MSMincho,18" tc rgb "#0000ff"

るが，すべて英語表記である。そこで同じフォルダーにあ複数のグラフを描くには数式をカンマで区切ればよい。

る wgnuplot.mnu の フ ァ イ ル 名 を wgnuplot0.mnu に , ま た

plot x,x**2+2-x,x**3+2*x

wgnuplot-ja.mnu のファイル名を wgnuplot.mnu と変更すると
ク Choose Font よりフォントも変えられる。

フォント，位置 を指定

set label1 sprintf(" 原点 ") at 0,0 font"MSMincho,12" tc rgb "#ff0000"
set label2 sprintf(" 京都 ") at 3,5 font"MSMincho,12" tc rgb "#0000ff"［図３］y=x,x^2-2x,x^3+2xが同一座標上に表示される。描画色は自動的に割り振られる。

図 1 のようにメニューが日本語で表示される。また右クリッ# ラベル

フォントを指定show label##図4

z=x2-y2

set ytics

gnuplot 解説はウェブサイトにたくさん載っているので基本操

set xtics

作などはそれらを参照されたい。

set hidden3d
set xrange[-5:5]
splot x**2-y**2
set title " 双曲放物面 " font"MSMincho,20"# 図３
set borderset key left top
set ytics
set xtics
set xrange[-2:2]
set title"2D Drawing" font"Century,20"
plot x,x*x-2*x,x**3-2*x# 図 7 z=4sin( √ (x2+y2))
set palette defined(0 "blue",1 "green",2 "cyan",3 "yellow",4"pink",5 "red")
set noborderunset xtics; unset ytics; unset ztics
unset zeroaxis
set isosamples 100
splot 4*sin(sqrt(x**2+y**2)) with pm3d

［図１］起動画面

1213媒介変数を使う場合には plot の前に物理過程のシミュレーションと３Ｄ画像表示# 図 5 z=4exp(-x2-y2)

set parametric と書けばパラメータ t が導入されるので，x(t)

京都情報大学院大学

set isosamples 50と y(t) を定義して作花 一志

set xrange[-3:3]

plot x(t),y(t)■ はじめに ■■ グラフ描画 ■平面上のグラフ y=f(x) の慨形は描けても，空間のグラフ

2 次元プロットには plot を使う。plot sin(x) という命令だけz=f(x,y) となると想像することも難しい。ましてや実際に描で y=sinx のカーブが描かれる。x の範囲は set xrange[-5:5] のく に は 非 常 に 困 難 で あ る。 と こ ろ が 近 年 gnuplot，scilab，ようにするか，または plot [-5:5] sin(x) と指定するが，指定がoctave，metasequoia などのフリーウェアの性能が大幅にアッなければ－ 10 ～ 10 として扱われる。

プしてきた。誰でもインターネットからダウンロードして自由

set yrange[-3:3]
set hidden3d

各コマンドをエディタに書いて plt という拡張子で保存すれば，splot 4*exp(-(x*x+y*y))

すぐに実行できるプログラムとなる。# はコメント文である。

set title "3D Drawing" font"Century,20"# 楕円
set parameteric
set trange[-pi:pi]
x(x)=10*cos(t)y(t)=5*sin(t)［図２］y=sinx のプロットに使え，簡単なコマンド，スクリプトできれいな図を描くこととすればよい。

plot x(t), y(t)ができる。このうち metasequoia は描画機能は最も優れてい

3 次元プロットには splot を使う。

るが，計算機能はない。gnuplot はプログラミング初心者・未平面曲面ｚ＝ f(x,y)

習者にとっても容易に習得できる。

図 4，9，10 は f(x,y) が 2 次式の，図 5，8 は指数関数の，図には splot f(x,y)

7 は三角関数の例である。

2008 年 11 月 15 日に行われた第 4 回理数系教員指導力向上研修会（独立行政法人科学技術振興機構支援による）では

直 線 曲 線 の 場 合 に は パ ラ メ ー タ u と v を 導 入 し て x(u,v)，# 図 6 (3sin(u),3cos(u),u)

これらによる作品例を紹介し，gnuplot の実習を行った。まy(u,v)，z(u,v) を定義し

set title " 螺旋 " font"MS Gothic,20"

た TA を務めた本学大学院生が自分の研究テーマの一部である

splot x(u,v),y(u,v),z(u,v) とする（図 6）。

set urange [-5:5]
set vrange [-5:5]

metasequoia による描画ついてコメントを行った。この小文では gnuplot を使って 3 次元描画する方法と結果を紹介する。

y の描画範囲は座標軸を描くには■ ダウンロードとインストール ■set isosamples 30

yrange[-2:3] のように指定できる。

x(u,v)=3*sin(u);y(u,v)=3*cos(u);z(u,v)=u

set zeroaxis

splot x(u,v),y(u,v),z(u,v)

線を太くするには plot のオプションに lw 2 を付ける（デフォルトは lw １）。
線の色を指定するには lt ○とする（デフォルトは１赤）。

# タイトルトールして bin\gnuplot.exe をダブルクリックすると起動す

最新版は［1］からダウンロードできる。通常通りインス

plot x**3-2*x lt 3 lw 2

set title " 曲面と平面 " font"MSMincho,18" tc rgb "#0000ff"

るが，すべて英語表記である。そこで同じフォルダーにあ複数のグラフを描くには数式をカンマで区切ればよい。

る wgnuplot.mnu の フ ァ イ ル 名 を wgnuplot0.mnu に , ま た

plot x,x**2+2-x,x**3+2*x

wgnuplot-ja.mnu のファイル名を wgnuplot.mnu と変更すると
ク Choose Font よりフォントも変えられる。

フォント，位置 を指定

set label1 sprintf(" 原点 ") at 0,0 font"MSMincho,12" tc rgb "#ff0000"
set label2 sprintf(" 京都 ") at 3,5 font"MSMincho,12" tc rgb "#0000ff"［図３］y=x,x^2-2x,x^3+2xが同一座標上に表示される。描画色は自動的に割り振られる。

図 1 のようにメニューが日本語で表示される。また右クリッ# ラベル

フォントを指定show label##図4

z=x2-y2

set ytics

gnuplot 解説はウェブサイトにたくさん載っているので基本操

set xtics

作などはそれらを参照されたい。

set hidden3d
set xrange[-5:5]
splot x**2-y**2
set title " 双曲放物面 " font"MSMincho,20"# 図３
set borderset key left top
set ytics
set xtics
set xrange[-2:2]
set title"2D Drawing" font"Century,20"
plot x,x*x-2*x,x**3-2*x# 図 7 z=4sin( √ (x2+y2))
set palette defined(0 "blue",1 "green",2 "cyan",3 "yellow",4"pink",5 "red")
set noborderunset xtics; unset ytics; unset ztics
unset zeroaxis
set isosamples 100
splot 4*sin(sqrt(x**2+y**2)) with pm3d

［図１］起動画面

1213

［図 11］ケプラーの方程式の解［図 15］重力ポテンシアル (3D metasequoia)#

図8z=4exp(-(x2+y2))

set xrange[-3:3];set yrange[-3:3]
splot 4*exp(-(x*x+y*y)) with pm3d

4を 0 から 1 まで数値積分
シンプソンの公式により f (x)= x+12

重力が一定 g の場で 2 点を最短時間で結ぶ軌跡は何か？こする。実は f(x) の原始関数は 4tan x であり，この定積分は解の問題はすでに 300 年前に解かれていて，答は直線ではなく析的に求められ，πである。

サイクロイドという曲線である。スイスの数学者・物理学者ベ

-1

#

図 17

サイクロイド面 (u-sin(u),v,-1+cos(u))

set parametric
set urange[-pi:pi]
splot u-sin(u),v,-1+cos(u) with pm3d

ルヌーイが全ヨーロッパの数学者に期限付きで問題を出したところ，4 人の著名な数学者が正解を送ったそうだ。そのうちの１人ニュートンは，１晩で解いたと言われている。サイクロイドの軌跡は x=a(t-sint ), y=a(cost-1) で表され，a=-1 場合は図［図 12］数値積分16 のように描かれる。A を始点，B を極値点として t につい1

∫0 f(x)dx=π#

図9

円錐面 z=4 √ (x2+y2)

splot 4*sqrt(x*x+y*y)with pm3d

図 18

［図 16］サイクロイド曲線■ 物理過程 ■懸垂面（u ,v,-cosh(u)）

重力源から r の距離における重力ポテンシアルの値は

図 19 は地球，火星，月においてボールを初速度 15m/s 仰でそのグラフは直角双曲線（図 13）であるが，角 60°で投げ上げたときの軌跡である。表面重力は質量／半径とし 3D 描画すると図 14 のように描かれる。さらに2 で決まりほぼ 6:3:1 であるから，到達距離や頂上の高さはそ

数値の計算は scilab で，描画は metasequoia で行った結果を図て -π/2 から 5π/2 までの値をプロットした。A 点（t=0 で）か15 に示す。表面は滑らかにまた原点近傍もきれいに描かれる。

ら B 点（t=π）までの所要時間はて落下する時間の逆比 1:3:6 となる。

秒で，斜面に沿っ秒よりも短い。A 点より自由落

下した小球はサイクロイドカーブに沿って運動するが，最下点B で最も速く，B 点を越すと次第に遅くなり，Ｃ点 (t=2π) ではとして，サイクロイドに沿っていけば，その 500km をわずか
［図 13］
重力ポテンシアル（２Ｄ）

set isosamples 60
set xrange[-20:20]

10 分弱でたどり着く。しかも重力エネルギー以外は不要である。ただしＢ点の深さは約 200km となるのでこのようなトンネルを掘ることは実際には無理である。

set yrange[-20:20]
set hidden3d
splot x*x/2-y*y,4

上図の y 値を z 値に移し A 点近傍のサイクロイド面を描い

他の例は筆者のサイト［5］をご参照くださいてみよう ( 図 17)。この形状は神社寺院の屋根によく使われて［1］http://sourceforge.net/projects/gnuplot/いる。雨水が最も速く落下するよう建築時に工夫されたものと［2］http://t16web.lanl.gov/Kawano/gnuplot/言われている。

■ 数値計算 ■

紐や鎖の両端を水平に持って垂らす時にできる曲線は懸垂線
gnuplot による数値計算の例を示す。非線形方程式をニュー（カテナリー）と言われるカーブであり，放物線に似ているがトン法で解く方法は数値計算の代表的な例であり，多数の教科

y=a cosh(x/a) で表される。この値を z 軸にｙ軸はフリーにして書に載っている。ここではケプラーの方程式 x=e sinx+M（e とプロットしたものが図 18 であり，この形は橋梁や寺院の門なM は定数）を解くためにどに使われている。

f(x)=e sinx+M-xのグラフを描き，ｙ =０との交点のｘ座標が解となる。

14［図 19］ボールの軌跡

速度 0 になり，その後は繰り返す。Ａ点を京都，Ｃ点を東京# 図 10 z=x2/2-y2（双曲的放物面）とz=4（平面）［3］http://gnuplot.sourceforge.net/demo/［4］http://k-sakabe.com/gnuplot/［5］http://www.kcg.ac.jp/kcg/sakka/math/num/gnuplot/3d/gnu.htm

作花
sakka

一志
kazushi

京都情報大学院大学教授
経歴はアキューム 17Ｐに掲載［図 14］重力ポテンシアル (3D gnuplot)15

［図 11］ケプラーの方程式の解［図 15］重力ポテンシアル (3D metasequoia)#

図8z=4exp(-(x2+y2))

set xrange[-3:3];set yrange[-3:3]
splot 4*exp(-(x*x+y*y)) with pm3d

4を 0 から 1 まで数値積分
シンプソンの公式により f (x)= x+12

重力が一定 g の場で 2 点を最短時間で結ぶ軌跡は何か？こする。実は f(x) の原始関数は 4tan x であり，この定積分は解の問題はすでに 300 年前に解かれていて，答は直線ではなく析的に求められ，πである。

サイクロイドという曲線である。スイスの数学者・物理学者ベ

-1

#

図 17

サイクロイド面 (u-sin(u),v,-1+cos(u))

set parametric
set urange[-pi:pi]
splot u-sin(u),v,-1+cos(u) with pm3d

ルヌーイが全ヨーロッパの数学者に期限付きで問題を出したところ，4 人の著名な数学者が正解を送ったそうだ。そのうちの１人ニュートンは，１晩で解いたと言われている。サイクロイドの軌跡は x=a(t-sint ), y=a(cost-1) で表され，a=-1 場合は図
［図 12］数値積分

16 のように描かれる。A を始点，B を極値点として t につい1

∫0 f(x)dx=π#

図9

円錐面 z=4 √ (x2+y2)

splot 4*sqrt(x*x+y*y)with pm3d

図 18

［図 16］サイクロイド曲線■ 物理過程 ■懸垂面（u ,v,-cosh(u)）

重力源から r の距離における重力ポテンシアルの値は

図 19 は地球，火星，月においてボールを初速度 15m/s 仰でそのグラフは直角双曲線（図 13）であるが，角 60°で投げ上げたときの軌跡である。表面重力は質量／半径とし 3D 描画すると図 14 のように描かれる。さらに2 で決まりほぼ 6:3:1 であるから，到達距離や頂上の高さはそ数値の計算は scilab で，描画は metasequoia で行った結果を図て -π/2 から 5π/2 までの値をプロットした。A 点（t=0 で）か15 に示す。表面は滑らかにまた原点近傍もきれいに描かれる。

ら B 点（t=π）までの所要時間はて落下する時間の逆比 1:3:6 となる。

秒で，斜面に沿っ秒よりも短い。A 点より自由落

下した小球はサイクロイドカーブに沿って運動するが，最下点B で最も速く，B 点を越すと次第に遅くなり，Ｃ点 (t=2π) ではとして，サイクロイドに沿っていけば，その 500km をわずか
［図 13］
重力ポテンシアル（２Ｄ）

set isosamples 60
set xrange[-20:20]

10 分弱でたどり着く。しかも重力エネルギー以外は不要である。ただしＢ点の深さは約 200km となるのでこのようなトンネルを掘ることは実際には無理である。

set yrange[-20:20]
set hidden3d
splot x*x/2-y*y,4

上図の y 値を z 値に移し A 点近傍のサイクロイド面を描い

他の例は筆者のサイト［5］をご参照くださいてみよう ( 図 17)。この形状は神社寺院の屋根によく使われて［1］http://sourceforge.net/projects/gnuplot/いる。雨水が最も速く落下するよう建築時に工夫されたものと［2］http://t16web.lanl.gov/Kawano/gnuplot/言われている。

■ 数値計算 ■

紐や鎖の両端を水平に持って垂らす時にできる曲線は懸垂線
gnuplot による数値計算の例を示す。非線形方程式をニュー（カテナリー）と言われるカーブであり，放物線に似ているがトン法で解く方法は数値計算の代表的な例であり，多数の教科y=a cosh(x/a) で表される。この値を z 軸にｙ軸はフリーにして書に載っている。ここではケプラーの方程式 x=e sinx+M（e とプロットしたものが図 18 であり，この形は橋梁や寺院の門なM は定数）を解くためにどに使われている。

f(x)=e sinx+M-xのグラフを描き，ｙ =０との交点のｘ座標が解となる。

14［図 19］ボールの軌跡

速度 0 になり，その後は繰り返す。Ａ点を京都，Ｃ点を東京# 図 10 z=x2/2-y2（双曲的放物面）とz=4（平面）［3］http://gnuplot.sourceforge.net/demo/［4］http://k-sakabe.com/gnuplot/［5］http://www.kcg.ac.jp/kcg/sakka/math/num/gnuplot/3d/gnu.htm

作花
sakka

一志
kazushi

京都情報大学院大学教授
経歴はアキューム 17Ｐに掲載［図 14］重力ポテンシアル (3D gnuplot)

15