goo blog サービス終了のお知らせ 

音律計算ブログ(7と12が織り成す不思議)

誤差のない音律データを目指して。
音律計算やその他について、気になった事をまったりと書いていこうと思います。

配列・ベクトル・行列(5)

2025-03-21 00:38:56 | 行列計算

小行列・小行列式・余因子・余因子行列など

エクセルやグーグルドライブやリブレオフィスで小行列式・余因子・余因子行列などを計算する。

(範囲の名前等は配列・ベクトル・行列(4)と同様)

 

小行列式や余因子行列の例(5x5行列から1行1列を取り除いて4x4行列を求めた)

エクセル(2019)

小行列式

 D43= {=(MDETERM(MMULT(IF(COLUMN(四五)=ROW(四五)+IF(ROW(四五)>ROW(作業シート!A1)-1,1,0),1,0),MMULT($D$6:$H$10,IF(ROW(五四)=COLUMN(五四)+IF(COLUMN(五四)>COLUMN(作業シート!A1)-1,1,0),1,0)))))}

 D43:H47= D43をコピペ

余因子行列の転置(正確に言うと未転置 余因子を並べただけの行列)

 D49= {=(MDETERM(MMULT(IF(COLUMN(四五)=ROW(四五)+IF(ROW(四五)>ROW(作業シート!A1)-1,1,0),1,0),MMULT($D$6:$H$10,IF(ROW(五四)=COLUMN(五四)+IF(COLUMN(五四)>COLUMN(作業シート!A1)-1,1,0),1,0))))*-1^(ROW(作業シート!A1)+COLUMN(作業シート!A1)))}

 D49:H53= D49のコピペ

 

余因子行列

 D61= {=MDETERM(MMULT(IF(COLUMN(四五)=ROW(四五)+IF(ROW(四五)>COLUMN(作業シート!A1)-1,1,0),1,0),MMULT($D$6:$H$10,IF(ROW(五四)=COLUMN(五四)+IF(COLUMN(五四)>ROW(作業シート!A1)-1,1,0),1,0))))*-1^(ROW(作業シート!A1)+COLUMN(作業シート!A1))}

 D61:H65= D61をコピペ

検算(元行列と余因子行列の積)

 D68:H72= {=MMULT(D6:H10,J68:N72)}

行列式(2つの方法)

 J63= {=SUMPRODUCT(D6:D10,TRANSPOSE(J68:N68))}

 J65= =MMULT(J68:N68,D6:D10) (非配列数式)

余因子行列(名前定義不使用)

 J68= =MDETERM(MMULT(IF(COLUMN($A$1:$E$4)=ROW($A$1:$E$4)+IF(ROW($A$1:$E$4)>COLUMN(A1)-1,1,0),1,0),MMULT($D$6:$H$10,IF(ROW($A$1:$D$5)=COLUMN($A$1:$D$5)+IF(COLUMN($A$1:$D$5)>ROW(A1)-1,1,0),1,0))))*-1^(ROW(A1)+COLUMN(A1))

 J68:N72= J68をコピペ

 

グーグルドライブのスプレッドシート(20250320現在)

小行列式

 D43= =(mdeterm(mmult(arrayformula(IF(column(四五)=row(四五)+if(row(四五)>ROW('作業シート'!A1)-1,1,0),1,0)),mmult($D$6:$H$10,arrayformula(IF(row(五四)=column(五四)+if(column(五四)>column('作業シート'!A1)-1,1,0),1,0))))))

 D43:H47= D43をコピペ

余因子行列の転置(正確に言うと未転置 余因子を並べただけの行列)

 D49= =(mdeterm(mmult(arrayformula(IF(column(四五)=row(四五)+if(row(四五)>ROW('作業シート'!A1)-1,1,0),1,0)),mmult($D$6:$H$10,arrayformula(IF(row(五四)=column(五四)+if(column(五四)>column('作業シート'!A1)-1,1,0),1,0)))))*-1^(row('作業シート'!A1)+column('作業シート'!A1)))

 D49:H53= D49のコピペ

 

余因子行列

 D61= =ArrayFormula(mdeterm(mmult(IF(column(四五)=row(四五)+if(row(四五)>column('作業シート'!A1)-1,1,0),1,0),mmult($D$6:$H$10,IF(row(五四)=column(五四)+if(column(五四)>ROW('作業シート'!A1)-1,1,0),1,0))))*-1^(row('作業シート'!A1)+column('作業シート'!A1)))

 D61:H65= D61をコピペ

