クイズ大陸



履歴 検索 最新 出題

行列の掛け算をもっと簡略化させてください。 ≫No. 1
?かなたん 2010/10/04 21:42囁き
久しぶり(?)に出題します。
今回は、行列の掛け算についての出題です。

ここに、3行3列の行列を3つ用意します。
それぞれの行列には、A・B・Cという名前が付いていて、
それぞれの要素には、左上から座標のように
(0,0) (1,0) (2,0)
(0,1) (1,1) (2,1)
(0,2) (1,2) (2,2)
という名前が付いています。

まずAとBに数字を入れて、A×Bをして、その結果をCに入れようと思います。
このとき、この行列の計算を簡略化させるためにはどうしたらよいでしょう?
ただし、必ず以下のルールに従っていることとする。

新たに1個以上の変数を用意すること。
 そのときの変数名は、A・B・C意外ならなんでもよい。
繰り返し行う作業をまとめる場合は、どこをどう繰り返しているのかわかるようにすること。


一応、下手ながらに行列の掛け算の方法も書いておきます。

行列A・Bにおいて、Aの列数とBの行数が等しければA×Bを行うことができます。
Aの列とBの行を左上から順番に掛け合わせて行います。

  ┌1 2┐  B=┌1 2 3┐
A=│4 5│    └4 5 6┘ であるとき、A×Bは次のようになります。
  └7 8┘
┌1 2┐ ┌1 2 3┐ ┌1×1+2×4 1×2+2×5       1×3+2×6┐ ┌9 12   15┐
│4 5│×└4 5 6┘=│4×1+5×4 1×2+2×54×2+5×5 4×3+5×6│=│24 1233 42│
└7 8┘        └7×1+8×4 7×2+8×5       7×3+8×6┘ └39 54   69┘

編集