WANtaroHP (f90: Curve Fitting by Simplex methox)

プログラム概要

  • このプログラムは,Simplex法により曲線回帰を行うためのものです.
  • その都度ソースコード上で回帰曲線を書き換える必要がありますが,このプログラムは非常に強力です. なぜなら,適切な初期値を与えれば回帰できない確率は低いからです.
  • 初期値に関し何をいれるかわからない場合は,全て1.0にセットしておいてもいいでしょう.
  • 加えて,回帰結果を速やかに確認できるよう,gnuplotによる作図ルーチンをプログラムに組み込んであります. このため,データ入力ファイルには作図のための情報を入力することが必要です.
  • この事例では,以下の関数が用いられています.
Sample (1)
!Lorentz type+linear curve (mpara=5)   input file: inp_simp_0.csv
Vfunc=param(2)*param(1)**2.0D0/((x-param(0))**2.0D0+param(1)**2.0D0)+param(3)+param(4)*x
Sample (2)
!Damped oscillation (mpara=4)   input file: inp_simp_1.csv
Vfunc=param(0)*exp(-param(1)*x)*sin(param(2)*x+param(3))

入力データ書式

 001 | Simplex_test_1
 002 | time_(sec),Displacement_(mm)
 003 | N,0,800,100,"%.0f"
 004 | N,-10,10,2,"%.0f"
 005 | 800
 006 | 0.000,2.543
 007 | 1.000,3.402
 008 | 2.000,2.978
..........
001
コメント
002
x軸ラベル, y軸ラベル
003
x軸のタイプ (N: normal, L: log), x軸最小値, x軸最大値, x軸目盛増分, x軸書式
004
y軸のタイプ (N: normal, L: log), y軸最小値, y軸最大値, y軸目盛増分, y軸書式
005
入力データの組数
006
(Lower rows are x and y-values of data)

実行用バッチコマンド

このプログラム 'f90_simplex' を実行するためには,(1) 入力データファイル名, (2) 出力データファイル名, (3) 出力画像ファイル名(gnuplot用), (4) Simplex法による回帰のための初期値をコマンドラインから入力する必要があります.

gfortran -o f90_simplex f90_simplex.f90
./f90_simplex inp_simp_0.txt out_simp_0.txt fig_simp_0.png 1 1 1 1 1


ソースコードと関連文書

FilenameDescription
a_0.txt実行用シェルスクリプト (1)
a_1.txt実行用シェルスクリプト (2)
f90_simplex.f90Simplex法曲線回帰
inp_simp_0.csv入力データサンプル (1)
inp_simp_1.csv入力データサンプル (2)

png png
fig_simp_0.pngfig_simp_1.png


inserted by FC2 system