スプレッドシートで行列計算をしていると、「単位行列」が必要になる場面がありますよね。逆行列の計算結果を検証したいとき、手作業で対角線に1を並べるのは地味に手間がかかります。
MUNIT関数を使えば、指定した次元の単位行列をワンステップで作成できます。MMULT関数やMINVERSE関数と組み合わせることで、行列演算の検証にも活躍しますよ。
この記事では、スプレッドシートのMUNIT関数の基本から実践的な活用例まで解説します。
スプレッドシートのMUNIT関数とは?
MUNIT関数は、指定した次元の単位行列(identity matrix)を返す関数です。
読み方は「マトリックス ユニット」です。「Matrix」は行列、「Unit」は単位を意味します。
単位行列とは、対角線上の要素がすべて1で、それ以外の要素がすべて0の正方行列のことです。たとえば3×3の単位行列は次のような形になります。
1 0 0
0 1 0
0 0 1
数学では「I」や「E」と表記されることが多いです。掛け算における「1」のような存在で、どんな行列に単位行列をかけても元の行列がそのまま返ってきます。
MUNIT関数の書き方
基本構文
=MUNIT(次元)
引数の説明
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| 次元 | 必須 | 単位行列のサイズ(正の整数)。3を指定すると3×3の単位行列を返す |
引数は1つだけなので、覚えやすいですね。
MUNIT関数は結果を配列(N×N行列)として返します。Googleスプレッドシートでは、出力先のセル範囲に自動的に展開されますよ。
MUNIT関数の基本的な使い方
2×2の単位行列を作成する
まずは最もシンプルな2×2の単位行列を作ってみましょう。
任意のセル(例: A1)に次の数式を入力します。
=MUNIT(2)
A1:B2に以下の単位行列が表示されます。
| A | B | |
|---|---|---|
| 1 | 1 | 0 |
| 2 | 0 | 1 |
対角線上(左上から右下)が1で、それ以外が0になっていますね。
3×3の単位行列を作成する
次に3×3の単位行列を作成してみましょう。
=MUNIT(3)
結果は以下のとおりです。
| A | B | C | |
|---|---|---|---|
| 1 | 1 | 0 | 0 |
| 2 | 0 | 1 | 0 |
| 3 | 0 | 0 | 1 |
引数を変えるだけで、好きなサイズの単位行列を作成できます。4×4や5×5の単位行列も同様に =MUNIT(4) や =MUNIT(5) で生成できますよ。
実践的な使い方・応用例
MMULT関数で単位行列の性質を検証する
単位行列には「どんな行列にかけても元の行列が変わらない」という性質があります。数式で書くと A × I = A です。
この性質をMMULT関数で確認してみましょう。
セルA1:B2に以下の行列Aが入っているとします。
| A | B | |
|---|---|---|
| 1 | 3 | 5 |
| 2 | 2 | 7 |
セルD1に2×2の単位行列を生成します。
=MUNIT(2)
| D | E | |
|---|---|---|
| 1 | 1 | 0 |
| 2 | 0 | 1 |
次に、行列Aと単位行列の積をMMULT関数で計算します。
=MMULT(A1:B2, D1:E2)
結果は以下のとおりです。
| G | H | |
|---|---|---|
| 1 | 3 | 5 |
| 2 | 2 | 7 |
元の行列Aとまったく同じ結果になりました。単位行列をかけても行列が変わらないことが確認できましたね。
MINVERSE関数の結果をMUNIT関数で確認する
MINVERSE関数で求めた逆行列が正しいかどうかを検証できます。元の行列と逆行列の積は、必ず単位行列になるという性質を使います。
数式で書くと A × A⁻¹ = I(単位行列)です。
セルA1:B2に以下の行列Aが入っているとします。
| A | B | |
|---|---|---|
| 1 | 4 | 7 |
| 2 | 2 | 6 |
まず、MINVERSE関数で逆行列を求めます。
=MINVERSE(A1:B2)
| D | E | |
|---|---|---|
| 1 | 0.6 | -0.7 |
| 2 | -0.2 | 0.4 |
次に、元の行列と逆行列の積をMMULT関数で計算します。
=MMULT(A1:B2, D1:E2)
| G | H | |
|---|---|---|
| 1 | 1 | 0 |
| 2 | 0 | 1 |
結果が単位行列になりました。MUNIT(2)の結果と比較すれば、逆行列の計算が正しいことを確認できます。
TIP
浮動小数点の誤差で、0のはずのセルに極小の数値(例: 2.22E-16)が表示されることがあります。ROUND関数で丸めると見やすくなりますよ。
よくあるエラーと対処法
#VALUE! エラー
#VALUE! エラーは、引数に正の整数以外を指定した場合に発生します。
=MUNIT(0) → #VALUE!(0は不可)
=MUNIT(-1) → #VALUE!(負の数は不可)
=MUNIT(2.5) → #VALUE!(小数は不可)
=MUNIT("A") → #VALUE!(文字列は不可)
引数には1以上の整数を指定してください。
| エラー | 主な原因 | 対処法 |
|---|---|---|
#VALUE! | 引数が0または負の数 | 1以上の正の整数を指定する |
#VALUE! | 引数が小数 | 整数に変更する |
#VALUE! | 引数が文字列 | 数値を指定する |
関連する行列関数との使い分け
スプレッドシートには、MUNIT関数以外にも行列計算に使える関数があります。
| 関数 | 機能 | 用途 |
|---|---|---|
| MUNIT | 単位行列を返す | 行列演算の検証、初期値の設定 |
| MMULT | 行列の積を返す | 座標変換、重み付き合計の一括計算 |
| MINVERSE | 逆行列を返す | 連立方程式を解く、変換行列の逆変換 |
| MDETERM | 行列式を返す | 逆行列の存在判定、連立方程式の解の判定 |
MUNIT関数は、他の行列関数と組み合わせて使うことが多いです。MINVERSE関数で求めた逆行列の検証や、MMULT関数の計算結果の確認に活用してみてください。
まとめ
MUNIT関数は、指定した次元の単位行列を作成する関数です。
- 構文は
=MUNIT(次元)で、引数は正の整数を1つだけ - 結果はN×N行列として自動展開される
- 単位行列の性質: どんな行列にかけても元の行列が変わらない(
A × I = A) - MINVERSE関数の検証:
A × A⁻¹が単位行列になるか確認できる - 引数に0・負の数・小数を指定すると
#VALUE!エラーになる
行列計算の検証用として、MMULT関数やMINVERSE関数と一緒に覚えておくと便利ですよ。
