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

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

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

2014-03-25 03:43:30 | 行列計算

 わき道にそれ過ぎているような気もしますが、これは好みの問題なので説明を続けます(笑)。 

 

 2^x*3^y*5^zを(x, y, z)と書くとベクトルっぽく見えますがどうでしょうか?(x,y,zは有理数限定)
 実際、調律計算用各種音程の表5では行列計算が使われています。

 

 たとえばピタゴラス音律を「-(0,0,0,0,0,0,0,0,0,0,0,1)*PC」のように書けて計算可能だったらどうでしょうか?(オクターブに12音しかない世界の話) 
 各五度から各音程を求めたり五度圏順から小さい順に並べ替えたりするのに行列計算が使えます。まあこれは使わなくてもできますが。

 

 「ベクトルとは?」「行列とは?」って正確に答えるのは難しい問題ですが、前者は「大きさと方向があってベクトルの計算規則に従うもの」とどこかで見たような気がします。後者は個人的には「ベクトルを変化させる道具」のようなイメージです。

 

転置行列

 行列の行と列を入れ替えたもの。transpose関数を使います(この関数は行列計算専用ではなく配列の行と列を入れ替えるのに使えます)。

 

行列の積

 行列Aの列数と行列Bの行数が同じ場合に行列の積ABの計算が可能。一般的には AB≠BA

 表8-1はE2:G4とI2:K4が同じ結果であることによりmmulti関数の働きを示してみました。

 

(表8-1)

 

正方行列(追記h260326)

 行数と列数が同じ行列。

 

行列式(追記h260326)

 正方行列において定義される。mdeterm関数を使います。2*2の行列では面積の変換の倍率、3*3の行列では体積の変換の倍率のようです。
 行列式が0の場合、後述の逆行列は存在しない。倍率0で変換したら逆変換で元に戻せないイメージ?

 

単位行列(追記h260326)

 正方行列において行と列が同じ部分(左上から右下への対角線)のみ1で他が0の行列。
 数字の足し算の0や数字の掛け算の1と同様、行列の積で相手を変化させない行列。
 (x+0=x)や(y*1=y)のように。
「行列」を「変換」と考えれば「単位行列」は「無変換」と言うこともできる。 (追記r060322)

 

逆行列(追記h260326)

 ある行列とその逆行列の積をとると単位行列となる。右からの積でも左からの積でも同じ。minverse関数を使います。
 「行列」を「変換」と考えれば「逆行列」は「逆変換」と言うこともできる。変換*逆変換 = 無変換

 表8-2はH23とH25が同じ結果であることによりmdeterm関数の働きを示してみました。4*4の行列式を求めるには3*3の行列式を4つ計算する必要があります。ついでにR15:U18とR23:U26が同じ結果であることによりminverse関数の働きも示してみました。余因子行列などは計算が難しかったので類似の方法を乱数と試行錯誤により求めました。(9*9~2*2行列で要素に乱数を使って)(r060430 「演繹法」はミスなので削除)

 

(表8-2)

 

 表8-3は表8-2の奇数バージョンです。H50とH52が同じ結果であることによりmdeterm関数の働きを示してみました。5*5の行列式を求めるには4*4の行列式を5つ計算する必要があります。ついでにR40:V44とR50:V54が同じ結果であることによりminverse関数の働きも示してみました。

 

(表8-3)

 

 因みに「コピペ」とは「コピー アンド ペースト」の略です ^^



最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。