ゴールシーク
Excel には「入力した数式がある値に等しくなるような数値」を探すゴールシーク機能が備えられています。この機能を使うと難しい非線形方程式の数値解を簡単に求めることができます。
ゴールシークによる2次方程式の求解
最初に簡単な例として
=B4^2-1
と入力しておきます。
現段階ではセルB4 は空白なので、B4 には 0 の値が代入されて -1 という値が表示されています。次に [データ]をクリックします(下図)。
表示されるメニューから [What-If分析]、[ゴールシーク] の順に選択します(下図)。
[ゴールシーク] のダイアログボックスが現れるので、[数式入力セル] に B2、[目標値] に 0、[変化させるセル] に B4 を入力して [OK] を押します。
しばらく待つと、計算を終了して次のような画面が表示されます。
収束の目標値は 0 ですが、数値解法なので実際の収束値は僅かに誤差があります。セルB4 には方程式の解が表示されますが、収束値のずれに伴って、こちらも実際の解
得られたのは正の解ですが、下図のようにゴールシークを実行する前にセルB4 に予め負の値を入れておくと、
ゴールシークによる非線形方程式の求解
このような挙動から、内部では ニュートン・ラフソン法 のようなアルゴリズムを使っていることが推測できます。したがって、ゴールシークで方程式
を解いてみましょう。最初に
交点の数は 1 個なので、この方程式の解は 1 個であることがわかります。また、その解は
=COS(B4)+B4*LN(B4)
と入力しておきます。セルB4 が空白のままだと LN関数の引数に 0 が渡されてエラーになる(
先ほどと同様の手順(ただし [目標値] は 2 に設定しておきます)でゴールシークすると、下図のように
エクセルや数学に関するコメントをお寄せください
ゴールシークでは、Excelに知らせているのは、ゴールと変動値だけですので、ニュートン法は用いていないと思いますが、いかがでしょうか。
コメントありがとうございます。記事にあるように、ゴールシークのダイアログボックスに [数式入力セル] という項目があります。ここで関数を Excel に知らせているので、ニュートン・ラフソン法のアルゴリズムで計算可能です。もちろん、本当に用いているかどうかまではわかりませんが …