エクセルの使い方(非線形最小2乗フィッティング)

直線フィッティング(直線近似)については前ページで扱いました。
ここではそれ以外の関数 (例えば 2次関数 a + bx + cx2 )でのフィッティング法について扱います。

次のようなデータを考えます。

n / nT T / K
0 291.4
0.15 298.2
0.3 303.5
0.6 310.4
0.7 312.8
0.8 314.5
1 318.0

エクセルを使ってプロットします。

下記の例では、
B列にグラフの横軸、すなわち x の値 ( xi )
C列にグラフの縦軸、すなわち y の値 ( yi ) が
入っています。(x1 ~ x7, y1 ~ y7 の 7 点分)

元データ

プロットは完全に直線ではなく、すこし曲率を持っているように見えます。
そこで、直線近似 (a + bx) に x2 の項を加え、式 a + bx + cx2で近似することを考えます。 1) これはテイラー展開の考え方に沿っています。

 f(x) = f(0) + f^\prime(0) \cdot x + \frac{1}{2}f^{\prime\prime}(0) \cdot x^2+\frac{1}{6}f^{\prime\prime\prime}(0) \cdot x^3 + ...
 

エクセルシート上に、a, b, c の値を入力するセルを作り(下図緑部分)、
元データの隣の列に、a, b, c の値 と x の値 (xi) で計算される値を並べます。
(緑部分のセルと横軸の値(B列)を読み込んで、数値が表示されるように下図青部分を設定する)

下記 D列には、関数 f (x) =  a + bx + cx2 の、xi における値 f (xi) が表示されていることとなります。

3つのパラメータで数値を計算

新たに作った f (xi) の値 (D列)もグラフ上に表示します。(下図オレンジ)
緑色のセル内の値を調整して、だいたい青(元データ)とオレンジ(計算値)が合うようにします。

計算値もグラフに表示

定量的に、元データと計算値がどのくらい合っているかを評価する仕組みを導入します。通常、「残差2乗和」が使われます。

E列に、各点における 実験値(C列) と 計算値(D列) の差 (これを「残差」という) の2乗を表示します。

 \left\{ y_i - f(x_i) \right\}^2

 

残差の2乗

さらに、シート上に、その合計を表示します。(下記 赤で塗りつぶしたセルE14)

 \displaystyle \sum^i \left\{ y_i - f(x_i) \right\}^2

残差2乗和

このセルの値が、計算値がどのくらい実験値を再現しているかの指標になります。この値が小さければ小さいほど、良く再現しています。

以下作成中・・

脚注

1 これはテイラー展開の考え方に沿っています。

 f(x) = f(0) + f^\prime(0) \cdot x + \frac{1}{2}f^{\prime\prime}(0) \cdot x^2+\frac{1}{6}f^{\prime\prime\prime}(0) \cdot x^3 + ...