「手計算しにくい方程式・・・」の話から一度離れよう。
計測データから何か有用なものを得たい時、またはそのデータを二次利用したい時に、数式の形が好ましい場合がある(以下参照)。
・測定値の間に存在するであろう値を予測したい。
・理論や原理と評価したいので事前に数式化しておきたい。
・シミュレート計算するので、カーブを数式にしたい。
このような場合に活用するのが統計処理である。その中でも回帰分析という範疇に最小二乗法というカーブフィット手法がある。自然界の物理現象は直線や二次曲線で近似出来る場合は少ない。多くは対数やベキ関数の組み合わせなどの非線形になる。線形の数式であればプログラム電卓やExcel、Pythonなどでプログラミング容易である。しかし非線形数式へのカーブフィットプログラミングはおいそれとは行かない。プログラミングがメインワークである人は限られるのだから、出来るだけツールを見つけてそれを有効利用する方が賢い選択だ。世の中にはこの非線形最小二乗法(Levensberg-Marquardt法が有名)をやってのけるツールが複数存在する。
「Excelでもカーブフィットできる」という声が聞こえてくるが、「線形なら」という条件付きと考えてよい。統計的な特殊関数まで考えたい場合は非線形最小二乗が可能なデータ解析ツールを利用したほうが絶対に楽だ。今まで遭遇したもので、推薦は以下のものだ(WinはWindows版)。
・DeltaGraph Pro
・KaleidaGraph
・IGOR Pro
・Sigmaplot (Win)
・Origin Pro (Win)
・TableCurve 2D (Win)
・R(オープン)
・SciDAVis(オープン)
カーブフィットに用いられる数式
個人的な知識範囲内での意見であるが、どの数式を使うか学問的に纏まられた成書は殆ど無く、ルールが確立しているとは言い難い。実験の基礎原理をよく理解して、計測データグラフと似た数式を調べて採用するしかない。そのため、上に挙げたデータ解析ツールには推奨の数式パターンが複数内蔵されていて、そこから選択できるようになっている。それを見ながらカーブフィッティングし、試行錯誤して最適と思われる数式に辿りつく。それでも内蔵の数式では、上手く測定データをカーブフィッティングできていないと思われる場合に備えて、ユーザーが数式を指定できるオプションが付属している。
サーフェスフィット
カーブフィットが、計測データの二次元曲線へのフィットなら、サーフェスフィットは計測データの三次元曲面へのフィッティングだ。化学プラント機器が発生する流体騒音を予測する為に一度だけ、私もTableCurve 3Dというツールを使ったことがある。「驚くべきソフトウェアだ」ということだけ言っておこう(しこしこコーディングしているのがアホらしい)。カーブフィットに飽き足らず、サーフェスフィットにもトライしたい方はデモ版をダウンロードしてみて。
・TableCurve 3D(Win)
・SciDAVis(オープン)
この分野での参考書は