プログラムな日常>理数学習このままでイイン会?>
一般逆行列
(pseudoinverse)

というのがあるみたいで、先日(2/15)「絶対行列式」を書いた流れと、もう一つ、前回(2/16)で気になっているところもあって、明らかにしておきたかった。

moore-penrose inverse とか疑似逆行列とか色々言われるそうで、 その定義は検索すれば容易に見つかり、それを使って計算すると、最小二乗、即ち誤差が最も少ない解が得られるのだと。 それは結構なことだが、その求め方については、割と不明瞭で、どこそこのプログラムが知られている、というのでお茶を濁されているサイトや教科書が多かった。

結局、Wikipedia に頼ることになった。が線形独立な列を持っている(と言うより、列の集合が全体で線形独立と言うべきだろう)ことで が逆(行列)にできる場合 (訳注:当然、 行数 ≧ 列数 で縦長だ)、その一般逆行列 は、



で、 が満たされ、 が線形独立な行を持っている(と言うより、行の集合が全体で線形独立と言うべきだろう)ことで が逆(行列)にできる場合(訳注:行数 ≦ 列数 で横長だ)、



で、 が満たされるとのこと。ここで、 の随伴行列で、実数世界なら転置行列として良いところである。 ただし、ペンローズの定義によれば、線形独立ではない場合にも定義されるので、以上が定義の全てではない模様。例えば、別のサイトでは、



に対しては、



が解だと言われるが、これは先の公式からは導けない。非正則で逆行列を作れないからだ。

逆行列と言うからには、線形独立でも、ゼロに近いけれどゼロでない場合や線形従属に非常に近いという場合、極端に大きな数字になるはずだが、 最終的にゼロになった場合に対してはゼロにしてしまうというのは、まあ、定義 OK、証明 OK なんだろうけれど、一貫性のなさで逆に数学らしくなく感じてしまう。 実際にゼロに近いものの非ゼロの値なのか、実際はゼロであるべきだがまるめ誤差が出ているだけなのかは、数値計算では難しいところで、こういう定義は特に困る。

先日(2/15)の「絶対行列式」では、用語は同じでも f と g の使い分けをした。これをしないのがペンローズの流儀だったと言って良いかも知れない。

一般逆行列の用途は、最小二乗法による近似と密接な関係があるようですが、特に、前回(2/16)の計算で、テキトウに 100 個の条件(99 元ベクトル)を決めて 応答を見ることにしていたけれど、これは、非正則ぎりぎりになるリスクがあり、100 回よりは少し多めに試行した方が安全だと思うんです。 その場合、非正方行列で近似逆計算をする必要があります。そんなのにご活用下さい。

今日の私のページは特にキタナイな!  色々調べる中で見つけた「高校数学の美しい物語」の美しいページに近づきたいと思ってはいます。