[Back to Useful Info] [Go to Top Page]
作業フォルダを作成する |
Dドライブのルートに「D:\temp 」フォルダを作成しておく。フィッティングに使うファイルはすべてこのフォルダ内に保存する。「 \temp 」フォルダ内にさらにフォルダを作成する場合は、フォルダ名は半角英数にしておくこと。
|
---|---|
実験データ(フィッティングさせるデータ)の保存方法 |
データの文字列の区切りをスペース区切りとし、拡張子をprnとして保存する。
(Terapad上で作成し、名前は半角英数とする) スペース区切りでなかったらExcellを使用して変える。 |
使用する関数を保存しておく |
Terapadを用いて、例えばf(a,b,c,x)=a*x**2+b*x+c という式を入力する。ファイル→名前をつけて保存→「ファイル名.fnc」とし「ファイルの種類をすべてのファイル」で保存 (ファイル名は半角英数とする) |
手順 | 命令 | コマンド入力 (実行はENTERキー) |
備考 |
---|---|---|---|
1 | 参照フォルダの変更 |
cd"ドライブ名://フォルダ名"
|
Dドライブにtemp フォルダを作成し、そこで作業するのが良いDの temp 内のフォルダを参照する場合はD://temp//フォルダ名 とする
|
2 | 関数の定義 |
f(a,b,c,x)=a*x**2+b*x+c
|
f(x)=ax2+bx+c の定義式f,a,b,c は任意の半角英数を使用。gnuplotでは、べき乗は** と表し、横軸がxであることに注意。
|
3 | フォルダ内の実験データファイルをグラフとして表示 |
plot "ファイル名.prn"
|
ファイルは参照しているフォルダ内(手順1)に入れておくこと。 |
4 | 定義した関数をグラフとして表示@ |
plot f(数値,数値,数値,x)
|
手順2で定義した関数を使用。数値は任意の数字。 |
5 | 定義した関数をグラフとして表示A |
a=数値(ENTERキー)
|
@、Aのどちらでもよい |
6 | xの範囲を指定 |
plot [0:100]"ファイル名.prn"
|
この場合はx=0~100を表示 |
7 | xとyの範囲を指定 |
plot [0:100][1:200]"ファイル名.prn"
|
この場合はx=0~100、y=1~200を表示 |
8 |
実験データと、定義した関数 の両方のグラフを表示 |
plot f(数値,数値,数値,x),"ファイル名.prn"
|
2つの間にカンマ(,)を打ち込む |
9 |
定義した関数の曲線が、実験プロットになるべく近づくよう、各数値を変え、手順8を繰り返す。 2つのグラフがかけ離れていると上手くフィッティングできないので注意。 |
||
10 |
2つのグラフ(実験データと定義した関数)を フィッティングさせる |
a=数値(ENTERキー)
|
数値は手順9で近似した値を入力。 |
11 |
fit コマンドにより、最適化された各フィッティングパラメータ(a,b,c )の値が、D:\temp\fit.log に保存される。fit コマンドを繰り返すと、最適化されたパラメータ値はD:\temp\fit.log に追記される。別の方法として、gnuplotの「ファイル」→「保存」→「ファイル名.log」とし「ファイルの種類をすべてのファイル」にして保存すれば、どのデータのフィット結果なのか分かりやすい。 |
||
12 | 各パラメータ(a,b,c)の値の書き出し |
save variables "ファイル名.任意の拡張子"
|
上記fit.logに出力される、最適化後の各フィッティングパラメータ(a,b,c)の値は、表示桁数を少なくしてある。gnuplotの最大有効桁数で値を表示させたい場合はこの方法を用いる。桁落ちでフィット後の曲線がうまくグラフ化されない時に有効。 |
**
から、^
に変更する。
(例えばx3
の場合、gnuplotでは「x**3
」、
plot32では「x^3
」)手順 | 命令 | コマンド入力 (実行はSHIFT+ENTER) |
備考 | |
---|---|---|---|---|
1 | 関数を定義する |
f(x):=a*x**2+b*x+c; |
gnuplotの場合とは定義の方法が違うので注意。 各セミコロンの後に「ENTER」を押す(コマンドを見やすくするため)。 最後のセミコロンの後に「SHIFT+ENTER」。 maximaでは2乗の表示方法は「**2」でも「^2」でも良い。 |
|
2 | 関数をグラフとして表示 |
plot2d(f(x),[x,0,100]);
|
関数f(x)の表示。xの範囲を指定すること。ここではxの範囲を0~100としている。 | |
3 |
グラフを文字列として出力 例:x=0~100まで、0.1刻みで出力し、 そのデータを D:\temp に作成。
ファイル名は半角英数。
|
x:0$
|
||
3 | 手順3の補足:初期値、終了値、刻み値は場合に応じて適切な数字を入力する。ただし、データ量が多すぎるとデータ処理に時間がかかるので注意。 | |||
4 |
D:\temp に「ファイル名.dat」ファイルが作成される。
|
|||
5 |
このコマンドによりtempフォルダに作成されたdatファイルは 「xの値」「意味のない文字列@」「yの値」「意味のない文字列A」「xの値」「意味のない文字列@」「yの値」「意味のない文字列A」・・・と並んでいる。 このときyの値がべき乗やマイナスの値をとるときは「意味のない文字列」の並びが複雑になっているので注意する csvファイルで保存できるようにするために 「意味のない文字列@」を選択し、Terapadの上バーの「検索」→「置換」を選択し、「置換後の文字列」を「,」にし「すべて置換」をクリック。 さらに 「意味のない文字列A」を選択し、「検索」→「置換」を選択し、「置換後の文字列」を「\n(改行)」にし「すべて置換」をクリック カンマ区切りでcsvファイルにできる形になったら「名前をつけて保存」でcsvファイルで保存する |
|||
6 | csvファイルをplot32で開き、グラフ化する。 |
Copyright (c)
Last Updated: |