GNUPlot
によるデータ解析検光子(偏光フィルター)による偏光分析を例として、実験データから式のパラ
メーターをもとめるしかたを解説する。手計算ではなく、グラフ作成ソフトGNU- Plot を使う。GNUPlot は Linux, Windows, MAC など、いろいろなコンピュー ターシステムで動作する。多くの Linux システムではすぐに使用可能にすること ができる。Windows やMAC では、インターネットで探してインストールするこ とができる。
目 次
1 やりたいこと 2
2 データ入力 3
2.1 データ形式 . . . . 3
2.2 データの保存 . . . . 3
3 GNUPlot の操作法 4 3.1 立ち上げと終了 . . . . 4
3.2 ヒストリー機能 . . . . 4
3.3 ディレクトリーの操作 . . . . 4
4 フィッティングの手順 4 4.1 データのグラフ . . . . 4
4.2 理論式の入力 . . . . 5
4.3 データと式のグラフ . . . . 5
4.4 フィッティング . . . . 5
4.5 グラフの完成 . . . . 5
4.6 グラフの出力 . . . . 6
5 ファイルのありか 6
1
やりたいこと検光子の回転にともなう透過光量の変化を光電変換装置で測定する。光電変換 の出力電圧は透過光量に比例するものとする。回転角度の読みを x,電圧計の読み を y とすると、理論によれば、xと y の間には次の式が成り立つ。
y=acos2[k(x−b) ] +c
ここで、k = π/180 であり、これは角度の単位を度からラジアンへ変換する比例 定数。角度 x は度を単位として測定するものとしている。cosへの引数はラジア ンを単位とした値である。
パラメーター a, b, cは検光子への入射光の性質を反映していて、測定結果から これらを推定することがここでの目標になる。cos2 はゼロと1 の間を180 度の周 期で振動していることと、cos 0 = 1であることから、 上の理論式のグラフに関し て次のことがわかる。
1. グラフの全振幅( y の最大値と最小値の差) は a である。これは入射光の強 さに比例する。
2. グラフのピークのひとつの x 座標はb である。 b としてどのピークの x 座 標を選んでも式は等価になる。入射光の偏光の主軸の向きが違うと b の値も 同じだけ違う。
3. グラフの谷の高さ( y の最小値)は c である。入射光が直線偏光である場合 は、cはゼロになる。一般には、c と a との比から偏光楕円の形などを計算 することができる。ただし、光学系や電気回路の不完全さによるゼロ点のず れがあれば、それを補正する必要がある。
3つの未知数があるので、もし測定値に誤差が無いのなら、3組の x, y の値を 測定して理論式に代入して解けばパラメーターが決まるが、誤差が無いというこ とはあり得ないので、この方法は無効である。実際には、もっとたくさんの点で 測定を行い、測定データと理論式の値が全体として最もよく一致するようなパラ メーターを求める。これを「フィッティング」(fitting,あてはめ)という。
簡単な方法としては、パラメーターを少しずつ変えながら理論式とデータのグ ラフを目で見て判断する方法があるが、これは、人によって結果がが異なるし手 間もかかる。そこで、不一致の程度を計算して数値であらわすようにし、これが 最も小さくなるようにパラメーターの値を決めるという方法をとる。すると、コ ンピューターで自動的に処理することもできるようになる。
フィッティングを行うことができるコンピューターソフトはいろいろあるが、こ こではシンプルな GNUPlotを使用することにする。GNUPlotにデータを与えて やるとグラフを表示してくれる。さらに理論式とパラメーターの初期値を与えて やると、パラメーターの最適値を自動的に探して結果を表示してくれる。
2
データ入力GNUPlot では、フィッティングを行うとき、データはファイルから読み込む。
したがって、まずデータファイルを用意する必要があるが、ファイル形式は汎用 的なプレーンテキストである。したがって、テキストエディターでデータを打ち 込んで保存すればよい。テキストエディターはたとえば メモ帳でも gedit(Gnome テキストエディタ)でも emacsでもよい。GNUPlotにはデータを打ち込む機能は 無い。
2.1
データ形式下のように、データはx の値と y の値の組を1行に1組ずつ空白で区切って記 入する。数値に単位は付けない。小数点はコンマではなくピリオドを使う。また、
桁区切りのコンマは使わない。データの右側に半角の # から始まるコメントを書 くことができる。また、 # から始まる行は全体がコメント行になる。コメント行 とデータの行以外の行を入れてはいけない。空行も入れてはいけない。
日本語のコメントは OS が異なると文字化けが起る可能性がある。
# データ、直線偏光#2、5月15日
# x(度) y(ボルト)
3.5 0.102
5 0.231
10.5 0.365
14 -0.188 # あやしいデータ、測り直す予定
17 0.503
...
...
2.2
データの保存データやグラフィックスを保存するためのディレクトリー(フォルダー)を用意 するほうがよい。ただし、なんのことかわからなければ何もしないのがよい。わ かる人には説明の必要は無いだろう。
ファイル名はデータの内容がわかるように付ける。アルファベットと数字とア ンダースコア _ , ハイフン-, ドット. を使うことができる。空白は入れないほう がよい。全角文字も使えるが、他のコンピューターで文字化けを起すことがある。
データを保存しても、テキストエディターは終了しないでおくほうが便利であ る。GNUPlotでデータをグラフにすると、タイプミスや測定値の読み間違いなど による異常な測定点が見つかることがある。そのような場合、テキストエディター が動作していればそのまま修正、保存してすぐにグラフを描き直すことができる。
3 GNUPlot
の操作法3.1
立ち上げと終了GNUPlotを立ち上げる方法はいろいろあるが、ともかく立ち上がるとgnuplot>
というプロンプトが現れる。このプロンプトに対してコマンドを入力し、Enter キーを押すと、コマンドが実行されて結果が表示され、再びプロンプトが出る。
GNUPlot を終了させるコマンドはquit と exit である。どちらも同じである。
3.2
ヒストリー機能コマンド入力を楽にするために「ヒストリー機能」が組み込まれている。上向 き矢印キーを押すと前に入力したコマンドを呼び出される。Enter キーを押して それをそのまま再実行することもできるし、左右の矢印キーや Deleteキーなどを 使って修正してから実行することもできる。上向き矢印キーで何段階でも遡るこ とができる、戻りすぎたら下向き矢印キーで引き返すことができる。
3.3
ディレクトリーの操作ディレクトリーについて理解している人のために、GNUPlotのディレクトリー 操作用コマンド、pwd と cd を紹介しておこう。これらは UNIX の同名のコマン ドとほぼ同じである。カレントディレクトリー(現在のディレクトリー)が知りた ければ、pwdと打てばよい。カレントディレクトリーを変えるには cd を使う。た だし、ディレクトリー名はダブルクォートかシングルクォートで囲んで指定する 必要がある。デスクトップに対応するディレクトリーは ’~/Desktop’である。
4
フィッティングの手順4.1
データのグラフGNUPlotで次のようにコマンドを入力してEnterキーを押すと、データのグラ
フが表示される。
plot "henko-02"
クォーテーションマークの中は、データを入れたファイルのファイル名を書く。
グラフの形が怪しい場合は、測定データの入力ミス、測定方法の間違い、測定 装置の不具合を疑い、検討して対策を行う。
4.2
理論式の入力GNUPlotで 次のように打ち込む。
k = pi/180
f(x) = a * ( cos( k * ( x - b ) ) ) ** 2 + c a = 0.15
b = 63 c = 0.1
2つのアステリスク ** は冪乗をあらわす。a, b, c の意味は先に説明したとお り。これらにセットする値はデータのグラフを見ておおざっぱに推定して決める。
注意: bの値がゼロに近いと、後で行うフィッティング計算が失敗する可能性があ る。そのような場合は、180 を足した値を使う。これは隣りのピーク位置である。
4.3
データと式のグラフplot f(x), "henko-02"
でグラフを描き、見て比較する。全くはずれたら、再検討して値をセットし直し てグラフを描く。関数の定義 f(x)=... を入れ直す必要は無い。
4.4
フィッティングfit f(x) "henko-02" via a, b, c と打つ。f(x) の右にコンマを入れないことに注意。
最後に表示されるa,b, c の値が、コンピューターが推定したパラメーター値で ある。推定値の信頼度なども表示される。おかしな値になった場合は、パラメー ターの初期値に問題がないかをチェックし、初期値を再設定してフィッティングを やり直す。b の値がゼロに近いとうまく行かないことに注意してほしい。
フィッティングの結果をグラフにするには、replot または repと打つ。また、
パラメーターの値を表示するには、print a, b, c と打つ。
4.5
グラフの完成少し飾りを付け、線を太くし、マークを大きくしてグラフを描き直す。
set grid
set title "Linear polarization, No.2"
plot f(x) with lines lw 2, "henko-02" with points ps 2
4.6
グラフの出力もしグラフをよく見る必要があるなら、以下のように操作して印刷するとよい。
set terminal po; set output "| lp"; replot; set output; set terminal x11
"| lp" は縦棒と小文字のエルとピーである。 次のように縮めてもよい。
se te po 20; se ou "| lp"; rep; se ou; se te x11
se te po 20 のところの数値は文字サイズを指定するものである。
ワープロで作成するレポートの本文の中にグラフを挿入するには、グラフを画像 ファイルとして出力しておく。ここでは、一般的に使われる jpeg 形式の画像ファ イルを出力することにする(LATEXを使う人は少し読み飛ばすこと)。
グラフを表示した後、次のように操作する。
se te jp large; se ou "graph02.jpg"; rep; se ou; se te x11 こうすると、グラフが graph02.jpgというファイルに保存される。ファイル名は 適当に付ける。ただし、.jpg を付けること。largeというのは、文字の大きさの 指定であり、giant にするともっと大きくなる。
OpenOffice writerでこのファイルを取り込むには、「挿入」メニューの「図」「ファ イルから」に行き、ファイルを選ぶ。取り込んだ図は、編集画面ではそのわくだ けが表示されるかもしれないが、その場合でも印刷プレビューでは中身も表示さ れる。もちろん、印刷にも出てくる。
LATEXでグラフの入ったレポートを書く場合は、jpeg 形式よりも eps 形式の方 が便利である。eps 形式での出力は次のようにする。
se te po eps 20; se ou "graph02.eps"; rep; se ou; se te x11
5
ファイルのありかここまでの説明では、データやグラフのファイルはみな同じ場所に入る。作業 用のディレクトリーを用意しなかった場合は、おそらくホームディレクトリーに 入る。ホームディレクトリーを開くには、デスクトップ上にある 「—-のホーム」
というような名前の付いたフォルダー・アイコンをダブルクリックすればよい。こ のとき、表示を一覧表示にして更新日時で整理すると、楽に探すことができる。
これらのファイルはメールに添付して必要な人に送るとよい。
メールが使えない場合はフロッピーや USB スティックにコピーすればよいが、
日本語のファイル名が文字化けすることがあるので、ファイル名はローマ字にす る方が安全である。
大学でレポートを書く場合cc環境を使うことになるが、cc環境へはgftpを使っ て直接転送するとよい。