しいたげられた🍄しいたけ

#あらゆる戦争に反対します

Excelのスピル機能と行列演算の相性がいいことに遅まきながら気づいたのでメモ(後編:逆行列)

前編は、こちら。

watto.hatenablog.com

 

逆行列の計算 (スピル)

Excelで逆行列を計算するには、=minverse()関数を使用する。

前回のcsvファイルのセルD18に「=minverse(」と入力し、A18:B19を範囲選択する。

 

[Enter]キーを押すと、D18:E19に逆行列が計算される。

 

前編に書いたことの繰り返しだが、スピル機能において直接数式を入力したセル以外の範囲に設定された数式は「ゴースト」と呼ばれ、通常の数式と異なり編集できない。また削除するときは、数式を入力したセルを削除するか、スピルにより数式が設定されたセルを範囲選択して一括削除する必要がある。

数式をコピー&ペーストするときは、数式を入力したセルをコピーすればスピル範囲が一括してペーストされるが、「値の貼り付け」は、コピー元の範囲指定が必要だった。

 

D18:E19をコピーして、A22:B23に「値の貼り付け」を、D22:E23に通常の貼り付けを行うと、A22:B23にA18:B19の逆行列が、D22:E23にA18:B19の逆行列の逆行列が貼り付けられる。

逆行列の逆行列は、元の行列になることの確認でもある。

 

G18とG22に、行列の積を計算する数式が設定されているセルをコピー&ペーストすると (例えば、G列のどれでもいいがG14をコピペすると)、G18:H19とG22:H23に計算結果として単位行列が表示される。

行列と逆行列の積は交換可能で、結果はいずれも単位行列になることの確認でもある。

逆行列の計算 (CSV)

やはり同じことをを、配列書式 (CSV書式) でもやってみる。スピルはExcel2019以前のバージョンでは使えないが、CSV書式はExcel2021以降でも使用可能である。これも前編の繰り返し。

初めに、計算結果が出力されるG18:H19を範囲指定しておく必要がある。ここがスピルとの1つ目の違いである。

次に「=minverse(」と入力し、A18:B19を範囲選択する。

 

次に[Ctrl]キーと[Shift]キーを押しながら[Enter]キーを押すと、D18:E19に逆行列が計算される。これが[Enter]キーを押すだけのスピルとの、2つ目の違いである。

数式バーには、数式が{}〔中カッコ〕で囲まれて表示される。

 

CSVで設定した個々のセルは編集できない。またコピペや移動、削除は選択した範囲の一括のみ可能である。

D18:E19を範囲選択し、A22:B23に値貼り付けを、D22:E23に通常の貼り付けを行うと、前者にA18:B19の逆行列が、後者に逆行列の逆行列すなわちA18:B19と同じ行列が表示される。

 

さらに、行列の積を計算している範囲ならどこでもいいが、例えばG14:H15をコピーしてG18:H19とG22:H23に貼りつけると、G18:H19とG22:H23に単位行列が計算される。行列と逆行列の積は交換可能で、結果はいずれも単位行列になる。

 

これも前編の繰り返しだが、csvファイルを上書き保存すると数式は値に変換され保存されないので、数式を保存したい場合はExcel形式 (拡張子.xlsx) に変換する必要がある。