コラム 人と星とともにある数学 数学

NumPyで行列 回帰分析 その3|Pythonで数学を学ぼう! 第24回

行列 VS. matrix

現在、この連載では回帰分析をテーマに行列の基本から線形代数までをPythonとともに紹介しています。

前回は行列の基本演算(和・差・積・べき乗)を取り上げました。ここから線形代数に触れながら本題の回帰分析、そしてその核心にある最小2乗法に進んでいきます。

その前に一つ取り上げておきたいことがあります。行列という用語です。英語のmatrixの訳語です。明治時代にわが国に数学が輸入された後につくられた訳語が、現在の日本における数学用語の礎となっています。

それゆえイマイチよくわからない数学用語がたくさんあります。有理数、無理数、虚数、幾何、方程式などなど。

その中にあって行列はピカイチの傑作です。行列 VS. matrix(複数形はmatrices)、行列に軍配は上がります。

行列のことは「行列」に聞け!

みなさんは左右を使う際にどのように思い出していますか。

私は幼稚園の時に黒板に大きくチョークで書かれた「左」と「右」の文字の風景を思い出して確認、照合しています。0.1秒かかる手間を50年間ずっと続けています。

これが右であれが左、人は誰もがどこかで初めて左右という言葉とその意味に出会います。私はその最初の風景が決定的に印象深く脳裏に刻まれたことで、私の辞書になっているということです。

① 行と列のナンバリング

正直に申しあげましょう。私は30年以上行列を使ってきて、いまだに行列の(3, 2)成分と言われてもパッとわかりません。0.5秒かけて「3行、2列」と言い換えてやっとわかります。

左右もそうですが、行列も他の人はもっとはやく、もしかしたら瞬間でわかるのではと思っています。30年間、誰にも聞いたことはありませんが。

行列を扱う度に行と列の区別が必要になります。左右は直線的(1次元)配置ですが、行列は平面的(2次元)配置なので、どっちが行でどっちが列なのかがわかりづらいのです。

そんな私──行と列の区別(順序・ナンバリング)がすぐにできない難民──を救ってくれたのが行列でした。次の図を見れば一目瞭然です。

行列の(3, 2)成分の3は行、2が列であることを思い出すには「行列」と唱えればいいということです。横成分(=)が行、縦成分(||)が列であることを行列という漢字がビジュアルで教えてくれます。そして、(行、列)という成分の順序も行、列すなわち行列という漢字そのものということです。

② 行列の積の基本

さらに「行列」は行列の積の特殊性をも教えてくれます。

行ベクトル × 列ベクトル = スカラー
列ベクトル × 行ベクトル = 行列

これより、行列の積は「行ベクトル × 列ベクトル = スカラー」によりスカラーである成分が計算されます。これも「行列」から思い出すことができます。ちなみに列ベクトル×行ベクトルはスカラーではなく行列になります(図2の例)。

③ 行列の積

②の行列の積の基本により行列の成分が計算されます。はたして
(m, L)行列 ×(L, n)行列 =(m, n)行列
となります。m行(L列)×(L列)n列が(m, n)行列ということなので(L列)を略せば、
m行 × n列 =(m, n)行列
と表されます。

以上3つを私は「行→列」のルールと呼んでいます。行列の基本(ナンバリング、積)は「行→列」のルールにより確認、思い出すことができます。

行列のPythonルール

数学はルールのかたまりであるようにPythonもルールのかたまりです。Pythonのナンバリングは「0スタート」がルールです。配列・数列・リストなどがそうです。

行列の行成分と列成分ナンバリングもこれにならって「0スタート」です。(1, 1)成分はPythonでは(0, 0)成分、(4, 3)成分はPythonでは(3, 2)成分としなくてはなりません。

このPythonルールは実に面倒です。数学のテキストに書かれた数式をPythonコードに翻訳する際はいちいち「0スタート」に書き換える必要があります。いまだに私は慣れません。

matrixでなくて行列でよかった

私にとって「行列」という言葉はお守りのような存在です。これがmatrixだったらと考えると憂鬱になります。

行列は連立方程式の解法の中から現れてきた数学です。行列を1つの数としてみるとそこには驚くべき調和の法則が発見されました。それが現在の線形代数学です。

連立方程式をいかにシステマティックに解くか。その追究の先に誕生した行列ですが、手強いことには変わりありません。行列は行と列のたった2つから成ります。たった2つが問題なのです。左右と同じです。どっちがどっちかわからなくなる「たった2つ」。

英語のmatrixのmatはmatherのそれです。母体という意味があります。ある意味「なるほど」ですが役に立ちません。

それに対して日本語の行列は(私には)役に立つ見事な言葉です。誰がつくったかはっきりしていないようですが、発案者には最大の賛辞をおくります。

連載──回帰分析はこれから行列の独壇場になります。「行列」とPythonといっしょにその核心に迫っていきましょう。

  • この記事を書いた人
  • 最新記事

桜井進(さくらいすすむ)様

1968年山形県生まれ。 サイエンスナビゲーター®。株式会社sakurAi Science Factory 代表取締役CEO。 (略歴) 東京工業大学理学部数学科卒、同大学大学院院社会理工学研究科博士課程中退。 東京理科大学大学院非常勤講師。 理数教育研究所Rimse「算数・数学の自由研究」中央審査委員。 高校数学教科書「数学活用」(啓林館)著者。 公益財団法人 中央教育研究所 理事。 国土地理院研究評価委員会委員。 2000年にサイエンスナビゲーターを名乗り、数学の驚きと感動を伝える講演活動をスタート。東京工業大学世界文明センターフェローを経て現在に至る。 子どもから大人までを対象とした講演会は年間70回以上。 全国で反響を呼び、テレビ・新聞・雑誌など様々なメディアに出演。 著書に『感動する!数学』『わくわく数の世界の大冒険』『面白くて眠れなくなる数学』など50冊以上。 サイエンスナビゲーターは株式会社sakurAi Science Factoryの登録商標です。

あわせて読みたい

-コラム, 人と星とともにある数学, 数学
-,