検算(元行列と余因子行列の積)

 D68:H72= =ArrayFormula(mmult(D6:H10,J68:N72))

行列式(2つの方法)

 J63= =sumproduct(D6:D10,transpose(J68:N68)) (非配列数式)

 J65= =mmult(J68:N68,D6:D10) (非配列数式)

余因子行列(名前定義不使用)

 J68= =ArrayFormula(mdeterm(mmult(IF(column($A$1:$E$4)=row($A$1:$E$4)+if(row($A$1:$E$4)>column(A1)-1,1,0),1,0),mmult($D$6:$H$10,IF(row($A$1:$D$5)=column($A$1:$D$5)+if(column($A$1:$D$5)>ROW(A1)-1,1,0),1,0))))*-1^(row(A1)+column(A1)))

 J68:N72= J68をコピペ

 

リブレオフィス(24.8ポータブル)のカルク

小行列式

 D43= =MDETERM(MMULT(IF(COLUMN(四五)=ROW(四五)+IF(ROW(四五)>ROW($作業シート.A1)-1,1,0),1,0),MMULT($D$6:$H$10,IF(ROW(五四)=COLUMN(五四)+IF(COLUMN(五四)>COLUMN($作業シート.A1)-1,1,0),1,0)))) (非配列数式)

 D43:H47= D43をコピペ

余因子行列の転置(正確に言うと未転置 余因子を並べただけの行列)

 D49= =MDETERM(MMULT(IF(COLUMN(四五)=ROW(四五)+IF(ROW(四五)>ROW($作業シート.A1)-1,1,0),1,0),MMULT($D$6:$H$10,IF(ROW(五四)=COLUMN(五四)+IF(COLUMN(五四)>COLUMN($作業シート.A1)-1,1,0),1,0))))*-1^(ROW($作業シート.A1)+COLUMN($作業シート.A1)) (非配列数式)

 D49:H53= D49のコピペ

 

余因子行列

 D61= =MDETERM(MMULT(IF(COLUMN(四五)=ROW(四五)+IF(ROW(四五)>COLUMN($作業シート.A1)-1,1,0),1,0),MMULT($D$6:$H$10,IF(ROW(五四)=COLUMN(五四)+IF(COLUMN(五四)>ROW($作業シート.A1)-1,1,0),1,0))))*-1^(ROW($作業シート.A1)+COLUMN($作業シート.A1)) (非配列数式)

 D61:H65= D61をコピペ

検算(元行列と余因子行列の積)

 D68:H72= {=MMULT(D6:H10,J68:N72)}

行列式(2つの方法)

 J63= =SUMPRODUCT(D6:D10,TRANSPOSE(J68:N68)) (非配列数式)

 J65= {=MMULT(J68:N68,D6:D10)} (自動配列数式)

余因子行列(名前定義不使用)

 J68= =MDETERM(MMULT(IF(COLUMN($A$1:$E$4)=ROW($A$1:$E$4)+IF(ROW($A$1:$E$4)>COLUMN(A1)-1,1,0),1,0),MMULT($D$6:$H$10,IF(ROW($A$1:$D$5)=COLUMN($A$1:$D$5)+IF(COLUMN($A$1:$D$5)>ROW(A1)-1,1,0),1,0))))*-1^(ROW(A1)+COLUMN(A1)) (非配列数式)

 J68:N72= J68をコピペ

 

余談1 r070404追記

「配列・ベクトル・行列(4)」と「配列・ベクトル・行列(5)」の主旨は

「エクセル等で小行列式を計算するのは難易度が高いので応用が利かない。別の手段を模索すべき。しかし一応できることを示してみた。」

 

余談2 r070504

 セルや範囲と数式等の間にある半角スペースを全て全角スペースに変えた。

 

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 配列・ベクトル・行列(4) | トップ | 配列・ベクトル・行列(6) »
最新の画像もっと見る

コメントを投稿

サービス終了に伴い、10月1日にコメント投稿機能を終了させていただく予定です。
ブログ作成者から承認されるまでコメントは反映されません。

行列計算」カテゴリの最新記事