Excel VBA 数学教室ではアフィリエイトプログラムを利用して商品を紹介しています。

【Excel】連立方程式の数値解

この記事ではExcel関数を使って、連立方程式の数値解を求める方法について解説します。

【Excel】連立方程式の数値解

準備として、連立方程式を行列で解く方法について、簡単に説明しておきます。次のような連立方程式を考えます。
 ax+by=pcx+dy=q
ここで行列 A とベクトル x,b
 A=(abcd),x=(xy), b=(pq)
とおくと、連立方程式は
 Ax=b
と表せます。両辺に逆行列を左からかけます。
 A1Ax=A1b
A1A=I (I は単位行列) なので、
 Ix=A1b
さらに、Ix=x なので、
 x=A1b
となります。逆行列を用いると、このように解ベクトル x を機械的に計算できますが、detA=adbc=0 のときは逆行列は存在せず、方程式も解をもたなかったり不定であったりします。

それでは、Excel を使って連立方程式の数値解を求めてみましょう。下図を参照にシートを作っていきます。
 
逆行列を用いた方程式の解法

セル B2, B3, D2, D3, G2, G1 には適当な値を入れておきます。セル B6, B7, C6, C7 には相対参照で方程式の x と y の係数を写し取るようにして配列を作ります(ユーザーが値を変えれば配列も変化します)。
 
次に逆行列を作ります。セル B6 から C7 の範囲を選択して

=minverse(B6:C7)

と入力して、[Ctrl] + [Shift] + [Enter] を押してください。次に行列積を計算します。セル I6 と I7 を選択して

=mmult(E6:F7,G2:G3)

と入力して、[Ctrl] + [Shift] + [Enter] で解を得ます。ご自身で係数の値を色々変えて、解がどう変化するかを確認してください。

エクセルや数学に関するコメントをお寄せください

  1. 匿名 より:

    参考になりました。

    =mmult(E6:E7,G2:G3)ではなく
    =mmult(E6:F7,G2:G3)ではないでしょうか?

    • Blog Cat より:

       御指摘の通りです。申し訳ありませんでした。
       明日までに記事を修正しておきます。