Excelのソルバーアドインを使って非線形方程式の解を求める方法について説明する
はじめに
日常生活の中で,下のような非線形方程式を解きたくなるときがあると思う
\begin{equation}
\frac{\sin{x}}{x}=a\qquad (a=0.5)
\end{equation}
解析的に解くことはできないし,手元にニュートンラプソン法のプログラムもない
さて困った,なんとかしてサクッと解を得られないものか...
そんなときに使えるのがExcelのソルバーアドインである
ソルバーアドインを読み込む
ソルバーアドインはデフォルトではExcelに入っていないので,読み込みを行う必要がある
Excelを開いて「ファイル>オプション」をクリックする

Excelのオプションが開くので「アドイン」の中から「ソルバーアドイン」を選択し,中央下の「設定(G)...」をクリックする

「ソルバーアドイン」にチェックを入れて「OK」をクリックする

すると「データ」の一番右に「ソルバー」が追加される

ソルバーアドインで非線形方程式を解く
それでは実際に,ソルバーアドインを使って下の非線形方程式の解を求めてみる
\begin{equation}
\frac{\sin{x}}{x}=a \qquad (a=0.5)
\end{equation}
上式の解は「\(|\frac{\sin{x}}{x}-a|=0\)になる\(x\)」として求めることができる
Excelを開き,以下のようなシートを作成する

A2 | 1(エラーが出ない任意の数値) |
B2 | =SIN(A2)/(A2) |
C2 | 0.5 |
D2 | =ABS(B2-C2) |
「データ>ソルバー」をクリックしてソルバーのパラメータを開き,次のように設定する

「目的セルの設定:(T)」では,解を求めたい方程式(今回は\(|\frac{\sin{x}}{x}-a|\))が入力されているセル(D2)を設定する
「目標値:」では,\(|\frac{\sin{x}}{x}-a|\)の絶対値が0になるような\(x\)を求めたいので「最小値(N)」を設定する
「指定値:(V)」で「0」にしてもいい
「変数セルの変更:(B)」では,方程式の変数が入力されているセル(A2)を設定する
以上の設定を終えたら,ウィンドウ右下の「解決(S)」をクリックする
すぐに解が求まり,ソルバーの結果が表示される


今回も止まった解は\(x=1.89549426502726\)だった
解が複数ある場合
解が複数ある場合などには「制約条件の対象:(U)」で制約条件を与えればいい

制約条件の追加によって,解の値の範囲などを指定できる

おわりに
Excelのソルバーアドインを使って非線形方程式の解を求める方法について説明した
この方法を覚えておけば,Excelの入ったPCさえあれば非線形方程式の解を求めることができるようになる
個人の権限でインストールできるソフトに制限があるような環境ではとても役に立つ手法だと思う
↓おすすめ記事
コメント