複素数行列の行列式と余因子行列と逆行列を求める数式の作り方 その2
エクセル、グーグルドライブ、リブレオフィスにて行列式と余因子行列と逆行列をmdeterm関数やminverse関数に頼らずに組み立ててみる。(この頁でやりたい事が書いてないと分かりにくいと思ったので前頁から持ってきた。 r070517追記)
前の配列・ベクトル・行列(10)の余談8にて「4.尾固定小行列循環シフト型(仮)」の順列に基づいた行列式の作り方を模索してみた。それよりも因数分解表示はそれほど悪くはないと思っていたが、展開した形がこれほどまでにシンプルで最適だとは予想外だった。ネストが全然増えないのが素晴らしい。四則演算に演算子がほぼ使えない状況だから演算をまとめた方が綺麗なのかも。
まずは展開した行列式 (複素数版を修正して実数版も作ってみた。実数版は1行の文字数増加率が高いので1行にしたかったものが1行半になってしまったり。 r070506)(改行を複素数の数式に近い形に修正した。 r070517)
2x2 元行列= AD16:AE17
実 AC23= =AD16*AE17-AD17*AE16
複 AC23= =IMSUM(IMPRODUCT(+1,AD16,AE17),IMPRODUCT(-1,AD17,AE16))
3x3 元行列= AD16:AF18
実 AC25=
=AD16*AE17*AF18-AD17*AE16*AF18
+AD18*AE16*AF17-AD16*AE18*AF17
+AD17*AE18*AF16-AD18*AE17*AF16
複 AC25= =IMSUM(
IMPRODUCT(+1,AD16,AE17,AF18),IMPRODUCT(-1,AD17,AE16,AF18),
IMPRODUCT(+1,AD18,AE16,AF17),IMPRODUCT(-1,AD16,AE18,AF17),
IMPRODUCT(+1,AD17,AE18,AF16),IMPRODUCT(-1,AD18,AE17,AF16))
4x4 元行列= AD16:AG19
実 AC27=
=AD16*AE17*AF18*AG19-AD17*AE16*AF18*AG19
+AD18*AE16*AF17*AG19-AD16*AE18*AF17*AG19
+AD17*AE18*AF16*AG19-AD18*AE17*AF16*AG19
-AD19*AE16*AF17*AG18+AD16*AE19*AF17*AG18
-AD17*AE19*AF16*AG18+AD19*AE17*AF16*AG18
-AD16*AE17*AF19*AG18+AD17*AE16*AF19*AG18
+AD18*AE19*AF16*AG17-AD19*AE18*AF16*AG17
+AD16*AE18*AF19*AG17-AD18*AE16*AF19*AG17
+AD19*AE16*AF18*AG17-AD16*AE19*AF18*AG17
-AD17*AE18*AF19*AG16+AD18*AE17*AF19*AG16
-AD19*AE17*AF18*AG16+AD17*AE19*AF18*AG16
-AD18*AE19*AF17*AG16+AD19*AE18*AF17*AG16
複 AC27= =IMSUM(
IMPRODUCT(+1,AD16,AE17,AF18,AG19),IMPRODUCT(-1,AD17,AE16,AF18,AG19),
IMPRODUCT(+1,AD18,AE16,AF17,AG19),IMPRODUCT(-1,AD16,AE18,AF17,AG19),
IMPRODUCT(+1,AD17,AE18,AF16,AG19),IMPRODUCT(-1,AD18,AE17,AF16,AG19),
IMPRODUCT(-1,AD19,AE16,AF17,AG18),IMPRODUCT(+1,AD16,AE19,AF17,AG18),
IMPRODUCT(-1,AD17,AE19,AF16,AG18),IMPRODUCT(+1,AD19,AE17,AF16,AG18),
IMPRODUCT(-1,AD16,AE17,AF19,AG18),IMPRODUCT(+1,AD17,AE16,AF19,AG18),
IMPRODUCT(+1,AD18,AE19,AF16,AG17),IMPRODUCT(-1,AD19,AE18,AF16,AG17),
IMPRODUCT(+1,AD16,AE18,AF19,AG17),IMPRODUCT(-1,AD18,AE16,AF19,AG17),
IMPRODUCT(+1,AD19,AE16,AF18,AG17),IMPRODUCT(-1,AD16,AE19,AF18,AG17),
IMPRODUCT(-1,AD17,AE18,AF19,AG16),IMPRODUCT(+1,AD18,AE17,AF19,AG16),
IMPRODUCT(-1,AD19,AE17,AF18,AG16),IMPRODUCT(+1,AD17,AE19,AF18,AG16),
IMPRODUCT(-1,AD18,AE19,AF17,AG16),IMPRODUCT(+1,AD19,AE18,AF17,AG16))
5x5 元行列= AD16:AH20
実 AC29=
=AD16*AE17*AF18*AG19*AH20-AD17*AE16*AF18*AG19*AH20
+AD18*AE16*AF17*AG19*AH20-AD16*AE18*AF17*AG19*AH20
+AD17*AE18*AF16*AG19*AH20-AD18*AE17*AF16*AG19*AH20
-AD19*AE16*AF17*AG18*AH20+AD16*AE19*AF17*AG18*AH20
-AD17*AE19*AF16*AG18*AH20+AD19*AE17*AF16*AG18*AH20
-AD16*AE17*AF19*AG18*AH20+AD17*AE16*AF19*AG18*AH20
+AD18*AE19*AF16*AG17*AH20-AD19*AE18*AF16*AG17*AH20
+AD16*AE18*AF19*AG17*AH20-AD18*AE16*AF19*AG17*AH20
+AD19*AE16*AF18*AG17*AH20-AD16*AE19*AF18*AG17*AH20
-AD17*AE18*AF19*AG16*AH20+AD18*AE17*AF19*AG16*AH20
-AD19*AE17*AF18*AG16*AH20+AD17*AE19*AF18*AG16*AH20
-AD18*AE19*AF17*AG16*AH20+AD19*AE18*AF17*AG16*AH20
+AD20*AE16*AF17*AG18*AH19-AD16*AE20*AF17*AG18*AH19
+AD17*AE20*AF16*AG18*AH19-AD20*AE17*AF16*AG18*AH19
+AD16*AE17*AF20*AG18*AH19-AD17*AE16*AF20*AG18*AH19
-AD18*AE20*AF16*AG17*AH19+AD20*AE18*AF16*AG17*AH19
-AD16*AE18*AF20*AG17*AH19+AD18*AE16*AF20*AG17*AH19
-AD20*AE16*AF18*AG17*AH19+AD16*AE20*AF18*AG17*AH19
+AD17*AE18*AF20*AG16*AH19-AD18*AE17*AF20*AG16*AH19
+AD20*AE17*AF18*AG16*AH19-AD17*AE20*AF18*AG16*AH19
+AD18*AE20*AF17*AG16*AH19-AD20*AE18*AF17*AG16*AH19
-AD16*AE17*AF18*AG20*AH19+AD17*AE16*AF18*AG20*AH19
-AD18*AE16*AF17*AG20*AH19+AD16*AE18*AF17*AG20*AH19
-AD17*AE18*AF16*AG20*AH19+AD18*AE17*AF16*AG20*AH19
+AD19*AE20*AF16*AG17*AH18-AD20*AE19*AF16*AG17*AH18
+AD16*AE19*AF20*AG17*AH18-AD19*AE16*AF20*AG17*AH18
+AD20*AE16*AF19*AG17*AH18-AD16*AE20*AF19*AG17*AH18
-AD17*AE19*AF20*AG16*AH18+AD19*AE17*AF20*AG16*AH18
-AD20*AE17*AF19*AG16*AH18+AD17*AE20*AF19*AG16*AH18
-AD19*AE20*AF17*AG16*AH18+AD20*AE19*AF17*AG16*AH18
+AD16*AE17*AF19*AG20*AH18-AD17*AE16*AF19*AG20*AH18
+AD19*AE16*AF17*AG20*AH18-AD16*AE19*AF17*AG20*AH18
+AD17*AE19*AF16*AG20*AH18-AD19*AE17*AF16*AG20*AH18
-AD20*AE16*AF17*AG19*AH18+AD16*AE20*AF17*AG19*AH18
-AD17*AE20*AF16*AG19*AH18+AD20*AE17*AF16*AG19*AH18
-AD16*AE17*AF20*AG19*AH18+AD17*AE16*AF20*AG19*AH18
+AD18*AE19*AF20*AG16*AH17-AD19*AE18*AF20*AG16*AH17
+AD20*AE18*AF19*AG16*AH17-AD18*AE20*AF19*AG16*AH17
+AD19*AE20*AF18*AG16*AH17-AD20*AE19*AF18*AG16*AH17
-AD16*AE18*AF19*AG20*AH17+AD18*AE16*AF19*AG20*AH17
-AD19*AE16*AF18*AG20*AH17+AD16*AE19*AF18*AG20*AH17
-AD18*AE19*AF16*AG20*AH17+AD19*AE18*AF16*AG20*AH17
+AD20*AE16*AF18*AG19*AH17-AD16*AE20*AF18*AG19*AH17
+AD18*AE20*AF16*AG19*AH17-AD20*AE18*AF16*AG19*AH17
+AD16*AE18*AF20*AG19*AH17-AD18*AE16*AF20*AG19*AH17
-AD19*AE20*AF16*AG18*AH17+AD20*AE19*AF16*AG18*AH17
-AD16*AE19*AF20*AG18*AH17+AD19*AE16*AF20*AG18*AH17
-AD20*AE16*AF19*AG18*AH17+AD16*AE20*AF19*AG18*AH17
+AD17*AE18*AF19*AG20*AH16-AD18*AE17*AF19*AG20*AH16
+AD19*AE17*AF18*AG20*AH16-AD17*AE19*AF18*AG20*AH16
+AD18*AE19*AF17*AG20*AH16-AD19*AE18*AF17*AG20*AH16
-AD20*AE17*AF18*AG19*AH16+AD17*AE20*AF18*AG19*AH16
-AD18*AE20*AF17*AG19*AH16+AD20*AE18*AF17*AG19*AH16
-AD17*AE18*AF20*AG19*AH16+AD18*AE17*AF20*AG19*AH16
+AD19*AE20*AF17*AG18*AH16-AD20*AE19*AF17*AG18*AH16
+AD17*AE19*AF20*AG18*AH16-AD19*AE17*AF20*AG18*AH16
+AD20*AE17*AF19*AG18*AH16-AD17*AE20*AF19*AG18*AH16
-AD18*AE19*AF20*AG17*AH16+AD19*AE18*AF20*AG17*AH16
-AD20*AE18*AF19*AG17*AH16+AD18*AE20*AF19*AG17*AH16
-AD19*AE20*AF18*AG17*AH16+AD20*AE19*AF18*AG17*AH16
複 AC29= =IMSUM(
IMPRODUCT(+1,AD16,AE17,AF18,AG19,AH20),IMPRODUCT(-1,AD17,AE16,AF18,AG19,AH20),
IMPRODUCT(+1,AD18,AE16,AF17,AG19,AH20),IMPRODUCT(-1,AD16,AE18,AF17,AG19,AH20),
IMPRODUCT(+1,AD17,AE18,AF16,AG19,AH20),IMPRODUCT(-1,AD18,AE17,AF16,AG19,AH20),
IMPRODUCT(-1,AD19,AE16,AF17,AG18,AH20),IMPRODUCT(+1,AD16,AE19,AF17,AG18,AH20),
IMPRODUCT(-1,AD17,AE19,AF16,AG18,AH20),IMPRODUCT(+1,AD19,AE17,AF16,AG18,AH20),
IMPRODUCT(-1,AD16,AE17,AF19,AG18,AH20),IMPRODUCT(+1,AD17,AE16,AF19,AG18,AH20),
IMPRODUCT(+1,AD18,AE19,AF16,AG17,AH20),IMPRODUCT(-1,AD19,AE18,AF16,AG17,AH20),
IMPRODUCT(+1,AD16,AE18,AF19,AG17,AH20),IMPRODUCT(-1,AD18,AE16,AF19,AG17,AH20),
IMPRODUCT(+1,AD19,AE16,AF18,AG17,AH20),IMPRODUCT(-1,AD16,AE19,AF18,AG17,AH20),
IMPRODUCT(-1,AD17,AE18,AF19,AG16,AH20),IMPRODUCT(+1,AD18,AE17,AF19,AG16,AH20),
IMPRODUCT(-1,AD19,AE17,AF18,AG16,AH20),IMPRODUCT(+1,AD17,AE19,AF18,AG16,AH20),
IMPRODUCT(-1,AD18,AE19,AF17,AG16,AH20),IMPRODUCT(+1,AD19,AE18,AF17,AG16,AH20),
IMPRODUCT(+1,AD20,AE16,AF17,AG18,AH19),IMPRODUCT(-1,AD16,AE20,AF17,AG18,AH19),
IMPRODUCT(+1,AD17,AE20,AF16,AG18,AH19),IMPRODUCT(-1,AD20,AE17,AF16,AG18,AH19),
IMPRODUCT(+1,AD16,AE17,AF20,AG18,AH19),IMPRODUCT(-1,AD17,AE16,AF20,AG18,AH19),
IMPRODUCT(-1,AD18,AE20,AF16,AG17,AH19),IMPRODUCT(+1,AD20,AE18,AF16,AG17,AH19),
IMPRODUCT(-1,AD16,AE18,AF20,AG17,AH19),IMPRODUCT(+1,AD18,AE16,AF20,AG17,AH19),
IMPRODUCT(-1,AD20,AE16,AF18,AG17,AH19),IMPRODUCT(+1,AD16,AE20,AF18,AG17,AH19),
IMPRODUCT(+1,AD17,AE18,AF20,AG16,AH19),IMPRODUCT(-1,AD18,AE17,AF20,AG16,AH19),
IMPRODUCT(+1,AD20,AE17,AF18,AG16,AH19),IMPRODUCT(-1,AD17,AE20,AF18,AG16,AH19),
IMPRODUCT(+1,AD18,AE20,AF17,AG16,AH19),IMPRODUCT(-1,AD20,AE18,AF17,AG16,AH19),
IMPRODUCT(-1,AD16,AE17,AF18,AG20,AH19),IMPRODUCT(+1,AD17,AE16,AF18,AG20,AH19),
IMPRODUCT(-1,AD18,AE16,AF17,AG20,AH19),IMPRODUCT(+1,AD16,AE18,AF17,AG20,AH19),
IMPRODUCT(-1,AD17,AE18,AF16,AG20,AH19),IMPRODUCT(+1,AD18,AE17,AF16,AG20,AH19),
IMPRODUCT(+1,AD19,AE20,AF16,AG17,AH18),IMPRODUCT(-1,AD20,AE19,AF16,AG17,AH18),
IMPRODUCT(+1,AD16,AE19,AF20,AG17,AH18),IMPRODUCT(-1,AD19,AE16,AF20,AG17,AH18),
IMPRODUCT(+1,AD20,AE16,AF19,AG17,AH18),IMPRODUCT(-1,AD16,AE20,AF19,AG17,AH18),
IMPRODUCT(-1,AD17,AE19,AF20,AG16,AH18),IMPRODUCT(+1,AD19,AE17,AF20,AG16,AH18),
IMPRODUCT(-1,AD20,AE17,AF19,AG16,AH18),IMPRODUCT(+1,AD17,AE20,AF19,AG16,AH18),
IMPRODUCT(-1,AD19,AE20,AF17,AG16,AH18),IMPRODUCT(+1,AD20,AE19,AF17,AG16,AH18),
IMPRODUCT(+1,AD16,AE17,AF19,AG20,AH18),IMPRODUCT(-1,AD17,AE16,AF19,AG20,AH18),
IMPRODUCT(+1,AD19,AE16,AF17,AG20,AH18),IMPRODUCT(-1,AD16,AE19,AF17,AG20,AH18),
IMPRODUCT(+1,AD17,AE19,AF16,AG20,AH18),IMPRODUCT(-1,AD19,AE17,AF16,AG20,AH18),
IMPRODUCT(-1,AD20,AE16,AF17,AG19,AH18),IMPRODUCT(+1,AD16,AE20,AF17,AG19,AH18),
IMPRODUCT(-1,AD17,AE20,AF16,AG19,AH18),IMPRODUCT(+1,AD20,AE17,AF16,AG19,AH18),
IMPRODUCT(-1,AD16,AE17,AF20,AG19,AH18),IMPRODUCT(+1,AD17,AE16,AF20,AG19,AH18),
IMPRODUCT(+1,AD18,AE19,AF20,AG16,AH17),IMPRODUCT(-1,AD19,AE18,AF20,AG16,AH17),
IMPRODUCT(+1,AD20,AE18,AF19,AG16,AH17),IMPRODUCT(-1,AD18,AE20,AF19,AG16,AH17),
IMPRODUCT(+1,AD19,AE20,AF18,AG16,AH17),IMPRODUCT(-1,AD20,AE19,AF18,AG16,AH17),
IMPRODUCT(-1,AD16,AE18,AF19,AG20,AH17),IMPRODUCT(+1,AD18,AE16,AF19,AG20,AH17),
IMPRODUCT(-1,AD19,AE16,AF18,AG20,AH17),IMPRODUCT(+1,AD16,AE19,AF18,AG20,AH17),
IMPRODUCT(-1,AD18,AE19,AF16,AG20,AH17),IMPRODUCT(+1,AD19,AE18,AF16,AG20,AH17),
IMPRODUCT(+1,AD20,AE16,AF18,AG19,AH17),IMPRODUCT(-1,AD16,AE20,AF18,AG19,AH17),
IMPRODUCT(+1,AD18,AE20,AF16,AG19,AH17),IMPRODUCT(-1,AD20,AE18,AF16,AG19,AH17),
IMPRODUCT(+1,AD16,AE18,AF20,AG19,AH17),IMPRODUCT(-1,AD18,AE16,AF20,AG19,AH17),
IMPRODUCT(-1,AD19,AE20,AF16,AG18,AH17),IMPRODUCT(+1,AD20,AE19,AF16,AG18,AH17),
IMPRODUCT(-1,AD16,AE19,AF20,AG18,AH17),IMPRODUCT(+1,AD19,AE16,AF20,AG18,AH17),
IMPRODUCT(-1,AD20,AE16,AF19,AG18,AH17),IMPRODUCT(+1,AD16,AE20,AF19,AG18,AH17),
IMPRODUCT(+1,AD17,AE18,AF19,AG20,AH16),IMPRODUCT(-1,AD18,AE17,AF19,AG20,AH16),
IMPRODUCT(+1,AD19,AE17,AF18,AG20,AH16),IMPRODUCT(-1,AD17,AE19,AF18,AG20,AH16),
IMPRODUCT(+1,AD18,AE19,AF17,AG20,AH16),IMPRODUCT(-1,AD19,AE18,AF17,AG20,AH16),
IMPRODUCT(-1,AD20,AE17,AF18,AG19,AH16),IMPRODUCT(+1,AD17,AE20,AF18,AG19,AH16),
IMPRODUCT(-1,AD18,AE20,AF17,AG19,AH16),IMPRODUCT(+1,AD20,AE18,AF17,AG19,AH16),
IMPRODUCT(-1,AD17,AE18,AF20,AG19,AH16),IMPRODUCT(+1,AD18,AE17,AF20,AG19,AH16),
IMPRODUCT(+1,AD19,AE20,AF17,AG18,AH16),IMPRODUCT(-1,AD20,AE19,AF17,AG18,AH16),
IMPRODUCT(+1,AD17,AE19,AF20,AG18,AH16),IMPRODUCT(-1,AD19,AE17,AF20,AG18,AH16),
IMPRODUCT(+1,AD20,AE17,AF19,AG18,AH16),IMPRODUCT(-1,AD17,AE20,AF19,AG18,AH16),
IMPRODUCT(-1,AD18,AE19,AF20,AG17,AH16),IMPRODUCT(+1,AD19,AE18,AF20,AG17,AH16),
IMPRODUCT(-1,AD20,AE18,AF19,AG17,AH16),IMPRODUCT(+1,AD18,AE20,AF19,AG17,AH16),
IMPRODUCT(-1,AD19,AE20,AF18,AG17,AH16),IMPRODUCT(+1,AD20,AE19,AF18,AG17,AH16))
6x6以降は省略
2x2
各項目についてはほぼ前と同じだが違う点もある。
元行列の起点をAC15からAD16に変更。
行列式は元行列の1列目の真下ではなくその一つ左側。
sag1は元行列と小行列式はみ出しシフト(仮)の1列目ではなく最後の列(最右列)同士の積。作業セルの取り込みも下から順に。
imsub関数は使わなくなった。
罫線の囲みが揃っているので行挿入列挿入がしやすくなったか。
展開作業では検索=「),」置換=「,追加でかけるセル),」等も駆使して何とか乗り切った。
検索=「+」置換=「_」、検索=「-」置換=「+」、検索=「_」置換=「-」により「improduct(-1,~)」を減らしたり。
逆行列の分母 (ここでは省略したが約分作業が別途必要だ。)
AM22= =TEXT(IMABS(AC23)^2,"#,##0") (カンマ区切りテキストにしてみた)
AM24= =IMCONJUGATE(AC23)
逆行列の分子
AM19= =IMPRODUCT(AJ19,$AM$24)
AM19:AN20= AM19をコピペ
検算2
AM16= =IMSUM(IMPRODUCT($AD16,AM$19),IMPRODUCT($AE16,AM$20))
AM16:AN17= AM16をコピペ
7x7
余談1
リブレオフィスの6x6の行列式では作業セルが2つから3つに増えてしまった。リブレオフィスの違うバージョンを使ったからかも知れないが。要調査。