E..3.2 データ・ファイルを作って gnuplot でプロットする

$ (t_j,x_j)$ をファイルに書き出して、それを gnuplot でプロットしてみよう。

gnuplot の使い方については、例えば 「gnuplot 入門」 などを参考にせよ。


次のCプログラムは、 euler1-output.txt というテキストファイルに書き出すものである。
\begin{breakitembox}[l]{C言語によるプログラム例 \texttt{euler1-output.c}}
{\footnotesize\verbatimfile{ode_for_ms/euler1-output.c}}
\end{breakitembox}

要点を抜き出すと次のようになる。
要点の抜き出し
  FILE *output;

  output = fopen("euler1-output.txt", "w");

  fprintf(output, "# output by &s\n", argv[0]); // #はgnuplotの注釈
  fprintf(output, "# N=%d\n", N);

  // 以下は座標データ
  fprintf(output, "%f %f\n", t, x);
  for (...) {
    ...
    fprintf(output, "%f %f\n", t, x);
  }
  fclose(output);

gnuplot で euler1-output.txt の内容をプロット
% cc euler1-output.c
% ./a.out
これで euler1-output.txt が作られる。
% gnuplot
gnuplot> plot [] [0:3] "euler1-output.txt" with lp
これで表示される。ファイルに記録するには
gnuplot> set term png
gnuplot> set output "euler1.png"
gnuplot> replot
gnuplot> quit

図 4: euler1-output.txt をプロット
Image euler1



桂田 祐史