2012/08/12

文系のための「内積」(1)

今回は、多少の我慢が必要かもしれない。話が少し複雑。
とは言え、ある意味、最も重要な話。先に話が進まない。

さて、まずは復習。

「行列」の「足し算」と「引き算」は、それほど難しくなかった。
要するに、同じサイズの2つの行列が存在したとして、
同じ場所にある成分同士で「足し算」するのであった。



このような、2つの行列が存在したとき、
行数」は、 であり、「列数」は、 となる。
そして、「行列X」における「不特定番目」の「成分」と、
同様に、「行列Y」における「不特定番目」の「成分」の「足し算」は、



である。つまり、同じ場所同士の成分を足しているだけ。
引き算」も同様。同じ場所同士の成分を引けば良い。
ここまでは、流石に理解できているはず。

さて、ここからが問題である。基礎編では最難関の山場
ここさえ、クリアできれば、後はかなり楽になる。

では、行列の「掛け算」というのをやってみる。
とりあえず、「3行1列」の行列と、「1行3列」の行列を用意する。

うん?、1行?? 1列?? となった人、正解。
これは、どういった、状況であるか?
イヤヨ(184)クロウハ(968)」で考える。

 

横一列の行列」とは、「横ベクトル」そのものであり、



縦一列の行列」は、「縦ベクトル」である。確かに、そのようであった。

まずは、ベクトルの掛け算から始めることにする。

さて、なぜ「行列」の「掛け算」が難しいのか?
その理由は、「足し算」と「引き算」のように、
同じ場所の成分同士を計算するわけではないからである。

掛けられる行列は「横方向」に、掛ける行列は「縦方向」に「掛けて」、
結果を「足す。という操作を必要とする。

先程の「横ベクトル」と「縦ベクトル」の計算をやってみる。



つまり、このようになる。横ベクトルでは、左から右に向かって進みながら、
縦ベクトルでは、上から下に向かって足し算をする。

折角なので、次のような例もやってみる。
イヤヨ(184)イヤヨ(184)もナントカの内」。



気づいた人もいるかもしれない。ベクトルの「掛け算」を応用すると、
同じベクトルの、転置の掛け算は、二乗して足し合わせることができる
これを「二乗和」と呼び、行列を用いた様々な演算の中で頻繁に登場する。

手計算では、有難味というのは湧かないが、
コンピュータで計算するときに重宝する。これが重要。

ところで、この例では、同じベクトルを「」と「」にしてある。
これを「転置(transpose)」と呼び、「ベクトル」と「行列」では頻繁に登場する。
また、このような計算を慣例的に次のように表す。



ベクトルの計算で、この記号が出てきたら、
つまりは、「二乗和」の計算をしている。

「横」と「縦」に計算する。なるほど、大体は理解できた。それほど難しくはない?
注意するべき点が2つある。ここからが、混乱の原因。

まず一つ目。掛けられる行列の「行数」と掛ける行列の「列数」の一致。
したがって、次のような、計算はできない。「イヤ(18)!ハシゴ(845)酒は



上から順番に計算していくと、「5」を掛ける数が無い
したがって、このような場合には計算ができない。
この約束事は、ベクトルだけでなく、「行列」にも当てはまる

そして、二つ目。掛ける順番は変えてはいけない、という原則。
スカラーでは、気にする必要は無かった。というのは、



であった。しかし、「ベクトル」や「行列」の場合は、そうは行かない。



このように、結果が「行列」となってしまい、計算結果が異なる。
したがって、「行列」においては、次のことが言える。



イヤヨ(184)クロウハ(968)」と「クロウハ(968)イヤヨ(184)
両者は、似て非なるものである。

したがって、次の場合にも注意が必要である。



両方とも、統計や数学の教科書に頻繁に登場するが、
両者は、全く異なっているのであって、混同してはいけない。念の為に、確認しておく。
  •  の場合

  •  の場合


以上が、行列の「掛け算」の導入の話。次からは、実際に「R」での計算を実践してみる。

1 件のコメント:

  1. 書いていて、何か、おかしいと思った。
    ガチャガチャと書きなおしている内に、
    どうやら、縦と横が混同していた。

    矢野先生、ご指摘ありがとうございました。

    返信削除