next up previous contents
Next: 2 清書システム LATEX入門 Up: 3 計算機の活用 Previous: 3 計算機の活用

Subsections


1 グラフィックス入門

計算機が世の中に登場したとき、それは正に計算をするための機械であった。 だからこそ、コンピューターとか計算機と呼ばれるのである。 計算結果の数字の羅列から、その結果を見易くするためにグラフ化するのは、 人の手によるか、ラインプリンターの活字をグラフのマーク代わりに使って 行う程度であった。今日では、結果を視覚的に 表わすことも計算機で容易に行えるようになったし、そうすることから、 新たな視点による結果の見方が出来るようになってきた。 更には、立体図や動画に表わして、 より視覚に訴えることで、計算機による数値実験も、本当の実験のシミュレーション と認識されるようになってきたのである。 純粋な科学の計算結果を視覚化するだけでなく、ゲームや映画やテレビに、 コンピューターグラフィックスがなくてはならないものになっている事は、 あらためて指摘するまでもないであろう。 ここでは、計算結果を2次元のグラフに表わすことをマスターしてみよう。

出力結果が、

100.0              5.033777e-18
200.0              8.974632e-17
 ...                 .....
 ...                 .....
 ...                 .....
という形式でファイルに書き込まれたとしよう。 この数表を $(x, y)$-座標にプロットしたグラフを描いてみよう。 グラフィックスのパッケージソフトウェアには多種類があるが、 ここでは、GNUPLOT というソフトウェアを使っ て見よう[*]

データファイルがログインディレクトリー以外のディレクトリーに置いてある場合は、 そのディレクトリーに移動する。そこで、

% gnuplot
と入力すると、
gnuplot>
となる。これが、GNUPLOT のプロンプトだ。ここでは、仮に、データファイルの名前を result.datとしよう。
gnuplot> set terminal x11
gnuplot> set xlabel "x"
gnuplot> set ylabel "y"
gnuplot> plot "result.dat" using 1:2
と入力してみよう。 第一行目は、出力をX端末の画面上に出させるためのコマンドである。 第二行目と第三行目は、それぞれ $x$軸、$y$軸に入れる座標名を定義する ためのコマンド。第四行目はresult.datの第一コラムと第二コラムから、 $x$座標と $y$座標の数値を読み込む事を意味している。 画面に、新しくウィンドウが開き、図が表示される筈だ。

デフォルトでは、$x$座標、$y$座標とも、数表の範囲を全部カバーするようになって いる。制限を付けたい時は、

gnuplot> plot [0:2000][1:200] "result.dat" using 1:2
のように、 $[x_{\rm min}:x_{\rm max}]$ $[y_{\rm min}:y_{\rm max}]$を順に指定 してから、ファイル名そのほかを指定する。

この様に、GNUPLOTは会話形式で、グラフを簡単に表示させる事が出来る。 それでは、会話形式で打ち込んだコマンドを保存しておいて、再利用できないだろう か。GNUPLOT を終了させない限り、GNUPLOTはコマンドを覚えている。試しに、

gnuplot> clear
とやって見よう。さあ大変、グラフが消えてしまった。しかし、慌てず騒がず、
gnuplot> replot
とすると、GNUPLOTを起動してから今までのコマンドを再度実行してくれる。

次にGNUPLOTを起動した時に、再び同じ事をさせるには、コマンド群をファイルに書き込 んでおく必要がある。

gnuplot> save "filename"
とすると、バッファーの内容が、filenameという名前のファイルに書き込まれ る。このファイルは、後で、エディターで編集する事が出来る。 このコマンドを記述したファイル(マクロコマンド)をGNUPLOTで使う時は、
gnuplot> load "filename"
とすれば良い。GNUPLOT は、デフォルトで、様々な環境をセットアップしてくれている。 ユーザーが自ら打ち込んだコマンドだけでなく、これらのデフォルトセッティングも 同時にセーブされる事に注意しよう。 コマンドを一部変更してもう一度図を描きたいときは、 このファイルをMule で編集し、再びGNUPLOT から ロードさせれば良い。

グラフを最終的に紙に出力しよう。

gnuplot> set terminal postscript
gnuplot> set output "filename.ps"
とする。最初のコマンドset terminal postscriptにより、 以後のコマンドに対する出力先は、ディスプレイではなくポストスクリプトという形式 のファイルである事を宣言する。 二番目のコマンドset output "filename.ps" で、このポストスクリプトファイルを filename.psという名前のファイルとして保存させることを宣言する。 コマンド群をもう一度入力して も良いが、バッファーの内容を再実行するのなら、replotでよい。 ここで、 マウスカーソルを別のターミナルウィンドウに移して、そのウィンドウを アクティブにし、そこから
% ghostview  filename.ps &
としてみよう。ghostviewは、ポストスクリプトファイルを画面に表示させる ソフトウェアである。表示されたファイルが期待通りであるならば、これを紙に出力 してみよう。それには、 マウスカーソルを別のターミナルウィンドウに移して、そのウィンドウを アクティブにし、そこから
% lpr  filename.ps
と入力する。 最後の lprがプリンターにポストスクリプトファイルをプリンターに出力させる コマンドだ。この際、問題のウィンドウのカレントディレクトリーは、 GNUPLOT を起動させているディレクトリーと同じにさせておかねばならない事は言う までもないだろう。

GNUPLOTの終了のさせかたを最後に述べよう。

gnuplot> exit
で終了となり、プロンプトに戻る。

なお、GNUPLOT の起動中に

gnuplot> help
で、GNUPLOT のオンラインヘルプを呼び出せ、各コマンドの意味や使い方を知る事が出 来るので、活用して欲しい。

1 問題:恒星の質量光度関係

実視連星の年周視差が測定できるために連星までの距離が判り、連星の公転周期が測 られ、二つの星の共通重心との間の距離比が判ると、 ケプラーの法則を使うことによって、連星を構成する恒星の質量 が決定できる。距離がわかるので、実視光度から、絶対光度へも換算出来る。 これにより、恒星の質量と光度の関係を調べる事が出来る。 こうして得られた恒星の絶対光度と質量のデータ [*]から、質量と光度の関係を図示せよ。データファイルには、二つの星の質量 $(M_1/M_\odot, M_2/M_\odot)$と光度 $(\log L_1/L_\odot, \log L_2/L_\odot)$ が書かれている。

Figure 3.1: 恒星の質量光度関係。
\begin{figure}\begin{center}
\leavevmode
\centerline{\epsfig{file=double-star.eps,width=11cm,angle=270}}\end{center}\end{figure}



Jun Makino
平成15年4月17日