関数に含まれる定数はどうやって求めるでしょうか。

普通ならxやyの変数に当てはまる数値が与えられ、定数の数だけ方程式をたてて解くことで求めると思います。

しかしexcelならそれを自動でやってくれます。

方程式を自分で解かなくてよいのです。

 今回はExcelのその機能について説明していきます。

ソルバーとは

その機能とはソルバーです。

このソルバーの機能を使うことで定数を求めることができます。

ソルバーの導入

このソルバーという機能は標準では非表示になっています。

そのため以下の手順で表示する必要があります。

ファイル>オプション>アドイン>設定

の順にクリックし、ソルバーアドインにチェックを入れてOKを押します。

するとデータのタブにソルバーが表示されるようになります。


係数を求めよう

例えばy=Asin(Bx)exp(-Cx)という関数があるとします。

この関数に含まれる定数A,B,Cを求めたいです。

与えられているのはxとyに当てはまる数値の組み合わせです。

こんなときどうすればA,B,Cを求められるでしょうか。


最小二乗法

これを求めるには最小二乗法という方法を使います。

最小二乗法とは、誤差の二乗が小さくなるような数値を求める方法です。

ソルバーを使えば計算を自動でやってくれます。


例えば今回の関数では、与えられたxとyの数値をプロットしてその近似曲線を求めようとしても、三角関数と指数関数の積の近似はできないために求められません。

そのためソルバーが役立ってきます。

準備


まず左2列にxとyの組み合わせが与えられているとします。
係数はA,B,Cの3つあるので対応するセル3つ分を用意します。
そしてA,B,Cのセルを用いて関数を再現したセル(式の列)をyと同じ数だけ用意します。
その式とyの差の二乗を入れるセル(二乗差の列)を用意します。
その二乗差すべての合計を入れるセル(誤差の和)を用意して準備は万端です。

ソルバーの使い方


ソルバーでは三か所を設定する必要があります。
・目的セルの設定
ここで誤差の和のセルを選択します。
・変数セルの変更

A,B,Cの係数のセルを選択します。

・制約のない変数を非負数にする

これはA,B,Cの係数が正になるように計算するものですが、負になる可能性もあるのでチェックを外しておきましょう。

そして解決を押したら完了です。

準備の図に書いてありますが、(A,B,C)=(3,4,5)と求めることができました。


注意として、A,B,Cの初期値はなるべく答えに近くないと正しい答えが出ない場合があります。

しかしその答えを求めるためにソルバーを使うので難しいですよね。

グラフなどを描いてみて、なんとなく予想しておくといいかもしれません。

また準備の図のグラフに近似曲線が表示されていますが、5次多項式にすると同じようなグラフができました。

しかしこれはxの範囲を広げるともっと多くの次数で近似する必要になってしまいます。

そもそも5次多項式じゃないですもんね。。

あと式でA,B,Cのセルを使うとき、F4を押してセル固定化するのを忘れないようにしてください。

また式に-x^2が含まれるとき、excelでは(-x)^2となってしまうので、-(x^2)のように二乗ごと括弧で囲む必要があります


まとめ

関数の係数をExcelで求める方法についてまとめました。

実際はExcelでこんな計算をすることは少ないとは思いますが、使えると何かの時に役に立つかもしれないので覚えておいて損はないかもしれませんね。