可換性

3×5 の話題に付随して、そういや、掛け算の可換性についての話とかで盛り上がってる人もいるようで。

「可換性は自然なことではない」って。

3次元ベクトルの外積とか行列とかを知ってると、そう思うじゃん?

体に限定すると?

3次元ベクトルの外積も、行列の積も、あれって逆演算できないんですよね。掛けれるけど割れない。四則演算全部満足にできる体(たい, field)じゃなくて、環(かん, ring)。

非可換な環は結構多いけども、体となると非可換なのってすごく作りづらく。数の概念を抽象化して、環とか体って言葉が生まれたころですら、「体は可換」が普通だと思われおりまして。一般に、「体」とだけ呼べばその積は可換で、非可換な場合はわざわざ斜体と呼んだりも。

もちろん、非可換な体も作れはします。四元数(quaternion)がその例です。が、割と発見が遅かったという。

行列の Ax と xA

行列の積が非可換っていっても、じゃあ、

  • x をベクトル、A を行列とするとベクトルの写像としての表現で正しいのはどっち?
    1. Ax
    2. xA

実はこれ、問題文が悪いんでどっちでも OK。x が縦ベクトルなら Ax だし、横ベクトルなら xA。

順序なんて記法の問題でしかなくて、どっちが正になるか、定義の仕方でなんとでも変えれます。

関数の適用

行列の Ax って表現、行列 A はベクトルに対する演算子になります。あるいは、ベクトル→ベクトルの関数みたいなものです。A(x)。

一方で、プログラミングの経験ある人は、x.A() っていう表現にもなじみあるかと思います。特に、C# がわかる人は拡張メソッドを考えてみてください。A(x) でも apply A to x になりますし、x.A() でも同じく apply A to x。

要するに、演算子の前置きか後置きかの差でしかなく、やっぱり記法の問題。

  • 前置き演算
    • y = A(x)
  • 後置き演算
    • x.A() -> y

集合的に見て

集合論で言うと、3 = { 0, 1, 2 }、5 = { 0, 1, 2, 3, 4 } っていう集合なんですね、3とか5って文字の意味するところは。さて、じゃあ、×の意味は?

一般には、掛け算の定義っていうと、

  • n+ を n の跡継ぎ元とする
  • f_n+(a) = f_n(a) + a となるような写像の列 f_n が作れる(ことが証明可能)
  • この f_n(a) をもって乗算を定義して、 a×n と書く

かな。あと、集合同士の直積の元の数で定義できたりも。3×5なら

  • {0,1,2}×{0,1,2,3,4} = { (0,0), (0,1), ..., (2,3), (2,4) } = 元の数15個
    • () は順序対(ordererd pair)で、(0, 1)と(1, 0)は別の意味
    • {0,1,2,3,4}×{0,1,2} だと { (0,0), (0,1), ..., (4,1), (4,2) } になって、集合的には別
    • ただ、自然数としての 3 とか 5 は「集合の元の数」で定義するんで、{(0,0), (0,1), ..., (2,3), (2,4) } と { (0,0), (0,1), ..., (4,1), (4,2) } はどっちも15と同値

腐女子演算

3が攻めで5が受けという意味なら 5×3 は不正解!

こればっかりは納得。
3とか5がどう擬人化されてるのかはちょっとわかりませんけども・・・

(ところで、最近のIMEときたら、腐女子を一発変換してくれるんですね・・・)