next up previous contents
Next: 11.4.2 プログラム例 Up: 11.4 2次形式の対角化のアルゴリズム (後でどこかで使うもの) Previous: 11.4 2次形式の対角化のアルゴリズム (後でどこかで使うもの)

11.4.1 例に基づく説明


\begin{jexample}[係数行列の前進消去だけで済む場合 ($\det A_k\ne ...
...{pmatrix}=D.
\end{displaymath}めでたし、めでたし。 \qed
\end{jexample}


\begin{jexample}[楽屋裏の紹介と例の追加]
上の例は逆算して作...
...\\
0&-2& 0\\
0& 0& 3
\end{pmatrix} =D. \qed
\end{displaymath}\end{jexample}


\begin{jexample}[ピボットの交換が必要な場合 ($\forall k \det A_k\n...
...ところが、
枠内の計算で済んでしまった。 \qed
\end{jexample}


\begin{jexample}[対角成分がすべて$0$ -- 自明でない最も簡単な...
...
&=2ay_1^2-2ay_2^2
\end{align*}と対角化が出来る。 \qed
\end{jexample}

なお、

$\displaystyle R=\begin{pmatrix}1&1\ -1&1\end{pmatrix}$

の逆行列は

$\displaystyle R^{-1}=\frac{1}{2}\begin{pmatrix}1&1\ -1&1\end{pmatrix}=\frac{1}{2}R.
$

上の例は簡単であるが、 一般の場合に基本操作として使うことが出来る。 それを説明しよう。

$\displaystyle A=\left(
\begin{array}{c\vert c\vert c}
D & O & O \\
\hline
O & A' & B^T\\
\hline
O & B & C
\end{array} \right),\quad
D=$対角行列$\displaystyle ,\quad
A'=\begin{pmatrix}0&a\ a&0\end{pmatrix},\quad
C=$対称行列

とする (つまり掃き出しの過程で対角成分が 0 のブロックが出て来た場合を考える)。

$\displaystyle S:=
\left(
\begin{array}{c\vert c\vert c}
I & O & O \\
\hlin...
...O & O & I
\end{array} \right),\quad
R:=\begin{pmatrix}1&1\ 1&-1\end{pmatrix}$

とすると、$ R^T=R$ であるから、 $ S^T=S$ で、

$\displaystyle S^T A S=
\left(
\begin{array}{c\vert c\vert c}
D & O & O \\
...
...nd{array} \right),
\quad
R^T A' R= \begin{pmatrix}2a&0\ 0&-2a\end{pmatrix}.
$

ピボットが見つからないという障害物を突破できた。

すなわち

($ \star$ ) $\displaystyle S^T A S= \left( \begin{array}{c\vert c\vert c} D & O & O \ \hlin...
...ix}2a&0\ 0&-2a\end{matrix} & (B R)^T\ \hline O & B R & C \end{array} \right).$

後で使いそうなので

$\displaystyle B=
\begin{pmatrix}
b_{11} & b_{12} \\
b_{21} & b_{22} \\
\vdots & \vdots \\
b_{r1} & b_{r2}
\end{pmatrix}$   とするとき$\displaystyle \quad
BR=
\begin{pmatrix}
b_{11}+b_{12} & b_{11}-b_{12} \\
b...
...}-b_{22} \\
\vdots & \vdots \\
b_{r1}+b_{r2} & b_{r1}-b_{r2}
\end{pmatrix}$

であることを注意しておく。

($ \star$ ) の形になれば、 2段階の掃き出しが出来て

$\displaystyle S^T A S\to
\left(
\begin{array}{c\vert c\vert c}
D & O & O \ ...
...trix}2a&0\ 0&-2a\end{matrix} & O\\
\hline
O & O & C'
\end{array} \right).
$

少し脇道にそれるが、後のために注意しておくと

$\displaystyle S^{-1}=
\left(
\begin{array}{c\vert c\vert c}
I & O & O \\
\hline
O & \frac{1}{2} R & O\\
\hline
O & O & I
\end{array} \right)
$

である。


\begin{jexample}
\begin{displaymath}
A=
\left(
\begin{array}{c\vert cc\vert c...
...{displaymath}
S^T A S=D
\end{displaymath}が成り立つ。 \qed
\end{jexample}

より一般の場合、すなわち

$\displaystyle A=\left(
\begin{array}{c\vert c}
D& O\\
\hline
O& A'
\end{array} \right),\quad
D=$$ k-1$ 次対角行列$\displaystyle ,\quad
A'=$対称行列

で、$ A'$ の対角成分はすべて 0 であるが、 非対角成分に 0 でないものがある場合を考える。 まずは $ a_{ij}\ne 0$ となる $ (i,j)\in\{k,\cdots,n\}\times
\{k,\cdots,n\}$ を探す。
  found = 0;
  for (i=k; i<=n; i++) {
    for (j=k; j<=n; j++) { // j=i+1 からで良いのかな?
      if (a[i][j] != 0) {
        found = 1;
        break;
      }
    }
  }
$ a_{ij}=a_{ji}=a\ne 0$ として、 $ i$ 行と $ k$ 行、$ i$ 列と $ k$ 列を交換、 $ j$ 行と $ k+1$ 行、$ j$ 列と $ k+1$ 列を交換、 すると、

$\displaystyle A\to
P_{j,k+1}P_{ik}AP_{ik}P_{j,k+1}=\left(
\begin{array}{c\ver...
...ix}0&a\ a&0\end{matrix} & (B')^T\\
\hline
O & B' & C'
\end{array} \right)
$

の形になる。 ここで $ P_{rs}$ は左からかけると、 $ r$ 行と $ s$ 行を交換することになる置換行列とする。


next up previous contents
Next: 11.4.2 プログラム例 Up: 11.4 2次形式の対角化のアルゴリズム (後でどこかで使うもの) Previous: 11.4 2次形式の対角化のアルゴリズム (後でどこかで使うもの)
桂田 祐史
2015-12-22