gnuplot + LaTeX

今日のメニュー

今回の演習では gnuplot でグラフを作成して LaTeX での文書作成にそれを取り込みます。 それを印刷して時間内に提出してもらいます。

gnuplot でグラフを作成し eps 形式で保存する

 gnuplot (前回の復習) は関数のグラフや、データ点のプロットなどのできる アプリケーションでした。最初の gnuplot の演習では、単に画面に出力しただけでしたが、 これを別に作った文書などに組み込むことができれば、グラフ入りの文書を作ることができて いっそう有用です。
 画像のデータを他のアプリケーションで利用可能な形式にするために、 gnuplot の画像出力を eps (Encapsulated Post Script)形式のファイルとして出力することが必要になります。

gnuplot の準備運動

少し思い出すために、gnuplot で sin(x) と x-x3/6 のグラフを書きましょう

% gnuplot
gnuplot> plot [-pi:pi] sin(x),x-x*x*x/6

座標軸を表示させてみましょう。

gnuplot> set zeroaxis
gnuplot> replot

(set は一般に、gnuplot に対して、さまざまな動作モードを変更するときに用います。)


gnuplotで eps 形式のファイルを作る方法

gnuplot> set term postscript eps 22 ・・・画像データの出力形式を eps に変更

で gnuplot の出力形式が postscript eps 形式に変更されます(最後の 22 は文字サイズを 22 にするということです。)。
以降、グラフは「絵」としては出力されず eps 形式データ(文字によって絵を表す形式の一つ)として出力されます。

つづいて

gnuplot> set output "taylor.eps" ・・・画像データの出力先をファイル taylor.eps に変更

で出力結果をファイル taylor.eps に出力するようになります。
これ以降画像データは画面に出力されないで、代わりにファイル taylor.eps として作成されます。

つづいて plotコマンドを用いてグラフを描きましょう。

gnuplot> plot [-pi:pi] sin(x),x,x-x*x*x/6,x-x*x*x/6+x*x*x*x*x/120

これで4つの関数のグラフを描きましたが、それはファイル taylor.eps に eps 形式で出力されています(画面には出力されません)。

gnuplot を quit で終了します。

gnuplot> quit
%

ls コマンドを実行してみれば、新たに taylor.eps が作成されているのが確認できるはずです
出力された EPS ファイルの内容は gv コマンドで確認できます(gv は ps, eps 形式のファイルを画面に出力するアプリケーションです)。

% gv taylor.eps ・・・ファイル taylor.eps の内容を画像として表示

上の操作どおりできていれば、4つの関数のグラフが描けているはずです

グラフを LaTeX 文章の中に取り込む

下の LaTeX ファイルは、先ほど作成したグラフを LaTeX 文章の中に取り込んだ文章の例です。
各自入力しましょう。ただし、著者名 学生番号とあるところは、各自の名前、学生番号をタイプすること。
ファイル名は taylor.tex としましょう。

\documentclass[12pt]{jsarticle}
\usepackage{amsmath,amssymb}
\usepackage{graphicx}
\begin{document}

\title{テーラー展開}
\author{著者名 学生番号}

\maketitle

関数$f(x)$ を$x$のベキ関数で展開すると以下のようになる。
\begin{equation}
 f(x) = f(x_0) + \frac{d f}{dx}(x_0) (x-x_0)
 + \frac{1}{2!} \frac{d^2 f}{dx^2}(x_0) (x-x_0)^2
 + \frac{1}{3!} \frac{d^3 f}{dx^3}(x_0) (x-x_0)^3 
 + \cdots
\end{equation}

例えば、
$\sin(x)$ を $x=0$ の周りで展開すると
\begin{equation}
  \sin(x) = x - \frac{1}{3!}x^3 + \frac{1}{5!}x^5 + \cdots
\end{equation}
となる。

図\ref{fig:taylor}は、$\sin(x)$に関するテイラー展開の様子を表したものである。

\begin{figure}[hb]
\centering
 \includegraphics[width=8cm]{taylor.eps}
 \caption{関数 $\sin(x)$ とその$1$次、$3$次、$5$次までの taylor 展開のグラフ}
 \label{fig:taylor}
\end{figure}

展開式の次数が増えるにしたがって、$\sin(x)$ への近似が良くなっていることがわかる。

\end{document}

上のファイルを保存したあと、 platex でコンパイルし xdvi によって閲覧してみてください。

% platex taylor.tex
% xdvi taylor.dvi

gnuplot で作成した図が組み込まれて出力されていると思います。ですが出力をじっくり読んでみると、??となっているところがあると思います。
これは図番号の参照がうまくいっていないことを表しています。
もう一度 platex でコンパイルしてください。参照番号がちゃんと更新されるはずです。

プリンタへの出力

ps ファイルを作成します。

% dvips taylor.dvi
% lp taylor.ps 

(おまけ)PDFファイルとして作成するには、

% dvipdfmx taylor.dvi

課題の説明

\documentclass[12pt]{jsarticle}

フォントサイズ 12、スタイル jsarticle を用いることの指定。

\usepackage{amsmath,amssymb}
\usepackage{graphicx}

追加パッケージ(追加機能)を読み込む。amsmath,amssymb は数学記号処理のパッケージ、 graphicx はグラフィック(図)を使うためのパッケージです。

\title{テーラー展開}
\author{著者名 学生番号}

\maketitle

論文タイトルと著者を指定して、\maketitle で表題を作成します。

\begin{figure}[hb]
\centering
 \includegraphics[width=8cm]{taylor.eps}
 \caption{関数 $\sin(x)$ とその$1$次、$3$次、$5$次までの taylor 展開のグラフ}
 \label{fig:taylor}
\end{figure}

図を挿入します。
\begin{figure}~\end{figure}で、図を描くスペースを確保し、
\includegraphics[width=8cm]{taylor.eps}で、taylor.epsを組み込み、
\caption で、図の説明を書き、
\label{fig:taylor}で、図番号を fig:taylorという名前で参照できるようにする。図番号を参照するには:

\ref{fig:taylor}

のようにすれば、fig:taylorが参照する番号を表示する。

今日の課題

  1. 例題で作成した文章を印刷して提出すること(時間内に必須)
  2. 例題で作成した文章の内容の中で、例として挙げられている sin(x) を、指数関数 ex に代えた文章を作成、印刷して提出すること。ここで ex の x=0 の周りでのテーラー展開が
    ex = 1+x+x2/2+x3/6+・・・
    となることを利用せよ。 グラフは, ex , 1+x, 1+x+x2/2+x3/6 の3つ ( exと,1次,3次までの展開)を 描くこと. (次週までに提出可)
    TOP