数学とか語学とか楽しいよね

フランス語、ドイツ語、ロシア語、アラビア語、オランダ語、英語、スペイン語、ラテン語とか数学とか数値計算(有限要素法、有限体積法、差分法、格子ボルツマン法、数理最適化、C++コード付き)とか勉強したことをまとめます。右のカテゴリーから興味のある記事を探してください。最近はクラシックの名演も紹介しています。noteにも書いています。https://note.mu/kumag_min

【行列】自分自身に転置行列をかけてできる行列は、正定値行列になる

「自分自身に転置行列をかけてできる行列は、正定値対称行列になる」ということを証明したいと思います。この命題は、行列の反復解法であるGauss-Seidel法を考える場合に役に立ちます。


例えば、正則であり正定値でない n×n 行列 An 次元ベクトル xb に対して連立一次方程式


Ax=b

を考えます。ここで、x が未知数、Ab は既知であるとします。Gauss-Seidel法は行列 A が正定値行列でなければ収束しないことが知られているので、このままでは上記の連立一次方程式は解けません。そのような場合は左から転置行列 At をかけます。すると


AtAx=Atb

となります。この新しい連立一次方程式の AtA は実は正定値行列になっており、Gauss-Seidel法で解を得ることができるのです。もちろん元の連立一次方程式の解と新しい連立一次方程式の解が同じであることは明らかです(新しい連立一次方程式の左から (At)1 をかければ元に戻る)。

そんなわけで「自分自身に転置行列をかけてできる行列は、正定値行列になる」を示しておきたいのです。


まず、正定値行列の定義です。

n×n 実対称行列 M が正定値 (positive definite) であるとは、n 個の実数を成分に持つ零ベクトルでない任意の列ベクトル x に対して、二次形式 xtMx が必ず正となること、すなわち

xtMx>0

となることである。


次に証明の中で出てくるので、半正定値行列の定義も載せます。正という条件が緩められ、非負になっただけです。

n×n 実対称行列 M が半正定値 (positive-semidefinite) であるとは、n 個の実数を成分に持つ零ベクトルでない任意の列ベクトル x に対して、二次形式 xtMx が必ず正となること、すなわち

xtMx0

となることである。


それでは「自分自身に転置行列をかけてできる行列は、正定値行列になる」を証明しましょう。もとの行列を A とします。行列 A は正則である、すなわち逆行列が存在すると仮定します。A が正則でないと証明しようとしている事柄は成り立ちません。注意しましょう。また簡単のために、n 次元ベクトル x に対して


Ax=b

となるような n 次元ベクトル b を導入しておきます。証明しようとしている事柄は、「AtA が正定値行列である」なので、AtA の二次形式 xtAtAx を考えます。ここで、x は零ベクトルでない任意の n 次元ベクトルとします。このとき


xtAtAx=(Ax)tAx=|Ax|2=|b|20

となります。これで AtA は少なくとも半正定値行列であることがわかりました。


次に、正定値行列であることを示すために、二次形式が0となる場合、すなわち xtAtAx=|b|2=0 を考えます。このとき、b=0 なので、Ax=0 がわかります(Ax=b だから)。A は正則なので逆行列が存在します。なので、逆行列を左からかけると x=At0=0 となり、二次形式 xtAtAx が0になるのは x=0 であるときだけであることがわかりました。つまり、x=0 でなければ二次形式 xtAtAx が0になることはないことがわかります。これで AtA が正定値であることがわかりました(正定値行列の条件は任意の非零ベクトルに対してなので)。


参考 

行列の定値性 - Wikipedia