汎用逆行列プログラムは、多変量解析では欠かすことの出来ない行列と行列の乗算する場合に使用します。
正則行列ではない(行数と列数が違っている)行列の逆行列を求めることができるように「104 正則逆行列プログラム」を拡張したものです。
正則行列でない場合は、ムーアペンローズ逆行列が得られます。
アドイン接続を終え、メニューの「汎用逆行列」をクリックすると、次のように設定画面が表示されます。
データ行列範囲
逆行列を求める行列を、範囲選択します。
なおデータ行列は、データ番号列やデータラベル(行)を含まずに範囲選択します。なお処理可能な行列の範囲は、200行×200列以内です。
ムーアペンローズ逆行列出力
ムーアペンローズ逆行列を出力させる場合、チェックを入れます。
中間出力
固有値・固有ベクトルなど中間出力を表示させる場合、チェックを入れます。
出力先
出力を開始したいセル1か所をクリックして選択します。
設定が済んだら、「開始」ボタンをクリックします。
ここで設定画面を閉じるには、「中止」ボタンをクリックします。
なおデータの範囲選択において、データラベルの有無に誤りがあるなどの場合は、次のようなエラーメッセージが表示されることがあります。
「OK」ボタンをクリックして、もう一度やり直します。
逆行列の計算は、まず、固有値と固有ベクトルを求めて、正則性を検査します。
次に、掃出し法によって、正則の逆行列を求めます。
そして、転置行列を使用してムーアベンローズの逆行列を計算します。
次のような連立方程式で考えてみましょう。
(1) 5 * x1 + 6 * x2 + x3 = 3
(2) 2 * x1 + 4 * x2 + 3 * x3 = 6
(3) x1 + 3 * x2 + 2 * x3 = 5
(4) 3 * x1 + 3 * x2 + 6 * x3 = 4
(1)と(2)から(5)式を作ります。
(5) 7 * x1 + 10 * x2 + 4 * x3 = 9
(3)、(4)と(5)から解くと、
x1 = -1.667
x2 = 1.8333
x3 = 0.5833
が得られます。
また(3)と(4)から、(6)式を作り
(6) 4 * x1 + 6 * x2 + 8 * x3 = 9
となり、(1)、(2)と(6)から解くと、
x1 = -2
x2 = 2.0714
x3 = 0.5714
が得られるのですが、これでは結果が不安定であることがわかります。
そこで、逆行列によって、誤差が少ない解を求めてみます。
上の連立方程式の係数行列は、次のように表すことができます。
上の係数行列のうちx1・x2・x3の逆行列として、ムーアベンローズ逆行列を求めます。
上のムーアペンローズ逆行列と定数行列との乗算を行います(102 行列乗算プログラムでも計算が可能です)。
その結果、検証すると、誤差の少ない解であることがわかります(102 行列乗算プログラムでも計算が可能です)。
以下に、色々なケースでの逆行列計算の結果を示します。
動作環境 |
日本語版Windows用 日本語版Microsoft Excel2003以降(推奨)が快適に動作するパソコン。 |
アドイン接続方法・ ソフトウェア使用許諾 |
※Excel2016・2019も右側の「Excel2007・2010・2013用」をお選びください |
マクロが実行できないときにご確認ください |
https://faq.mypage.otsuka-shokai.co.jp/app/answers/detail/a_id/314030
当商品のような、インターネットからダウンロードしたExcelのファイルについて、マクロが実行できない仕様になっているようです。 マクロを有効化する方法が記されています。お試しください。 |
※カスタマイズは対応不可となりました(2019年1月)