みなさん,こんにちは
おかしょです.
制御器を設計していると入力行列の逆行列が必要になることがあります.
入力行列の逆行列を使用すれば,入力にかかる係数が単位行列となるので,入力をシステムに直接アクセスできるようにすることができます.
入力行列が逆行列を持つような正方行列であれば,問題はないのですがほとんどの場合,入力行列は正方行列ではありません.このような正方行列ではない行列は逆行列を求めることができません.
このようなときに便利なのが,疑似逆行列です.
この記事を読むと以下のようなことがわかる・できるようになります.
- 疑似逆行列とは
- 疑似逆行列の求め方
- 疑似逆行列の注意点
この記事を読む前に
状態方程式とは何なのかを知りたい方,知らない方は以下の記事で例を用いて解説しているのでそちらを先に読んでおくことをおすすめします.
疑似逆行列とは
行列が正方行列ではなく,逆行列を求めることができないときは疑似逆行列というものを用いることで単位行列に変換することが可能となります.
疑似逆行列は非常に便利ですが,使用するには条件や計算方法に決まりがあるので注意が必要です.
この記事ではそのすべてを解説します.
疑似逆行列の求め方
まず,通常の逆行列には以下のような性質がある.
\begin{eqnarray}
AA^{-1}=I \\
A^{-1}A=I
\end{eqnarray}
逆行列を求めるには,まず行列が正方でなければなりません.つまり,行列の行数と列数が一致していなければならないということです.
正方でない行列の逆行列を求めるには,行列を正方にする工夫が必要になります.
ここで,正方ではない行列があったとしましょう.
この行列はn行m列の行列だったとします.以下のように転置した行列をかければこの行列を正方にすることができます.
$$ A^{T}A $$
このようにすることで行列がm行m列となるため,正方行列とすることができます.
この行列に対して,逆行列を求めます.
ただ,このようにして求められた逆行列に元の行列をかけても単位行列とはなりません.
そこで,逆行列に右から元の行列の転置行列をかけます.
$$ (A^{T}A)^{-1}A^{T} $$
上記の式に元の行列をかけてみます.
$$ (A^{T}A)^{-1}A^{T}A $$
上式において\(A^{T}A=B\)とすると
$$ B^{-1}B=I $$
となり,単位行列に変換することができます.上記のようにして正方ではない行列を単位行列に変換することが可能であると言えます.
つまり,正方ではない行列の逆行列,疑似逆行列は以下の式によって求めることができる.
$$ \bar{A}^{-1}=(A^{T}A)^{-1}A^{T} $$
疑似逆行列の条件・問題点
上記のようにして正方でない行列を疑似逆行列によって単位行列に変換することができました.
しかし,上記の疑似逆行列では以下のような変換しかできません.
$$ \bar{A}^{-1}A=I $$
この逆の変換はできません.
$$ A\bar{A}^{-1}\neq I $$
制御器で疑似逆行列を用いるには,入力行列の右から疑似逆行列をかける必要があります.
そこで,疑似逆行列を右からかける変換を行うには正方行列を作る際に転置行列を基の式の右からかける必要があります.このようにすることで疑似逆行列は以下のようになります.
$$ \bar{A}^{-1}=A^{T}(AA^{T})^{-1} $$
この疑似逆行列を使用することで,以下のような変換ができるようになります.
$$ A\bar{A}^{-1}=I $$
しかし,この疑似逆行列では反対の変換ができなくなります.
$$ \bar{A}^{-1}A \neq I $$
このように疑似逆行列には以下のような条件がある.
疑似逆行列が\(\bar{A}^{-1}=(A^{T}A)^{-1}A^{T}\)によって求められたとき
\begin{eqnarray}
\bar{A}^{-1}A=I\\
A \bar{A}^{-1} \neq I \\
\end{eqnarray}
となります.
反対に,疑似逆行列が\(\bar{A}^{-1}=A^{T}(AA^{T})^{-1}\)によって求められたとき
\begin{eqnarray}
A \bar{A}^{-1}=I\\
\bar{A}^{-1}A \neq I \\
\end{eqnarray}
となります.
疑似逆行列は上記のように二通り求める方法があるのですが,どのような行列でも二通り求められるわけではありません.
行列の行数と列数の関係によって求めることのできる疑似逆行列は異なってきます.
例えば,以下のような1行2列の行列があったとします.
\begin{eqnarray}
A=
\begin{bmatrix}
a_{1}& a_{2}
\end{bmatrix}
\end{eqnarray}
この行列に対して転置した行列を左からかけます.
\begin{eqnarray}
A^{T}A&=&
\begin{bmatrix}
a_{1}\\
a_{2}
\end{bmatrix}
\begin{bmatrix}
a_{1}& a_{2}
\end{bmatrix} \\
&=&
\begin{bmatrix}
a_{1}^{2}& a_{1}a_{2}\\
a_{1}a_{2}&a_{2}^{2}
\end{bmatrix}
\end{eqnarray}
この行列の逆行列を求めます.
\begin{eqnarray}
(A^{T}A)^{-1}= \frac{1}{a_{1}^{2}a_{2}^{2}-a_{1}^{2}a_{2}^{2}}
\begin{bmatrix}
a_{2}^{2}& -a_{1}a_{2}\\
-a_{1}a_{2}&a_{1}^{2}
\end{bmatrix}
\end{eqnarray}
上式を見ると明らかなように分母が0となってしまうので逆行列を求めることができません.
したがって,1行2列の行列は左から転置行列をかける疑似逆行列は求めることができないことになります.
次に右から転置逆行列をかける場合について確認してみましょう.
\begin{eqnarray}
AA^{T}&=&
\begin{bmatrix}
a_{1}& a_{2}
\end{bmatrix}
\begin{bmatrix}
a_{1}\\
a_{2}
\end{bmatrix} \\
&=&a_{1}^{2}+a_{2}^{2}
\end{eqnarray}
この逆行列は,スカラーなので逆数を求めます.
\begin{eqnarray}
(AA^{T})^{-1}= \frac{1}{a_{1}^{2}+a_{2}^{2}}
\end{eqnarray}
最後に転置行列を左からかけることで疑似逆行列を求めることができます.
\begin{eqnarray}
A^{T}(AA^{T})^{-1}= \frac{1}{a_{1}^{2}+a_{2}^{2}}
\begin{bmatrix}
a_{1}\\
a_{2}
\end{bmatrix}
\end{eqnarray}
以上のことから,1行2列の行列は疑似逆行列を求めても元の行列の右から疑似逆行列をかけるような使用方法でしか使用することができないことがわかります.
$$ A \bar{A}^{-1}=I $$
次に,以下のような2行1列の行列について確認します.
\begin{eqnarray}
A=
\begin{bmatrix}
a_{1}\\
a_{2}
\end{bmatrix}
\end{eqnarray}
この行列に対して転置した行列を左からかけます.
\begin{eqnarray}
A^{T}A&=&
\begin{bmatrix}
a_{1}&a_{2}
\end{bmatrix}
\begin{bmatrix}
a_{1}\\
a_{2}
\end{bmatrix}\\
&=& a_{1}^{2}+a_{2}^{2}
\end{eqnarray}
この逆行列はスカラーなので,逆数を求めます.
\begin{eqnarray}
(A^{T}A)^{-1}= \frac{1}{a_{1}^{2}+a_{2}^{2}}
\end{eqnarray}
最後に転置行列を右からかけることで疑似逆行列を求めることができます.
\begin{eqnarray}
(A^{T}A)^{-1}A^{T}= \frac{1}{a_{1}^{2}+a_{2}^{2}}
\begin{bmatrix}
a_{1}&a_{2}
\end{bmatrix}
\end{eqnarray}
次に元の行列に右から転置行列をかけます.
\begin{eqnarray}
AA^{T}&=&
\begin{bmatrix}
a_{1}\\
a_{2}
\end{bmatrix}
\begin{bmatrix}
a_{1}& a_{2}
\end{bmatrix} \\
&=&
\begin{bmatrix}
a_{1}^{2}& a_{1}a_{2}\\
a_{1}a_{2}&a_{2}^{2}
\end{bmatrix}
\end{eqnarray}
この行列の逆行列を求めます.
\begin{eqnarray}
(A^{T}A)^{-1}= \frac{1}{a_{1}^{2}a_{2}^{2}-a_{1}^{2}a_{2}^{2}}
\begin{bmatrix}
a_{2}^{2}& -a_{1}a_{2}\\
-a_{1}a_{2}&a_{1}^{2}
\end{bmatrix}
\end{eqnarray}
先ほどと同じように分母が0となってしまうので逆行列を求めることができません.
したがって,2行1列の行列は右から転置行列をかける疑似逆行列は求めることができないということになります.
以上のことから,2行1列の行列は疑似逆行列を求めても元の行列の左から疑似逆行列をかけるような使用方法でしか使用することができません.
$$ \bar{A}^{-1}A=I $$
以上のことをまとめると,疑似行列を求めることができる条件は以下のようになります.
n行m列の行列Aがあったとします.
\(n\gt m\)のとき,疑似逆行列は以下の式によって求めることができる.
$$ \bar{A}^{-1}=(A^{T}A)^{-1}A^{T} $$
この時,単位行列に変換することができるのは元の行列に疑似逆行列を左からかけたときのみである.
$$ \bar{A}^{-1}A=I $$
\(n\lt m\)のとき,疑似逆行列は以下の式によって求めることができる.
$$ \bar{A}^{-1}=A^{T}(AA^{T})^{-1} $$
この時,単位行列に変換することができるのは元の行列に疑似逆行列を右からかけたときのみである.
$$ A\bar{A}^{-1}=I $$
まとめ
この記事では,疑似逆行列の求め方と使用する際の条件や注意点を解説しました.
疑似逆行列を制御器として使用する場合は,疑似逆行列を入力行列の右からかけなければならないので元の行列の行数が列数よりも少なくなければ疑似逆行列を求めても意味がないので注意が必要です.
続けて読む
今回解説した疑似逆行列は制御器を設計するための準備のような理論です.
疑似逆行列が必要になる制御器はさまざまあり,当ブログでもそういった制御器の解説をしていく予定です.その記事ができたら,こちらにリンクを張ろうと思います.
Twitterでは記事の更新情報や活動の進捗などをつぶやいているので気が向いたらフォローしてください.
それでは最後まで読んでいただきありがとうございました.
コメント